Theory of Computing
Lecture 20
MAS 714
Hartmut Klauck
• Definition: A language is decidable if there is a
TM that accepts all words in the language and
rejects all words not in the language
• In particular it always halts in finite time
• For a Turing machine M the language accepted
by M is the set of x on which M accepts
(denoted by LM)
• U={<M>,x: M accepts x}
– Universal Language (inputs acc. by the universal TM)
• U is not decidable: HALT· U
– Note: decider must be correct and halt on all inputs
• Reduction: Map <M>,x to <N>,x
– where N is the machine that simulates M, and if M
halts, then N accepts (N never rejects)
• <M>,x2 HALT, <N>,x2 U
• The complement of L is the set of strings that is
not in L (over the same alphabet)
• Observation: L is decidable if and only if C(L) is
– simply switch acceptance with rejecting
• Corollary: If L is not decidable then C(L) is also
not decidable
• Example: EMPTY={<M>: LM=;} is not decidable
– Note this is not exactly the complement of NEMPTY,
but the complement minus a computable set: {x: x is
not a TM encoding}
• EQ={<M>,<N>: LM =LN}
Theorem: EQ is not decidable
Reduction from EMPTY
Fix some TM N that never accepts
Reduction maps <M> to <M>,<N>
• If L is decidable and S is decidable then
– Complement of L is decidable
– LÅS is decidable
– L[S is decidable
• Corollary:
– CH={<M>: M halts on no input} is not decidable
• CH=C(H)-{x: not encoding a TM}
Rice’s Theorem
• A (nontrivial) property P of languages is a subset of all
– such that there is a language (accepted by a TM) with P and a
language (accepted by a TM) without P
• Theorem: Let L(P)={<M>: LM has property P},
where P is a nontrivial property
– Then: L(P) is not decidable
• Example: {<M>: fM can be computed in polynomial time}
– Note: M might not run in polynomial time
• Not an example: {<M>: M runs 100 steps on the empty
Proof [Rice]
• We assume that ; does not have property P
– Otherwise we use the complement of P
• Denote by A some TM such that LA has property P
– Must exist since P is not trivial
• We show that U· LP
• Given <M>, x we construct Mx:
– Simulate M on x
– If M accepts x then simulate A on the input u to Mx
– If M does not accept x go into infinite loop
• Now: <M>,x2 U) M accepts x ) Mx accepts u iff A accepts u) Mx
behaves like A and L(Mx) has property P
• <M>,x not in U) Mx will not halt) L(Mx) is empty, L(Mx) does not
have property P
• Consider the set of languages that can be
accepted by nondeterministic TM that always halt
• As before we can see that these can be simulated
by deterministic TM that run in exponentially
more time
• Corollary: Computability by deterministic and
nondeterministic TM is the same as long as the
TM must halt
• What if the NTM does not need to halt?
One-sided decisions
• For NP it does not matter if the NTM halts on
inputs not in the language, because we have a
time upper bound and can stop the machine
after that time
• If there is no time bound we never know if the
machine might still accept
• Definition: A language L is recognizable if
there is a TM that accepts it (which might
never stop on inputs outside of L).
• Halting problem HALT
• Simply simulate M on x
• If M halts on x, accept
• Clearly: all <M>,x that are in HALT are accepted,
all other <M>,x are not accepted
• Theorem: HALT is recognizable
• Similar: H={<M>: M accepts some x} is
• Theorem:
– If L and C(L) are recognizable, then L is decidable
• Proof:
– There are recognizers M and N for L and C(L)
– Idea: simulate both in parallel
• Simulate M for a few steps, then N, then M again...
– One of them stops: can make the decision
– x2 L then M accepts and our machine also accepts
– x2 C(L) then N accepts and our machine rejects
• Corollary: the following situations are
– L and C(L) both decidable
– L recognizable but C(L) not recognizable and both
not decidable
– both L and C(L) not recognizable
• Example: HALT is not decidable but
recognizable, hence C(HALT) not recognizable
Not recognizable
• Theorem: Assume L· S . If L is not
recognizable then S is not recognizable
– Proof: If S is recognizable, we can recognize L by
computing the reduction and then using the
recognizer for S
• Theorem: C(U) is not recognizable
• Proof: Enough to show that U is recognizable,
since U is not decidable
• How? Simulate M on x.
Not recognizable
• Theorem: EQ is not recognizable
– Reduction from C(H)={<M>: M halts on no x}
– Given <M> find N: N simulates M and accepts if M
– Map <M> to <N>, <S>, where S does not accept
– Then: <M>2 C(H) , N accepts nothing ,
<N>,<S>2 EQ
Not recognizable
• Theorem: C(EQ) is not recognizable
• Proof:
C(EQ)={<M>,<N>: LM  LN }
Reduction from C(U)
N: ignore input, simulate M on x, accept if M accepts
S: accept every input
Map <M>, x to <N>,<S>
If M is in C(U) them M rejects x or never halts. Then N
rejects or never halts on every input, then N and S do not
accept the same language
– If M is not in C(U), then M accepts x, then N accepts
everything, then N and S accept the same language
• There are languages such the neither L not
C(L) are recognizable
• Definition: L is enumerable, if there is a Turing
machine M that writes all strings in L to a
special output tape
– M has no input and runs forever
• Theorem: L is enumerable iff L is recognizable
– Proof:
• ): Enumerate L, test each output against x, once x is
found, accept
Back direction of the proof
• Idea: loop over all inputs, and write the accepted
ones to the output tape
• Problem: TM does not halt
• Solution: Dove-Tailing:
Loop over all strings x
Loop over all integers i
Simulate M on x for i steps.
If M accepts, write x to the output tape
• Clearly this machine eventually writes all
recognized strings to the tape
Other problems?
• All problems so far concern Turing machines
• Any other undecidable problems?
• Example: Arithmetic
– Given a sentence in Peano arithmetic, can it be
proved from the Peano axiom [is it a theorem]?
– Undecidable
– Decidable: remove multiplication, still hard for
doubly exponential time [Presburger arithmetic]
Hilbert’s 10th problem
• A Diophantine equation is p(x1,…,xn)=0,
where p is a polynomial with integer coefficients
• Question: Are there integer solutions?
• Example: an+bn=c n, are there integer solutions for
– There are none, but this slide is too small for the
• Theorem [Matiyasevich ’70]: The problem of
solving Diophantine Equations is uncomputable
Example: Posts’ correspondence
• Given two sequences of strings
– example: A=[a, ab, bba] and B=[baa, aa, bb]
• Can we find a set of indices such that the
corresponding strings are the
• Example: 3,2,3,1
– bba ab bba a = bb aa bb baa
• Problem is undecidable

similar documents