Jak zauważył Yuval, nie ma tylko jednego operatora punktu stałego. Dużo ich. Innymi słowy, równanie dla twierdzenia o punkcie stałym nie ma jednej odpowiedzi. Nie można więc uzyskać od nich operatora.
To tak, jakby zapytać, jak ludzie wyprowadzają jako rozwiązanie dla . Oni nie! Równanie nie ma unikalnego rozwiązania.(x,y)=(0,0)x=y
Na wypadek, gdybyście chcieli dowiedzieć się, jak odkryto pierwsze twierdzenie o punkcie stałym. Powiem, że zastanawiałem się także, w jaki sposób wymyślili twierdzenia o punkcie stałym / rekurencji, kiedy je zobaczyłem. To wydaje się takie genialne. Szczególnie w formie teorii obliczalności. W przeciwieństwie do tego, co mówi Yuval, ludzie nie bawili się, dopóki czegoś nie znaleźli. Oto, co znalazłem:
O ile pamiętam, twierdzenie to pierwotnie wynika z SC Kleene. Kleene wymyślił pierwotne twierdzenie o stałym punkcie, ocalając dowód niespójności pierwotnego rachunku lambda Kościoła. Oryginalny rachunek lambda Kościoła cierpiał na paradoks typu Russel. Zmodyfikowany rachunek lambda uniknął problemu. Kleene przestudiował dowód niespójności, aby prawdopodobnie sprawdzić, czy zmodyfikowany rachunek lambda cierpiałby na podobny problem i przekształcił dowód niespójności w przydatne twierdzenie o zmodyfikowanym rachunku lambda. Poprzez swoją pracę dotyczącą równoważności rachunku lambada z innymi modelami obliczeń (maszyny Turinga, funkcje rekurencyjne itp.) Przeniósł go na inne modele obliczeń.
Jak uzyskać operatora, o który możesz zapytać? Oto jak o tym pamiętam. Twierdzenie o punkcie stałym dotyczy usuwania odniesienia do siebie.
Każdy zna kłamliwy paradoks:
Jestem legowiskiem.
Lub w bardziej lingwistycznej formie:
To zdanie jest fałszywe.
Teraz większość ludzi uważa, że problem z tym zdaniem dotyczy samego odniesienia. Nie jest! Odniesienia do siebie można wyeliminować (problem dotyczy prawdy, język nie może mówić ogólnie o prawdziwości własnych zdań, patrz twierdzenie Tarskiego o nieokreśloności prawdy ). Formularz, w którym usunięto odniesienie, jest następujący:
Jeśli napiszesz następujący cytat dwa razy, drugi raz w cudzysłowie, wynikowe zdanie będzie fałszywe: „Jeśli napiszesz następujący cytat, drugi raz w cudzysłowie, wynikowe zdanie będzie fałszywe:”
Bez odniesienia do siebie, mamy instrukcje, jak skonstruować zdanie, a następnie coś z nim zrobić. A zdanie, które się konstruuje, jest równe instrukcjom. Zauważ, że w -calculus nie potrzebujemy cudzysłowów, ponieważ nie ma rozróżnienia między danymi a instrukcjami.λ
Teraz, jeśli to przeanalizujemy, mamy gdzie jest instrukcją, aby skonstruować i coś z tym zrobić.MMMxxx
Mx=f(xx)
Więc to i mamyMλx.f(xx)
MM=(λx.f(xx))(λx.f(xx))
To jest dla ustalonego . Jeśli chcesz uczynić go operatorem, po prostu dodajemy i otrzymujemy :fλfY
Y=λf.(MM)=λf.((λx.f(xx))(λx.f(xx)))
Więc po prostu pamiętać paradoksu bez samo-odniesienia i że pomaga mi zrozumieć, co jest.Y