Güncelleme [2011-09-20]: η genişleme ve genişletilebilirlik hakkındaki paragrafı genişlettim. İyi bir referansa işaret ettiği için Anton Salikhmetov'a teşekkürler.
η -dönüşüm(λx.fx)=f özel birβ - dönüşümörneğidir,yalnızcaözel durumdaf bir soyutlama olduğunda, örneğinf=λy.yy sonra
(λx.fx)=(λx.(λy.yy)x)=β(λx.xx)=αf.
Peki ya
f bir değişkendir ya da bir soyutlamaya indirgenmeyen bir uygulama ise?
Bir şekilde η kuralı özel bir uzatma türü gibidir, ancak bunun nasıl ifade edildiği konusunda biraz dikkatli olmalıyız. Yaygınlığı şöyle ifade edebiliriz:
- tüm λ -terms M ve N , eğer Mx=Nx sonra M=N ya da
- tüm ∀ x ise g . f x = g x sonra f = g .f,g∀x.fx=gxf=g
Birincisi, hesabının şartları hakkında bir meta ifadedir. İçinde x resmi bir değişken olarak görünür, yani λ- hesabının bir parçasıdır. Bu ispat edilebilir p r | , -rules içinde teoremi 2.1.29 bakınız örneğin "Lambda hesap: kendi sentaks ve semantik" Barendregt (1985) tarafından. Tüm tanımlanabilir fonksiyonlar hakkında, yani λ -term ifadeleri olan bir ifade olarak anlaşılabilir.λxλβηλ
İkinci ifade, matematikçilerin genellikle matematiksel ifadeleri nasıl anladıklarıdır. Teorisi -calculus yapıların belli bir tür açıklar, bize "diyelim λ -modelleri ". Bir λ- modeli sayılamaz olabilir, bu yüzden her öğesinin bir λ -term'e karşılık geldiğine dair bir garanti yoktur (tıpkı gerçekleri tanımlayan ifadelerden daha fazla gerçek sayı olduğu gibi). Sonra uzama gücü diyor ki: bir λ modelinde f ve g iki şey alırsak , modeldeki tüm x için f x = g x ise, o zaman f = gλλλλfgλfx=gxxf=g. Şimdi model, kuralını karşılasa bile , bu anlamda uzamayı tatmin etmesine gerek yoktur. (Burada referans gerekiyordu ve bence eşitliğin nasıl yorumlandığına dikkat etmeliyiz.)η
Çeşitli yolları vardır ki elimizden motive - ve η -conversions. Λ- hesabı olarak gizlenen kategori-teorik olanı rastgele seçeceğim ve bir başkası başka nedenleri açıklayabilir.βηλ
Yazılan hesabını düşünelim (çünkü daha az kafa karıştırıcıdır, ancak az çok λ- hesabı için aynı akıl yürütme çalışır ). Should tutan temel yasalardan biri üstel yasasıdır C A × B ≅ ( C B ) A . ( A → B ve B A notasyonlarını dönüşümlü olarak kullanıyorum, hangisi daha iyi görünüyorsa onu seçiyorum.) İzomorfizmler i : C A × B → ( C B ) A ve j :λλ
CA×B≅(CB)A.
A→BBAi:CA×B→(CB)A λ- hesabındayazılmış gibimi görünüyor? Muhtemelen
i = λ f : C A × B olurdu
. λ bir : bir . λ b : B . f ⟨ bir , b ⟩ ve
j = λ g : ( Cı- B ) bir . λ p : A × Bj:(CB)A→CA×Bλi=λf:CA×B.λa:A.λb:B.f⟨a,b⟩
Bir çift kısa bir hesaplama
β -reductions dahil (
β -reductions
π 1 ⟨ bir , b ⟩ = bir ve
π 2 ⟨ bir , b ⟩ = b ürünler için), her için, bize söyler
g : ( Cı- B ) bir Elimizdeki
i ( j g ) =j=λg:(CB)A.λp:A×B.g(π1p)(π2p).
ββπ1⟨a,b⟩=aπ2⟨a,b⟩=bg:(CB)A
Yana
ben ve
j birbirinin tersidir, biz bekliyoruz
i ( j gr ) = g , ama aslında biz kullanmaya gerek bu kanıtlamak
η : Düşürülmesi iki kez
i ( j gr ) = ( λ bir : Bir . Λ b : B . g bir b ) = η (i(jg)=λa:A.λb:B.gab.
iji(jg)=gη
Bu
η azaltmalarınınbir nedenidir. Alıştırma:
j ( i f ) = f olduğunu göstermek içinhangi
η- kuralına ihtiyaç vardır?
i(jg)=(λa:A.λb:B.gab)=η(λa:A.ga)=ηg.
ηηj(if)=f