Pembaruan [2011-09-20]: Saya memperluas paragraf tentang -ekspansi dan ekstensionalitas. Terima kasih kepada Anton Salikhmetov karena menunjukkan referensi yang bagus.η
η -conversion adalah kasus khusus - konversi hanya dalam kasus khusus ketika itu sendiri merupakan abstraksi, misalnya, jika thenTetapi bagaimana jika adalah variabel, atau aplikasi yang tidak direduksi menjadi abstraksi?β( λ x . fx ) = fβf = λ y . y y ( λ x . f x ) = ( λ x . ( λ y . y y ) x ) = β ( λ x . x x ) = α f . fff= λ y. yy
( λ x . fx ) = ( λ x . ( λ y. yy) x ) =β( λ x . x x ) =αf.
f
Dengan cara -rule adalah seperti jenis khusus dari extensionality, tetapi kita harus sedikit berhati-hati tentang bagaimana yang dinyatakan. Kita dapat menyatakan ekstensionalitas sebagai:η
- untuk semua -terms dan , jika maka , atauM N M x = N x M = NλM.NM.x = NxM.= N
- untuk semua jika ∀ x . f x = g x lalu f = g .f, g∀x.fx=gxf=g
Yang pertama adalah meta-statement tentang syarat-syarat -calculus. Di dalamnya x muncul sebagai variabel formal, yaitu, itu adalah bagian dari λ- kalkulus. Hal ini dapat dibuktikan dari aturan β η , lihat misalnya Teorema 2.1.29 dalam "Lambda Calculus: Syntax and Semantics" oleh Barendregt (1985). Ini dapat dipahami sebagai pernyataan tentang semua fungsi yang dapat didefinisikan , yaitu, yang merupakan denotasi dari λ -terms.λxλβηλ
Pernyataan kedua adalah bagaimana ahli matematika biasanya memahami pernyataan matematika. Teori -calculus menggambarkan jenis struktur tertentu, mari kita sebut mereka " λ -models ". Model λ mungkin tidak dapat dihitung, sehingga tidak ada jaminan bahwa setiap elemennya berhubungan dengan λ -term (sama seperti ada bilangan real lebih banyak daripada ekspresi yang menggambarkan real). Ekstensionalitas kemudian mengatakan: jika kita mengambil dua hal f dan g dalam model- λ , jika f x = g x untuk semua x dalam model, maka f = gλλλλfgλfx=gxxf=g. Sekarang bahkan jika model memenuhi aturan- , itu tidak perlu memenuhi ekstensionalitas dalam pengertian ini. (Referensi diperlukan di sini, dan saya pikir kita perlu berhati-hati bagaimana kesetaraan ditafsirkan.)η
Ada beberapa cara di mana kita dapat memotivasi konversi - dan η . Saya akan secara acak memilih kategori-theoretik, menyamar sebagai λ -kalkulus, dan orang lain dapat menjelaskan alasan lain.βηλ
Mari kita perhatikan -calculus yang diketik (karena kurang membingungkan, tetapi lebih atau kurang alasan yang sama bekerja untuk λ -calculus yang tidak diketik). Salah satu hukum dasar yang harus memegang adalah hukum eksponensial C A × B ≅ ( C B ) A . (Saya menggunakan notasi A → B dan B A secara bergantian, memilih mana yang terlihat lebih baik.) Apa isomorfisma i : C A × B → ( C B ) A dan j :λλ
CA×B≅(CB)A.
A → BBSEBUAHi : CA × B→ ( CB)SEBUAH terlihat seperti, ditulis dalam
λ -calculus? Agaknya mereka akan
saya = λ f : C A × B . λ a : A . λ b : B . f ⟨ a , b ⟩ dan
j = λ g : ( C B ) A . λ p : A × Bj : ( CB)SEBUAH→ CA × Bλi = λ f: CA × B. λ a : A . λ b : B . f⟨ A , b ⟩
Perhitungan pendek dengan beberapa
β -reductions (termasuk
β -reductions
π 1 ⟨ a , b ⟩ = a dan
π 2 ⟨ a , b ⟩ = b untuk produk) memberitahu kita bahwa, untuk setiap
g : ( C B ) Sebuah kita memiliki
i ( j g ) =j = λ g: ( CB)SEBUAH. λ p : A × B . g( π1p ) ( π2p ) .
ββπ1⟨ A , b ⟩ = aπ2⟨ A , b ⟩ = bg: ( CB)SEBUAH
Karena
i dan
j adalah invers satu sama lain, kami berharap
i ( j g ) = g , tetapi untuk benar-benar membuktikan ini kita perlu menggunakan
η -reduction dua kali:
i ( j g ) = ( λ a : A . Λ b : B . g a b ) = η (i ( j g) = Λ a : A . λ b : B . ga b .
sayaji ( j g) = gη
Jadi ini adalah salah satu alasan untuk memilikipengurangan
η . Latihan:
η -rule mana yang diperlukan untuk menunjukkan bahwa
j ( i f ) = f ?
i ( j g)=(λa:A.λb:B.gab)=η(λa:A.ga)=ηg.
ηηj(if)=f