Formalny opis rachunku lambda i nie tylko, kolejna wersja
Formalny opis rachunku lambda i nie tylko, kolejna wersja
Formalny opis rachunku lambda i nie tylko, kolejna wersja
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Pokażemy, że term F = Hc 0 definiuje funkcję f. Nietrudno zauważyć, że jeżeli<br />
wartość f(m) jest określona, to dla pewnego k mamy<br />
Wobec tego mamy następującą redukcję<br />
g(m, l) ≠ 0 dla l < k oraz g(m, k) = 0.<br />
F c m = Hc 0 c m → β Hc 1 c m → β . . . Hc k−1 c m → β Hc k c m → β c k = c f(m) .<br />
Natomiast jeżeli f(m) <strong>nie</strong> jest określona i g(m, k) ≠ 0 dla wszystkich k, to<br />
mamy <strong>nie</strong>skończoną redukcję<br />
F c m = Hc 0 c m → β Hc 1 c m → β Hc 2 c m → β . . .<br />
która jest quasi-normalna. Z wniosku 9.6 otrzymujemy, że term F c m <strong>nie</strong> ma postaci<br />
normalnej.<br />
Pozostaje podać konstrukcję termu H. Wymaga to posłużenia się operatorem<br />
punktu stałego. Musi to być szczególny operator, gwarantujący wymagane własności<br />
H. Takim może być tzw. operator Turinga. Niech więc<br />
1) A = λxy.y(xxy),<br />
2) Θ = AA,<br />
3) M = λhxy.Zero(Gyx)x(h(Sx)y).<br />
Wtedy<br />
H = ΘM = AAM → β M(AAM) = MH → β λxy.Zero(Gyx)x(H(Sx)y)<br />
i zachodzą wymienione wcześ<strong>nie</strong>j własności H. ✷<br />
10.9 Nowsze rozumie<strong>nie</strong> definiowalności<br />
Funkcje definiowalne według Churcha mają może nawet bardzo intuicyjną definicję,<br />
ale jest ona zbyt restrykcyjna i trudno się nią posugiwać. Często inaczej<br />
formułuje się warunek <strong>nie</strong>określoności funkcji.<br />
Term M nazywamy rozwiązalnym (ang. solvable), jeżeli ist<strong>nie</strong>ją termy N 1 , . . . , N k<br />
takie, że<br />
(λx 1 . . . x n .M)N 1 . . . N k = I,<br />
gdzie zmienne x 1 , . . . , x n są wszystkimi zmiennymi wolnymi w termie M.<br />
Nietrudno zauważyć, że numerały Churcha są rozwiązalne. Mamy bowiem<br />
c n II = I. Także term xy(ωω) (gdzie ω = λz.zz) jest rozwiązałny, po<strong>nie</strong>waż<br />
(λxy.xy(ωω))KI = I, jednak <strong>nie</strong> ma on postaci normalnej.<br />
Mówimy, że term jest w głowowej postaci normalnej, jeżeli jest on postaci<br />
λx 1 . . . x n .xN 1 . . . N m ,<br />
gdzie m i n są dowolnymi liczbami naturalnymi, także mogą być równe 0, x oraz<br />
x 1 , . . . , x n są dowolnymi zmiennymi, a N 1 . . . N m są dowolnymi termami.<br />
Term ωω <strong>nie</strong> ma głowowej postaci normalnej.<br />
Lemat 10.8 Zachodzą następujące fakty:<br />
1) Term w postaci normalnej jest w głowowej postaci normalnej.<br />
31