1

The language $D=\{[M]|M([M])=0\}$ is not decidable because of the following argument:

Suppose there was a $TM \space M_D$ that decides $D$. Then if we gave $M_D \space [M] $, there would be two possible outcomes:

1. $M_D([M_D])=1 \text{ (accepts)}\implies M_D \text{ does accept }M_D $, contradiction, because then $M_D([M_D])=0$ must be true.

2. $M_D([M_D])=0 \text{ (does not accept})\implies M_D \text{ does accept }M_D $, contradiction, because then $M_D([M_D])=1 $ must be true.

Anyways, I think most people are familiar with the proof.

My question is:

Where does the following argument fail? (I think this is important to understand other proofs where diagonalization is involved)

Suppose we have a $TM$ $M_D$ that decides if another $TM \space M$ does not accept $[M]$. What if we just restrict $M_D$ so that it decides D for almost every other Turing Machine? So in this case we could say: $M_D$ does not decide for itself if $M_D$ accepts $[M_D]$, but it decides for every other Turing Machine.

Is this restriction useless because then it is possible to construct infinitely many Turing Machines for which $M_D$ can not decide whether they accept 'themselves'?

David
  • 25
  • 6

1 Answers1

1

Even with your restriction $D$ is undecidable. You can still reduce the halting problem of a TM $A$ on a word $x$ to $D$. Construct a TM $B$ that simulates $A$ on $x$. If $A$ halts, $B$ accepts its input. Otherwise $B$ runs forever. Clearly then $A$ halts on $x$ iff $B \not\in D$. Note that you can always construct $B$ such that $B \neq M_D$ by performing additional, irrelevant steps.

idmean
  • 756
  • 4
  • 12