Aktualizacja [2011-09-20]: Rozszerzyłem akapit o rozszerzeniu i ekstensywności. Dziękujemy Antonowi Salikhmetovowi za wskazanie dobrych referencji.η
-konwersja ( λ x . f x ) = f jest szczególnym przypadkiem β - konwersjitylkow szczególnym przypadku, gdy f jest samo w sobie abstrakcją, np. jeśli f = λ y . y y następnie ( λ x . f x ) = ( λ x . ( λ y . y y ) x ) = β ( λ x .η(λx.fx)=fβff=λy.yyAle co jeśli f jest zmienną lub aplikacją, która nie sprowadza się do abstrakcji?
(λx.fx)=(λx.(λy.yy)x)=β(λx.xx)=αf.
f
W pewnym sensie zasada jest jak szczególny rodzaj ekstensywności, ale musimy być nieco ostrożni, jak to jest stwierdzone. Możemy określić ekstensywność jako:η
- dla wszystkich terminali M i N , jeśli M x = N x, to M = N lubλMNMx=NxM= N
- dla wszystkich jeśli ∀ x . f x = g x, a następnie f = g .f, g∀x.fx=gxf= g
Pierwszy to meta-stwierdzenie dotyczące warunków rachunku. W nim x pojawia się jako zmienna formalna, tzn. Jest częścią rachunku λ . Można to udowodnić na podstawie reguł β η , patrz na przykład Twierdzenie 2.1.29 w „Rachunku lambda: jego składnia i semantyka” Barendregta (1985). Można to rozumieć jako stwierdzenie o wszystkich definiowalnych funkcjach, tj. Tych, które są oznaczeniami terminów λ .λxλβηλ
Drugim stwierdzeniem jest to, w jaki sposób matematycy zazwyczaj rozumieją wyrażenia matematyczne. Teoria -kalkusa opisuje pewien rodzaj struktur, nazwijmy je „ modelami λ ”. Model λ może być niepoliczalny, więc nie ma gwarancji, że każdy jego element odpowiada termowi λ (tak jak jest więcej liczb rzeczywistych niż wyrażeń opisujących liczby rzeczywiste). Ekstensywność mówi wtedy: jeśli weźmiemy dwie rzeczy f i g w modelu λ , jeśli f x = g x dla wszystkich x w modelu, to f = gλλλλfasolλfax = gxxfa= g. Teraz nawet jeśli model spełnia regułę , nie musi spełniać ekstensywności w tym sensie. (Potrzebne jest tutaj odniesienie i myślę, że musimy uważać na interpretację równości.)η
Istnieje kilka sposobów motywowania konwersji i η . Ja losowo wybrać jedną kategorię-teoretyczny, ukrytego jako λ -calculus, a ktoś inny nie może tłumaczyć z innych powodów.βηλ
Rozważmy wpisany calculus (ponieważ jest mniej mylący, ale mniej więcej takie samo rozumowanie działa dla niepypisanego λ- calculus). Jednym z podstawowych praw, które powinny posiadanych jest prawo wykładniczy C × B ≅ ( C B ) . (Używam notacji A → B i B A zamiennie, wybierając coś, co wydaje się wyglądać lepiej.) Co oznaczają izomorfizmy i : C A × B → ( C B ) A i j :λλ
doA × B≅( Cb)ZA.
A → BbZAi : CA × B→(CB)A wygląda jak napisane w
λ- rachunku? Prawdopodobnie byłyby
i = X F : C x B . λ : . λ b : B . f ⟨ , b ⟩ i
J = λ g : ( C, B ) . λ p : A × Bj:(CB)A→CA×Bλi = λ f: CA × B. λ : . λ b : B . fa⟨ A , b ⟩
Krótki obliczenie z parą
p -reductions (włączając w to
P -reductions
gatunku 1 ⟨ a , b ⟩ = a i
gatunku 2 ⟨ a , b ⟩ = b produktów) mówi, że dla każdego
g : ( C, B ) A mamy
i ( j g ) =j=λg:(CB)A.λp:A×B.g(π1p)(π2p).
ββπ1⟨a,b⟩=aπ2⟨a,b⟩=bg:(CB)A
Od
I i
J są odwrotne od siebie oczekujemy
i ( j g ) = g , ale faktycznie to udowodnić musimy użyć
η -redukcja dwukrotnie:
I ( j g ) = ( λ w : . X B : B . g a b ) = η (i(jg)=λa:A.λb:B.gab.
iji(jg)=gη
Jest to jeden z powodówobniżenia
η . Ćwiczenie: którareguła
η jest potrzebna, aby pokazać, że
j ( i f ) = f ?
i(jg)=(λa:A.λb:B.gab)=η(λa:A.ga)=ηg.
ηηj(if)=f