TM停止問題・改

改訂版:TMの停止問題は非可解であることの証明。 旧版がカオスになったので書き直す。TM停止問題 - hat-tunの日記


L={ρi| TMρiは列ρiに対して停止して受理しない}
という言語が必ず停止するTMで認識できないことは証明されているとする。


まず問題を分析する。

  • TM停止問題が非可解

インスタンスとしてTM Mと列ρ。 
Mがρに対して停止するかどうかという問題が停止するTMで解けない=Mがρに対して停止するかどうかはわからない。



次に、背理法による証明を試みる。

  • TM停止問題を解ける、必ず停止するTM Mhが存在すると仮定する。

ここでMhは、インスタンスとしてTM Mと列ρをとる。  

この仮定から、言語Lを認識するTM Tが存在してしまうことを示す。
1つでもそういうTが存在すれば反例として矛盾が生じる。 → そういうTを探す(作る)

  • TM Tを作る

Tは言語Lを認識するように作りたい、つまりインスタンスとして列ρをとるものとする。


模倣の定義、「Tがxを入力とするMを模倣する,とは,Mがxを受理する場合に限りTがE(M)E(x)を受理する」
(E(M),E(x)はそれぞれM, xを符号化してできた文字列)
を踏まえて、Tは入力xをxxとし・て・か・ら(この後を「Tの中間部」とする)、Mhのxxに対する動作を完全に模倣するように作る。
そのようにTを作ったので、Mhがxxを受理するとき、その時に限ってTの中間部はE(Mh)E(xx)を受理する。

ここで、仮定からTMxが列xに対して止まるかどうかの答えが出る。

    • 止まらないと答えが出て停止した場合(Noの矢印)

Mhがxxを受理しなかったということなので、Tの中間部も同様にE(Mh)E(xx)を受理しない。
Tの入力はxであったが、中間部が非受理なので、したがってTは停止してxを受理しないということになる。

    • 止まると答えがでて停止した場合(yesの矢印)

止まるという答えで停止した場合は、今度は、TMxの列xに対する動作を模倣する。(Tのこの部分を「Tの後半部」とする。)


先と同様に、xがxを受理する時、その時に限ってTの後半部はE(x)E(x)を受理する。
よって、TM xが列xに対して非受理状態で停止すれば、Tの後半部はE(x)E(x)を受理しない。
後半部は非受理となるが、中間部と接続して、最終的に「Tは停止してxを受理する」というように作る。


TM xが列xに対して受理状態で停止すれば、もちろんTの後半部はE(x)E(x)を受理する。 
後半部は受理となるが、中間部と接続して、最終的に「Tは停止してxを受理しない」というように作る。



  • 矛盾が生じる

以上でMhの仮定から作成したTM Tは言語Lを認識する必ず停止するTMであることから、これは矛盾である。
よってTM Mhは存在しない、つまりTMの停止問題は停止するTMでは解けないことが示せた。


Q.E.D.