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. H
Bir Halting kâhili için herhangi bir adaya verilen , bir program olduğunu P
ve a
bunun H
ne 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 H
bir program olsun . Sonra bir program var ve böyle bir sonuç varsa ve sadece geri dönerse duracak bir giriş var .halt
loop
Q
a
Q(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 = P
ve a = P
. Ya H(Q,a) = halt
da 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 = P
Ve a = X
bazı keyfi için edelim X
. Ya H(Q,X) = halt
da H(Q,X) = loop
:
- Diyelim ki
H(Q,X) = halt
ne 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 .