Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Recursively enumerable language
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Formal language}} {{inline citations|date=December 2024}} In [[mathematics]], [[logic]] and [[computer science]], a [[formal language]] is called '''recursively enumerable''' (also '''recognizable''', '''partially decidable''', '''semidecidable''', '''Turing-acceptable''' or '''Turing-recognizable''') if it is a [[recursively enumerable set|recursively enumerable subset]] in the [[set (mathematics)|set]] of all possible words over the [[alphabet (computer science)|alphabet]] of the language, i.e., if there exists a [[Turing machine]] which will enumerate all valid strings of the language. Recursively enumerable languages are known as '''type-0''' languages in the [[Chomsky hierarchy]] of formal languages. All [[regular language|regular]], [[context-free grammar|context-free]], [[context-sensitive language|context-sensitive]] and [[recursive language|recursive]] languages are recursively enumerable. The class of all recursively enumerable languages is called '''[[RE (complexity)|RE]]'''. ==Definitions== There are three equivalent definitions of a recursively enumerable language: # A recursively enumerable language is a [[recursively enumerable set|recursively enumerable]] [[subset]] in the [[set (mathematics)|set]] of all possible words over the [[alphabet (computer science)|alphabet]] of the [[formal language|language]]. # A recursively enumerable language is a formal language for which there exists a [[Turing machine]] (or other [[computable function]]) which will enumerate all valid strings of the language. Note that if the language is [[Infinity|infinite]], the enumerating algorithm provided can be chosen so that it avoids repetitions, since we can test whether the string produced for number ''n'' is "already" produced for a number which is less than ''n''. If it already is produced, use the output for input ''n''+1 instead (recursively), but again, test whether it is "new". # A recursively enumerable language is a formal language for which there exists a Turing machine (or other computable function) that will halt and accept when presented with any [[literal string|string]] in the language as input but may either halt and reject or loop forever when presented with a string not in the language. Contrast this to [[recursive language]]s, which require that the Turing machine halts in all cases. All [[regular language|regular]], [[context-free language|context-free]], [[context-sensitive language|context-sensitive]] and [[recursive language|recursive]] languages are recursively enumerable. [[Post's theorem]] shows that '''[[RE (complexity)|RE]]''', together with its [[complement (complexity)|complement]] [[co-RE]], correspond to the first level of the [[arithmetical hierarchy]]. ==Example== The set of [[Halting Problem|halting Turing machines]] is recursively enumerable but not recursive. Indeed, one can run the Turing machine and accept if the machine halts, hence it is recursively enumerable. On the other hand, the problem is undecidable. Some other recursively enumerable languages that are not recursive include: * [[Post correspondence problem]] * [[Mortality (computability theory)]] * [[Entscheidungsproblem]] ==Closure properties== Recursively enumerable languages (REL) are [[closure (mathematics)|closed]] under the following operations. That is, if ''L'' and ''P'' are two recursively enumerable languages, then the following languages are recursively enumerable as well: * the [[Kleene star]] <math>L^*</math> of ''L'' * the [[Concatenation#Concatenation of sets of strings|concatenation]] <math>L \circ P</math> of ''L'' and ''P'' * the [[Union (set theory)|union]] <math>L \cup P</math> * the [[Intersection (set theory)|intersection]] <math>L \cap P</math>. Recursively enumerable languages are not closed under [[set difference]] or complementation. The set difference <math>L - P</math> is recursively enumerable if <math>P</math> is recursive. If <math>L</math> is recursively enumerable, then the complement of <math>L</math> is recursively enumerable [[if and only if]] <math>L</math> is also recursive. == See also == *[[Computably enumerable set]] *[[Recursion]] ==Sources== * {{Sipser 1997}} * Kozen, D.C. (1997), ''Automata and Computability'', [[Springer-Verlag|Springer]]. ==External links== * {{CZoo|Class RE|R#re}} * [http://www.cs.colostate.edu/~massey/Teaching/cs301/RestrictedAccess/Slides/301lecture23.pdf Lecture slides] {{Formal languages and grammars}} [[Category:Formal languages]] [[Category:Theory of computation]] [[Category:Mathematics of computing]] [[Category:Alan Turing]]
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:CZoo
(
edit
)
Template:Formal languages and grammars
(
edit
)
Template:Inline citations
(
edit
)
Template:Short description
(
edit
)
Template:Sipser 1997
(
edit
)
Search
Search
Editing
Recursively enumerable language
Add topic