Animasyonlarla daha güzel bir kanıt deneyin . Ve cevaplar bir siteye bir linkten daha fazlasını içermesi gerektiği için, sorunuzun cevabı.
İlk önce, Halting kehanetinin var olmadığının kanıtının nasıl çalıştığını hatırlayalım. HBir Halting kâhili için herhangi bir adaya verilen , bir program olduğunu Pve abunun Hne P(a)olduğunu doğru tahmin edemediğini gösteren bir kanıt olduğunu kanıtlıyoruz .
Teorem: İki girdi alan ve her zaman ya da geri dönen Hbir program olsun . Sonra bir program var ve böyle bir sonuç varsa ve sadece geri dönerse duracak bir giriş var .haltloopQaQ(a)H(Q,a)loop
Kanıt. Programı düşünün
program P(y):
if H(y,y) = halt then
loop forever
else:
return
Let Q = Pve a = P. Ya H(Q,a) = haltda H(Q,a) = loop:
- eğer
H(Q,a) = haltöyleyse Q(a)(ki bu sadece P(P)) tanımı ile sonsuza kadar çalışırP .
- eğer
H(Q,a) = loopöyleyse Q(a), tanımı ile durdurulur P.
QED
Biz kabul niçin sordun H(P,P)yerine H(P,X)başka için X. Açıkça cevap, "çünkü H(P,P)kanıtı işe yaratan şey budur"! Eğer kullanılırsa H(P,X)bazı İsteğe bağlı olmak üzere X, tıkanıp tanınacak. Aslında, kanıt daha sonra şöyle görünür:
Kırık kanıt. Programı düşünün
program P(y):
if H(y,y) = halt then
loop forever
else:
return
Q = PVe a = Xbazı keyfi için edelim X. Ya H(Q,X) = haltda H(Q,X) = loop:
- Diyelim ki
H(Q,X) = haltne P(X)yapacağımızı söyleyemeyiz , çünkü P(X)durmaların H(X,X)geri dönüşe bağlı olup olmadığı . Sıkıştık. Ancak, bunu biliyorsak P(X)ve X(X)aynı olsaydık, ilerleme kaydedebilirdik. (Yani, gerçekten almalıyız X = P).
- eğer
H(Q,a) = loopöyleyse yine sıkışıp kalırız ve eğer çözülürsek X = P.
QED yok.
Umarım bu, H(P,P)fikrimizi çalışır hale getirmek için göz önünde bulundurmamız gerektiğini gösterir .