Professional Documents
Culture Documents
2. Un-decidability
After the completion of this chapter students will be able to:
Define what is enumerable Languages and non-enumerable Languages
Define what is Turing recognizability and decidability.
What undecidable languages are?
Turing machine Halting problems and rice theorem
Perhaps the single most important result in Turing’s remarkable 1936 paper is his
solution to Hilbert’s Entscheidungs problem, which asked for a general automatic
procedure to determine whether a given statement of first-order logic is provable. Turing
proved that no such procedure exists; there is no systematic way to distinguish between
statements that cannot be proved even in principle and statements whose proofs we just
haven’t found yet.
1.1. Acceptable versus Decidable
Recall that there are three possible outcomes for a Turing machine M running on any
particular input string w: acceptance, rejection, and divergence. Every Turing machine M
immediately defines four different languages (over the input alphabet Σ of M):
For any language L, the sentence “M accepts L” means Accept (M) = L, and the sentence “M
decides L” means Accept(M) = L and Diverge(M) =
Now let L be an arbitrary language. We say that L is acceptable (or semi-computable, or
semi-decidable, or recognizable, or listable, or recursively enumerable) if some Turing
machine accepts L, and unacceptable otherwise. Similarly, L is decidable (or computable,
or recursive) if some Turing machine decides L, and undecidable otherwise.
1.2. Language Decidability
A language is called Decidable or Recursive if there is a Turing machine which accepts
and halts on every input string w. Every decidable language is Turing-Acceptable.
Example 1
1.4. Turing-Recognizability
L is Turing recognizable if there is a Turing machine M that recognizes L, that is, M should
accept all strings in L and M should not accept any strings not in L. This is not the same as
decidability because recognizability does not require that M actually reject strings not in L.
M
may reject some strings not in L but it is also possible that M will simply "remain
undecided"
on some strings not in L; for such strings, M's computation never halts.
1.5. Turing recognizability and Turing enumerability
There is an alternate way of describing recognizability. L is Turing enumerable if there is an
enumerator Turing machine E that prints all strings in L and no other strings. The
enumerator E does not have any inputs. When started, E starts printing strings on its
output tape. E may stop after a while or it may continue printing forever. The time interval
between consecutively printed strings may vary; E may have to compute for a while before
being ready to print another string.
Theorem. The following language L is decidable.
L = { <M> | M is a DFA that accepts infinitely many strings }
In other words, the computational problem of determining whether a given DFA accepts an
infinite language or not is decidable.
Proof: We must design a decider TM M that recognizes L.
First try an approach that's too good to be true. Let E be a Turing enumerator of the set of
all
strings over the On input w, D decodes w and determines whether w is the string encoding
of
a DFA M. If not, D rejects w. If w encodes a valid DFA M, D continues its computation by
starting a Turing enumerator machine E for the set of all strings over the input alphabet of
M.
For each string s printed by E, D feeds s to M and waits for M to finish processing s. If M
accepts s, D places s in a special "bin" containing all accepted strings. Once all strings
printed by E have been processed in this way, D simply checks whether infinitely many of
them have been placed in the bin. If so, D accepts w, declaring that the corresponding DFA
M accepts an infinite language. If not, D rejects w. In any case, a decision is reached, so D is
a decider
1.6. Undecidable Languages
For an undecidable language, there is no Turing Machine which accepts the language and
makes a decision for every input string w (TM can make decision for some input string
though). A decision problem P is called “undecidable” if the language L of all yes instances
to P is not decidable. Undecidable languages are not recursive languages, but sometimes,
they may be recursively enumerable languages.
Example
Theorem
x1 x2 x3
M Abb aa aaa
N Bba aaa aa
Here,
x2x1x3 = ‘aaabbaaa’
and y2y1y3 = ‘aaabbaaa’
We can see that
x2x1x3 = y2y1y3
Hence, the solution is i = 2, j = 1, and k = 3.
Example 2
Find whether the lists M = (ab, bab, bbaaa) and N = (a, ba, bab) have a Post
Correspondence Solution?
Solution
x1 x2 x3
M Ab Bab bbaaa
N A Ba bab
2. L is Turing decidable (or just decidable) if there exists a Turing machine M that
accepts all strings in L and rejects all strings not in L.