Skip to content

18. Undecidability

Mar 3/8, 2022

Turing-acceptable and undecidable

Undecidable languages has no decider: any TM that accepts L does not halt on some input string.

We will show that there exists is a language L which is Turing-acceptable and undecidable:

           ╭————————————————————————————————————————╮
           │       Non-Turing-acceptable      -----------  ¬L
           │   ╭———————————————————————————————╮      │
           │   │      Turing-acceptable     ------------  L
           │   │  ╭—————————————————————————╮  │    │
           │   │  │      Decidable          │  │    │
           │   │  ╰—————————————————————————╯  │    │
           │   ╰———————————————————————————————╯    │
           ╰————————————————————————————————————————╯

Consider alphabet {a}. Strings of {a}+: a=a1, aa=a2, aaa=a3, aaaa=a4,

Consider TMs that accept languages over alphabet {a}:

They are countable M1,M2,M3,M4, (there is an enumerator that generates them).

Each machine accepts some language over {a}: M1 accepts L(M1), M2 accepts L(M2), etc. Note that it is possible L(Mi)=L(Mj) for ij, since a language could be accepted by more than one Turing machine.

Example language accepted by Mi: L(Mi)={aa,aaaa,aaaaaa}={a2,a4,a6}.

Consider the language L={ai:aiL(Mi)} where L consists of the 1s in the diagonal: L={a3,a4,}. Also consider the language L={ai:aiL(Mi)}, which consists of 0s in the diagonal: L={a1,a2,}.

       | a1 a2 a3 a4  ...
-------------------------           
L(M1)  |  0  1  0  1  ...
L(M2)  |  1  0  0  1  ...
L(M3)  |  0  1  1  1  ...
L(M4)  |  0  0  0  1  ...
...    |  ...

Proof. There exists is a language L which is Turing-acceptable and undecidable.

Theorem: language L is not Turing-acceptable.

Proof: Assume for contradiction that L is Turing-acceptable. Let Mk be the Turing machine that accepts L: L(Mk)=L=1100. Which Mi is Mk?

MkMi for any i, because either:

(aiL(Mk) and aiL(Mi))   or   (aiL(Mk) and aiL(Mi))

The machine Mk cannot exist. Therefore L is not Turing-acceptable.

Next will prove that language L={ai:aiL(Mi)} is:

  • Turing-acceptable - there is a TM that accepts L, and
  • undecidable - each machine that accepts L does not halt on some input

Theorem: L is Turing-acceptable.

Proof: give a TM that accepts L. For any input string w: suppose w=ai. Find Turing machine Mi (using the enumerator for TMs). Simulate Mi on input string ai. If Mi accepts, then accept w.

Therefore, L={ai:aiL(Mi)} is Turing acceptable, L={ai:aiL(Mi)}.

Theorem: L is undecidable.

Proof: if L is decidable, the complement of decidable language is decidable, then L is decidable. However, L is not Turing-acceptable, contradiction.