質問
は、次の問題が解決できることを示しています。2つのプログラムがそれらの入力とそれらのうちの正確に停止しているという知識があることを示しています。
プログラムの1つを停止すると判断するプログラムであることを許可しましょう。
P(Program x,Program y){
if(x will be halted)
then return 1;
else
then return 2;
}
.
私たちは、それらのうちの1つが停止されることを知っているので、プログラムXが停止された場合、OtherwiaeプログラムYは停止されます。
それから新しいプログラム呼び出しを作成しますD
D(X,Y){
if(P(X,Y) == 2)
D will halt;
else
while(1)//D will not halt;
}
.
は任意のプログラムであることを可能にします。
D(D、S)
がある場合Dが停止した場合Dは停止しません
Dが停止しない場合は、Dが停止します
問題停止問題と同じ矛盾を強化します。
しかし、それは解決可能であると述べた。
解決
重要な面から始める注: $ x $ 、 $ Y $ 彼らは停止すること?質問が明確に定義されている(たとえば、質問が "$ x、y $ を与えられるようにするために、マシンの特定の入力を指定する必要があります。 $¥epsilon $ で終了し、誰が停止したのかを見つけます。 "または「与えられた......与えられています。 )
私はあなたをそこに混乱しているものがわかります。問題は確かに解決可能です。 $ p $ の両方 $ x $ と $ Y $ 、最初に停止した人は誰でも回答します。
解決策の問題は、 $ p $ への入力でなければなりません $ x、y $ 正確にのうちの1つは停止し、もう1つは止められません。
そのため、 $ d $ への適切な入力は、 $ p $ への適切な入力でなければなりません。これで、 $ d(d、s)$ と呼ばれます。 $ d $ が正しい出力を返すようにするには、適切な入力が必要です。 $ d $ < / span>または $ s $ 停止!しかし、... $ s $ の場合、 $ d $ haltsとこれは $ p $ への適切な入力ではないため、 $ d $ 。したがって、 $ d(d、s)$ からの出力に頼ることはできません