Recursive language
Template:Short description Script error: No such module "about".
In mathematics, logic and computer science, a recursive (or decidable) language is a recursive subset of the Kleene closure of an alphabet. Equivalently, a formal language is recursive if there exists a Turing machine that decides the formal language.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. In theoretical computer science, such always-halting Turing machines are called total Turing machines or algorithms.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found.
The concept of decidability may be extended to other models of computation. For example, one may speak of languages decidable on a non-deterministic Turing machine. Therefore, whenever an ambiguity is possible, the synonym used for "recursive language" is Turing-decidable language, rather than simply decidable.
The class of all recursive languages is often called R, although this name is also used for the class RP.
This type of language was not defined in the Chomsky hierarchy.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. All recursive languages are also recursively enumerable. All regular, context-free and context-sensitive languages are recursive.
Definitions
There are two equivalent major definitions for the concept of a recursive language:
- A recursive language is a recursive subset of the set of all possible finite-length words over an alphabet.
- A recursive language is a formal language for which there exists a Turing machine that decides it.
On the other hand, we can show that a decision problem is decidable by exhibiting a Turing machine running an algorithm that terminates on all inputs. An undecidable problem is a problem that is not decidable.
Examples
As noted above, every context-sensitive language is recursive. Thus, a simple example of a recursive language is the set L={abc, aabbcc, aaabbbccc, ...}; more formally, the set
is context-sensitive and therefore recursive.
Examples of decidable languages that are not context-sensitive are more difficult to describe. For one such example, some familiarity with mathematical logic is required: Presburger arithmetic is the first-order theory of the natural numbers with addition (but without multiplication). While the set of well-formed formulas in Presburger arithmetic is context-free, every deterministic Turing machine accepting the set of true statements in Presburger arithmetic has a worst-case runtime of at least , for some constant p>0.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Here, n denotes the length of the given formula. Since every context-sensitive language can be accepted by a linear bounded automaton, and such an automaton can be simulated by a deterministic Turing machine with worst-case running time at most for some constant q,Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. the set of valid formulas in Presburger arithmetic is not context-sensitive. On a positive side, it is known that there is a deterministic Turing machine running in time at most triply exponential in n that decides the set of true formulas in Presburger arithmetic.Lua error in package.lua at line 80: module 'Module:Footnotes/anchor_id_list' not found. Thus, this is an example of a language that is decidable but not context-sensitive.
Closure properties
Recursive languages are closed under the following operations. That is, if L and P are two recursive languages, then the following languages are recursive as well:
- The Kleene star
- The image φ(L) under an e-free homomorphism φ
- The concatenation
- The union
- The intersection
- The complement of
- The set difference
The last property follows from the fact that the set difference can be expressed in terms of intersection and complement.
See also
Notes
Page Template:Reflist/styles.css has no content.
References
- Page Module:Citation/CS1/styles.css has no content.Book, Ronald V. (1974). "Comparing complexity classes". Journal of Computer and System Sciences. 9: 213–229. doi:10.1016/S0022-0000(74)80008-5. MR 0366099.
- Page Module:Citation/CS1/styles.css has no content.Chomsky, Noam (1959). "On certain formal properties of grammars". Information and Control. 2 (2): 137–167. doi:10.1016/S0019-9958(59)90362-6.
- Page Module:Citation/CS1/styles.css has no content.Fischer, Michael J.; Rabin, Michael O. (1974). "Super-Exponential Complexity of Presburger Arithmetic". Proceedings of the SIAM-AMS Symposium in Applied Mathematics. 7: 27–41.
- Page Module:Citation/CS1/styles.css has no content.Oppen, Derek C. (1978). "A 222pn Upper Bound on the Complexity of Presburger Arithmetic". J. Comput. Syst. Sci. 16 (3): 323–332. doi:10.1016/0022-0000(78)90021-1.
- Page Module:Citation/CS1/styles.css has no content.Sipser, Michael (1997). "Decidability". Introduction to the Theory of Computation. PWS Publishing. pp. 151–170. ISBN 978-0-534-94728-6.
- Page Module:Citation/CS1/styles.css has no content.Sipser, Michael (2012). "The Church-Turing Thesis". Introduction to the Theory of Computation. Cengage Learning. p. 170. ISBN 978-1-133-18779-0.
Lua error in package.lua at line 80: module 'Module:Navbox/configuration' not found.