Fact-checked by Grok 2 weeks ago

Recursive language

In formal language theory, a recursive language is a formal language for which there exists a that halts on every input string over the alphabet and accepts precisely those strings belonging to the language while rejecting all others. Recursive languages represent the class of decidable languages in , meaning membership in the language can be algorithmically determined for any input with a guaranteed termination. They form a proper subset of the recursively enumerable languages, which are accepted by s that may loop indefinitely on strings not in the language. If both a language and its complement are recursively enumerable, then both are recursive. Notably, there exist recursively enumerable languages that are not recursive, such as the set of all s that halt on the empty input (a of the ). Recursive languages occupy a central position in the Chomsky hierarchy of formal languages, encompassing all regular, context-free, and context-sensitive languages as proper subsets, since these lower classes are inherently decidable. They are closed under key operations, including union, intersection, complementation, concatenation, and the (star closure). This closure ensures that applying these operations to recursive languages yields another recursive language, facilitating their use in modeling computable problems in . Examples of recursive languages include the set of all palindromes over a alphabet or the language of all valid arithmetic expressions, both of which can be decided by appropriate algorithms. The study of recursive languages underpins undecidability results, such as , which states that any non-trivial semantic property of recursively enumerable languages is undecidable. These languages are countable and enumerable, but their decision procedures highlight the boundaries of what is computably solvable.

Definitions and Background

Historical Context

The concept of recursive languages traces its origins to Kurt Gödel's seminal 1931 paper on incompleteness theorems, where he introduced primitive recursive functions as a foundational class of total computable functions representable within formal arithmetic systems like . Gödel's work highlighted the limitations of such systems while establishing as a mechanism for defining provably total functions, laying groundwork for later notions of . In the early 1930s, advanced these ideas through his development of , initially presented in 1932–1933 as a system for the foundations of logic, which he later refined to model effective . Church's 1936 paper formalized effective calculability using lambda-definable functions, proposing them as equivalent to intuitively computable procedures on positive integers. Independently, Alan Turing's 1936 paper introduced Turing machines as abstract devices capable of simulating any mechanical computation, defining computable numbers as those whose digits could be produced by such machines through finite algorithmic steps. The Church-Turing thesis, emerging in 1936 from correspondence and publications by both scholars, posited the fundamental equivalence between Church's lambda-definable functions, Turing's computable functions, and the general recursive functions later formalized by Stephen Kleene, asserting that these capture all effectively computable functions. This thesis unified disparate approaches to computability, providing a cornerstone for theoretical computer science. Following , Noam Chomsky's work in the 1950s and 1960s integrated these computability concepts into theory, developing the , beginning with his 1956 paper "Three Models for the Description of Language" and further formalized in 1959. In this framework, Type-0 grammars generate recursively enumerable languages, while recursive languages—those decidable by Turing machines that always halt—form the proper decidable subclass within Type-0, distinguishing them from the broader, potentially undecidable enumerable sets introduced contemporaneously.

Formal Definitions

In formal language theory, a L over an \Sigma is recursive if there exists a total M such that, for every input string w \in \Sigma^*, M halts and accepts w if w \in L, and halts and rejects w if w \notin L. This definition ensures that membership in L is decidable by an that always terminates, providing a clear yes-or-no answer for any input. Recursive languages are equivalent to those decided by algorithms that terminate on all inputs, distinguishing them from partially decidable languages where a machine may loop indefinitely on certain inputs (such as those not in the language). Specifically, the requirement of halting on every input sets recursive languages apart from recursively enumerable languages, which only guarantee halting and acceptance for members but allow non-halting for non-members. Formally, a language L \subseteq \Sigma^* is recursive if and only if there exists a total M: \Sigma^* \to \{0,1\} such that L = \{ w \mid M(w) = 1 \}, where M(w) = 1 indicates acceptance and M(w) = 0 indicates rejection, with M halting on all inputs. This perspective underscores the decidability inherent in recursive languages.

Characterization

Via Turing Machines

A Turing machine M decides a language L over an alphabet \Sigma if, for every input string w \in \Sigma^*, M halts in a finite number of steps and outputs "yes" if w \in L and "no" if w \notin L. This halting requirement ensures that the computation terminates regardless of the input, distinguishing deciders from other computational models. Such machines are termed total Turing machines because their transition function is defined for all possible configurations, guaranteeing termination on all inputs. A L is recursive, or decidable, its membership problem—determining whether a given belongs to L—can be solved by a that always halts. Formally, there exists a M such that the language accepted by M (considering only halting accept states as membership) exactly matches L, and M rejects (by halting in a reject state) all strings not in L. This captures the intuitive notion of effective decidability, where an exists to conclusively settle membership queries. In contrast to Turing recognizers, which accept strings in L by halting in an accept state but may loop indefinitely on strings not in L, deciders for recursive languages must halt on every input to provide a definitive . Recognizers define recursively enumerable languages, a superset that includes all recursive languages but also undecidable ones where non-membership cannot be confirmed. The mandatory halting for both acceptance and rejection ensures that recursive languages are precisely those for which complete decision procedures exist. Consider the simple recursive language L = \{a^n b^n \mid n \geq 0\}. A Turing machine M that decides L operates as follows: Starting from the leftmost symbol, M first scans the tape to verify that the input consists solely of zero or more a's followed by the same number of b's, with no other symbols or mismatches. If the input is empty or a single blank, M immediately halts and accepts, as it matches n=0. Otherwise, M marks the first a with a special symbol (e.g., X), moves right to find the first b, marks it with another symbol (e.g., Y), and returns left to the next unmarked a. This crossing-off process repeats: for each pair of marked symbols, M advances to the next unmarked a and corresponding b, ensuring equal counts. If at any point an extra a or b is found without a match, or if extraneous symbols appear, M halts and rejects. Once all a's and b's are marked (reaching the end of the input with no leftovers), M scans the tape to confirm the structure and halts in the accept state. This design guarantees halting after a number of steps quadratic in the input length, as each of the O(n) iterations requires O(n) time to scan the tape. By the Church-Turing thesis, the class of recursive languages coincides with those computable by recursive functions.

Via Recursive Functions

Recursive functions, also known as total recursive functions, form a foundational class in computability theory, constructed from a set of basic functions using specific operations. The basic functions include the zero function Z(n) = 0, the successor function S(n) = n+1, and projection functions \pi_i^k(n_1, \dots, n_k) = n_i for $1 \leq i \leq k. These are closed under composition, where a new function h is formed as h(\mathbf{x}) = f(g_1(\mathbf{x}), \dots, g_m(\mathbf{x})) with f and g_j previously defined recursive functions, and primitive recursion, which defines functions satisfying h(\mathbf{x}, 0) = f(\mathbf{x}) and h(\mathbf{x}, y+1) = g(\mathbf{x}, y, h(\mathbf{x}, y)) for base function f and recursion step g. To obtain the full class of partial recursive functions, the minimization operator (μ-operator) is added, which produces the smallest z such that a given recursive function g(\mathbf{x}, z) = 0, or is undefined if no such z exists; however, for total recursive functions, the μ-operator is restricted to cases where the search always terminates, ensuring totality. Partial recursive functions may diverge on some inputs, whereas total recursive functions are defined and halt for all inputs on the natural numbers. Recursive languages correspond precisely to those whose membership predicates are total recursive, meaning a language L \subseteq \Sigma^* is recursive if its characteristic function \chi_L(w) = 1 if w \in L and $0 otherwise is a total recursive function. Kleene's normal form theorem establishes the representational power of these functions, stating that every partial recursive function \phi_e(\mathbf{x}) can be expressed as \phi_e(\mathbf{x}) = U(\mu y \, T(e, \mathbf{x}, y)), where T is a primitive recursive predicate encoding computations and U is a primitive recursive function extracting the output from the computation's "code." This theorem, originally due to Kleene, demonstrates that all recursive functions are computable by Turing machines, as the form allows simulation via a universal machine that interprets the encoded computation steps, thereby confirming the equivalence between recursive functions and Turing-computable functions under the Church-Turing thesis.

Properties

Closure Properties

Recursive languages, also known as decidable languages, exhibit strong properties under various s, meaning that applying these operations to recursive languages yields another recursive language. This arises because, for each , a new (TM) can be constructed from the deciders of the input languages that always halts and correctly decides membership. These properties distinguish recursive languages from broader classes like recursively enumerable languages, which lack closure under complement. Union: If L_1 and L_2 are recursive languages decided by TMs M_1 and M_2, respectively, then L_1 \cup L_2 is recursive. To decide membership in L_1 \cup L_2, construct a TM M that, on input x, simulates M_1 and M_2 nondeterministically (or in parallel via dovetailing) and accepts if either accepts; since both M_1 and M_2 halt, M will halt and accept if x \in L_1 \cup L_2, or reject otherwise. Intersection: Similarly, L_1 \cap L_2 is recursive. The TM M runs both M_1 and M_2 on x in parallel, accepting only if both accept and rejecting if either rejects; the guaranteed halting of M_1 and M_2 ensures M halts for all inputs. Complement: The complement \overline{L} of a recursive language L (decided by M) is recursive. Construct M' that simulates M on x and swaps the accept and reject states: if M accepts, M' rejects, and vice versa; since M always halts, so does M', deciding \overline{L}. Concatenation: If L_1 and L_2 are recursive, then the L_1 L_2 = \{ yz \mid y \in L_1, z \in L_2 \} is recursive. On input x, M tries all possible splits x = yz (there are |x| + 1 ways), simulates M_1 on y and M_2 on z, and accepts if both accept for some split; the finite number of splits and halting of M_1, M_2 ensure halting. Kleene Star: The L^* = \bigcup_{k=0}^\infty L^k (with L^0 = \{\epsilon\}) of a recursive L (decided by M) is recursive. On input x, M' first accepts if x = \epsilon; otherwise, it tries all ways to split x into k \geq 1 substrings (up to $2^{|x|-1} partitions) and simulates M on each, accepting if all substrings are in L; the finite checks and halting of M guarantee M' halts.

Decision and Undecidability

Recursive s are defined as those accepted by s that halt on every input, ensuring that the membership problem—determining whether a given belongs to the —is decidable for each such by simply running the total on the input. However, such as (whether the contains any ) and finiteness (whether the has finitely many ) are undecidable for recursive . Even though membership is decidable, uniformly deciding these given a description requires verifying behavior over infinitely many inputs, which leads to undecidability by reduction to problems like the . Furthermore, establishes that any non-trivial semantic property of recursively enumerable languages—such as whether the language contains only even-length strings or is bounded in length—is undecidable. Similar undecidability holds for non-trivial properties of recursive languages, as the class is a proper of recursively enumerable languages, and reductions preserve undecidability for such properties. In contrast, while individual membership remains decidable per language, the class-level for semantic properties reduces to undecidable problems like the . Recursive languages exhibit limitations in closure under certain operations, particularly infinite unions and intersections. For example, consider the languages L_n = \{ \langle M, w \rangle \mid the M halts on input w in exactly n steps \} for each n \geq 0; each L_n is recursive, as halting in a fixed number of steps can be verified by within bounded time. Yet, the infinite union \bigcup_{n=0}^\infty L_n = \{ \langle M, w \rangle \mid M halts on w \} is the , which is recursively enumerable but not recursive. Analogously, recursive languages are not closed under infinite intersections; a involves complements of sets related to the halting problem, where the infinite intersection yields a non-recursive co-recursively enumerable set. Within the Chomsky hierarchy, strictly contain lower classes, forming a proper inclusion chain: regular languages are properly contained in context-free languages, which are properly contained in context-sensitive languages, all of which are properly contained in . This strictness is demonstrated by languages like \{ a^n b^n \mid n \geq 0 \}, which is context-free but not regular, and \{ a^n b^n c^n \mid n \geq 0 \}, which is context-sensitive but not context-free, with encompassing decidable sets beyond context-sensitive power, such as those requiring arbitrary but bounded computation time.

Relations to Other Classes

Recursively Enumerable Languages

Recursively enumerable languages, also known as Turing-recognizable or semi-decidable languages, are formal languages for which there exists a that accepts precisely the strings in the language by halting in an accepting state on those inputs, while it may either halt in a rejecting state or loop indefinitely on strings not in the language. This partial halting behavior distinguishes them from recursive languages, where the must halt on all inputs, providing a definitive yes or no answer. The concept was formalized by Emil Post in as sets generated by recursive functions, aligning with Turing's earlier from 1936. The class of recursive languages forms a proper of the recursively enumerable languages. Every recursive language is recursively enumerable because a Turing machine that decides membership halts on accepting inputs, satisfying the acceptance condition. However, the converse does not hold: there are recursively enumerable languages that are not recursive, exemplified by the , which consists of the set of all encodings of -input pairs where the machine halts on that input; this set is by a simulator that runs the until halting occurs but may loop forever otherwise. Regarding complements, if a L is recursively enumerable, its complement (the set of all strings not in L) is not necessarily recursively enumerable, as the looping behavior on non-members of L prevents reliable recognition of the complement. In contrast, a L is recursive if and only if both L and its complement are recursively enumerable; in this case, one can decide membership in L by dovetailing simulations of the two recognizers, halting when one accepts. This equivalence underscores the symmetric halting requirement that defines recursive within the broader recursively enumerable class. The enumeration theorem establishes that every recursively enumerable language can be enumerated by a , which systematically generates and outputs all strings in the language—possibly with duplicates and without a specific order—by dovetailing simulations of all possible s on all possible inputs. For recursive languages, enumeration is more controlled: one can generate all strings over the in and use the decider to check membership, including only those that are accepted, ensuring termination and completeness. This enumerability property highlights the generative power of recursively enumerable languages while revealing the with recursive ones.

Context-Sensitive and Type-0 Languages

In the of formal languages, Type-3 grammars generate languages, Type-2 grammars generate context-free languages, Type-1 grammars generate context-sensitive languages, and Type-0 (unrestricted) grammars generate recursively enumerable languages, forming a strict : regular ⊂ context-free ⊂ context-sensitive ⊂ recursively enumerable. Recursive languages, being the class of decidable languages, form a proper subset of the recursively enumerable languages generated by Type-0 grammars. This positioning highlights that while all recursively enumerable languages can be generated by unrestricted grammars, only those that are decidable qualify as recursive. All context-sensitive languages are recursive, as they can be recognized by linear bounded automata, which operate on a bounded by the input and thus always halt, effectively simulating a with guaranteed termination on all inputs. This bounded-tape restriction ensures decidability, placing the entire Type-1 class within the recursive languages. In contrast, Type-0 grammars lack such restrictions and can generate non-recursive languages that are recursively enumerable but undecidable. Not all recursive languages are context-sensitive, since some decidable languages require unbounded tape space for recognition, exceeding the linear bounds of Type-1 grammars. This separation underscores the Chomsky hierarchy's role in delineating computational resources, with recursive languages spanning beyond context-sensitive capabilities up to the decidable portion of Type-0.

Examples

Decidable Language Examples

One prominent example of a decidable language is the set of palindromes over the alphabet {a, b}, defined as the set of all strings w such that w = w^R, where w^R denotes the reverse of w. This is recursive because a can decide membership by first determining the length n of the input string, then comparing the i-th symbol with the (n-i+1)-th symbol for i = 1 to \lfloor n/2 \rfloor, accepting if they all match and rejecting otherwise; the machine always halts since the input is finite. Another classic decidable language is the set { a^n b^n \mid n \geq 0 }, which consists of strings with equal numbers of a's followed by b's. Although this is a , it is recursive, as a Turing machine can decide it by scanning the input to count the number of a's, then counting the b's and comparing the counts, halting with acceptance if they are equal and rejection otherwise. The unary language of prime numbers, PRIMES = { 1^p \mid p \text{ is prime} }, is also decidable. A decides membership by interpreting the input length p as , then performing trial division: it checks divisibility by all integers from 2 up to \sqrt{p} (computed via repeated squaring or similar), accepting if no divisors are found and rejecting if one is; since \sqrt{p} is finite, the process always terminates. More broadly, every is decidable, as a can simulate the corresponding finite on the input, which runs in linear time and always halts due to the finite state space. Similarly, every is recursive, since can decide membership by converting the pushdown to an equivalent form and simulating it, or using dynamic programming on the grammar, ensuring termination on all inputs.

Boundaries with Undecidable Languages

The exemplifies a language that lies at the boundary of recursiveness, being recursively enumerable (r.e.) yet not recursive. Formally defined as the set H = \{ \langle M, w \rangle \mid M is a that halts on input w \}, it captures whether a given terminates. This language is r.e. because a can dovetail simulations of M on w, accepting upon observing a halt without bound on runtime. However, H is not recursive, as proved via : assuming a decider for H leads to a by constructing a machine that halts differently from what the decider predicts for itself. Another key boundary example is the (PCP), an undecidable over pairs of strings that is r.e. but whose complement is not r.e. In PCP, given two lists of strings over an with at least two symbols, the question is whether there exists a sequence of indices forming a match where concatenations from each list are identical. Its undecidability follows from a reduction from the , encoding computations into string correspondences. PCP is r.e. by enumerating and checking finite sequences of indices for matches, but non-membership requires ruling out all infinite possibilities, rendering the complement non-r.e. The busy beaver function further delineates recursive limits by growing faster than any total recursive function, hence being non-recursive. Defined by Tibor Radó as \Sigma(n), the maximum number of 1s produced by any halting n-state, 2-symbol Turing machine starting on blank tape, it encodes maximal productivity among halting computations. \Sigma(n) is uncomputable because computing it would solve the halting problem for all n-state machines, which is impossible; for instance, \Sigma(5) = 4098 and \Sigma(6) > 10 \uparrow\uparrow 15 (a power tower of fifteen 10s, as of 2024), outpacing any recursive growth rate. These languages are not recursive primarily because membership testing cannot guarantee termination: while positive instances can be verified by simulation or enumeration (yielding r.e. status), negative instances involve potential non-halting behaviors that evade decidable detection.

References

  1. [1]
    [PDF] An Introduction to Formal Languages and Automata - Peter Linz
    closure properties that hold fbr regular,r lalnguilges do not always hold fbr ... Therefore, by the closure of regular languages under complementation and.
  2. [2]
    [PDF] 0 About this document
    The following theorems hold: I. Every function (relation) that you get by inserting primitive recursive functions in the places of variables of other ...
  3. [3]
    Recursive Functions - Stanford Encyclopedia of Philosophy
    Apr 23, 2020 · Gödel additionally proved that the primitive recursive relations—defined as characteristic functions via (\ref{prch})—are closed under ...Arithmetical Representability... · The Primitive Recursive... · The Partial Recursive...
  4. [4]
    Lambda Calculi | Internet Encyclopedia of Philosophy
    Alonzo Church first introduced the λ -calculus as “A set of postulates for the foundation of logic” in two papers of that title published in 1932 and 1933.History · The Untyped Lambda Calculus · Philosophical ImportanceMissing: 1930s | Show results with:1930s
  5. [5]
    [PDF] An Unsolvable Problem of Elementary Number Theory Alonzo ...
    Mar 3, 2008 · ALONZO CHURCH. The purpose of the present paper is to propose a definition of effective calculability which is thought to correspond ...Missing: computability | Show results with:computability
  6. [6]
    [PDF] ON COMPUTABLE NUMBERS, WITH AN APPLICATION TO THE ...
    By A. M. TURING. [Received 28 May, 1936. —Read 12 November, 1936.] The "computable" numbers may be described briefly as the real numbers whose expressions as a ...Missing: URL | Show results with:URL
  7. [7]
    The Church-Turing Thesis - Stanford Encyclopedia of Philosophy
    Jan 8, 1997 · Church's thesis: A function of positive integers is effectively calculable only if λ-definable (or, equivalently, recursive). The reverse ...
  8. [8]
    Alan Turing Publishes "On Computable Numbers," Describing What ...
    Turing published On Computable Numbers when he was 24 years old. In issues dated November 30 and December 23, 1936 of the Proceedings of the London Mathematical ...Missing: URL | Show results with:URL
  9. [9]
    Formal language theory: refining the Chomsky hierarchy - PMC - NIH
    The first part of this article gives a brief overview of the four levels of the Chomsky hierarchy, with a special emphasis on context-free and regular ...Missing: 1960s | Show results with:1960s
  10. [10]
    None
    ### Summary of Recursive Languages and Recursively Enumerable Languages
  11. [11]
    [PDF] Introduction to Automata Theory, Languages, and Computation
    Hopcroft, John E., 1939-. Introduction to automata theory, languages, and computation / John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman.-2nd ed. p. cm. ISBN ...
  12. [12]
    [PDF] Computability Theory - Open Logic Project Builds
    The branch of logic known as computability theory deals with issues having to do with the computability, or relative computability, of functions and sets.
  13. [13]
    General recursive functions of natural numbers. - EuDML
    Kleene, S.C.. "General recursive functions of natural numbers.." Mathematische Annalen 112 (1936): 727-742. <http://eudml.org/doc/159849>.
  14. [14]
    [PDF] Closure Properties and Grammars - CS 373: Theory of Computation
    Closure Properties. Decidable Languages. Recursively Enumerable Languages. Complementation. Proposition. R.E. languages are not closed under complementation.
  15. [15]
    [PDF] Computable and computably enumerable languages
    Then M is halting and L(M) = L. Page 4. Closure properties of computable languages. Theorem. The class of computable languages is closed under complements,.
  16. [16]
    11.2. Recursively Enumerable Languages - OpenDSA
    Definition: A language L is recursively enumerable if there exists a TM M such that L=L(M).
  17. [17]
    [PDF] CMSC 28100-1 / MATH 28100-1 Introduction to Complexity Theory ...
    Nov 1, 2017 · A language L is recursively enumerable if there is a Turing machine M such that M accepts exactly those strings in L. (On strings not in L, the ...<|control11|><|separator|>
  18. [18]
    Recursively enumerable sets of positive integers and their decision ...
    A set of positive integers is recursively enumerable if there is a recursive function whose values, for positive integral values of x, constitute the given set.
  19. [19]
    [PDF] Recursive and Recursively Enumerable
    A language is recursive if and only if both it and its complement are r.e.. • If L is recursive, then so is its complement. (interchange states ha and hr). • ...
  20. [20]
    Computability and Complexity - Stanford Encyclopedia of Philosophy
    Jun 24, 2004 · The top right of the diagram shows the recursively enumerable (r.e.) problems; this includes r.e.-complete problems such as the halting problem ...
  21. [21]
    [PDF] Recursively Enumerable Languages (handout)
    Theorem If languages L and L are both RE, then L is recursive. Proof: There exists an M1 such that M1 can enumerate all elements in L.
  22. [22]
    [PDF] CS411-2015F-16 Enumeration Machines & Rice's Theorem
    Recursively enumerable languages can be enumerated! We will use the same trick we used to show that a deterministic TM can be simulated by a.
  23. [23]
    On certain formal properties of grammars - ScienceDirect.com
    June 1959, Pages 137-167. Information and Cont… On certain formal properties of grammars* ... Chomsky, 1956. Chomsky N. Three models for the description of ...
  24. [24]
    [PDF] Recursively Enumerable Languages (handout)
    Theorem If languages L and ¯L are both RE, then L is recursive. Proof: • There exists an M1 such that M1 can enumerate all elements in L. There exists an M2 ...
  25. [25]
    [PDF] Grammars, Recursively Enumerable Languages, and Turing Machines
    A grammar G is context sensitive if all productions are of the form x → y ... Context-Sensitive Languages are Recursive. The basic idea: To decide if a ...
  26. [26]
    [PDF] CSci 311, Models of Computation Chapter 11 A Hierarchy of Formal ...
    Dec 29, 2015 · 11.1.3 Definition of Recursive Language. Linz Definition 11.2 (Recursive Language): A language L on Σ is recursive if there exists a Turing ...
  27. [27]
    [PPT] CS 235: User Interface Design - Department of Computer Science
    Recursive and Context-Sensitive Languages. Every context-sensitive language is recursive. But there exists a recursive language that is not context-sensitive.
  28. [28]
    [PDF] 1 Unrestricted Grammars - CS 373: Theory of Computation
    Theorem 5. L is recursively enumerable iff there is a type 0 grammar G such that L = L(G). Thus, type 0 grammars are as powerful as Turing machines.
  29. [29]
    [PDF] Chapter 8 Phrase-Structure Grammars and Context ... - UPenn CIS
    Context-sensitive languages are recursive. This is shown as fol- lows. For any n ≥ 1 define the sequence of sets Wn i. ⊆ V +, as follows: W n. 0. = {S},. W n.
  30. [30]
    [PDF] Turing Machines
    Proposition 8.3 The set of PALINDROMES (over a fixed alphabet,. ) is a recursive set. Proof: We must construct a TM that decides PALIN-. DROMES. From here on, ...
  31. [31]
    [PDF] Decidable and Undecidable Languages - Computer Science
    The recursive languages = the set of all languages that are decided by ... Languages. CFL = Context-Free Languages anbncn ww. • semi-decidable+. • decidable.
  32. [32]
    [PDF] Turing Recognizable Languages - NYU Computer Science
    Theorem 1 There exists a language that is is not Turing recognizable. Example L primes, L Lconn are all decidable rejects x. not decidable. Sim as input, E.
  33. [33]
    [PDF] Decidability - MIT OpenCourseWare
    Example: Every regular language L is decidable. – Let M be a DFA with L(M) = L. – Design a Turing machine M′ that simulates M ...
  34. [34]
    [PDF] 6.8. The Post Correspondence Problem - UPenn CIS
    Theorem 6.8.1 (Emil Post, 1946) The Post correspondence problem is undecidable, provided that the alphabet Σ has at least two symbols.