Apa gunanya konversi di lambda calculus?

18

Saya pikir saya tidak memahaminya, tetapi konversi ke saya sebagai konversi yang tidak melakukan apa-apa, kasus khusus konversi di mana hasilnya hanya istilah dalam abstraksi lambda karena tidak ada apa-apa untuk melakukan, semacam konversi gunanya.ηβββ

Jadi mungkin -conversion adalah sesuatu yang benar-benar mendalam dan berbeda dari ini, tetapi, jika itu adalah, saya tidak mendapatkan itu, dan saya harap Anda dapat membantu saya dengan itu.η

(Terima kasih dan maaf, saya tahu ini adalah bagian dasar dari kalkulus lambda)

Trylks
sumber

Jawaban:

20

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.xx)=α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:η

  1. untuk semua -terms dan , jika maka , atauM N M x = N x M = NλMNMx=NxM=N
  2. untuk semua jika x . f x = g x lalu f = g .f,gx.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 :λλ

CSEBUAH×B(CB)SEBUAH.
SEBUAHBBSEBUAHsaya:CSEBUAH×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)SEBUAHCSEBUAH×Bλ
saya=λf:CSEBUAH×B.λSebuah:SEBUAH.λb:B.fSebuah,b
Perhitungan pendek dengan beberapa β -reductions (termasuk β -reductions π 1a , b = a dan π 2a , b = b untuk produk) memberitahu kita bahwa, untuk setiap g : ( C B ) Sebuah kita memiliki i ( j g ) =
j=λg:(CB)SEBUAH.λhal:SEBUAH×B.g(π1hal)(π2hal).
ββπ1Sebuah,b=Sebuahπ2Sebuah,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 ) = η (
saya(jg)=λSebuah:SEBUAH.λb:B.gSebuahb.
sayajsaya(jg)=gη Jadi ini adalah salah satu alasan untuk memilikipengurangan η . Latihan: η -rule mana yang diperlukan untuk menunjukkan bahwa j ( i f ) = f ?
i(jg)=(λa:A.λb:B.gab)=η(λa:A.ga)=ηg.
ηηj(if)=f
Andrej Bauer
sumber
ββηβη
ηβη
1
==βM.x=NxM.=NM.=NM.=βηNη
M.N
1
@AndrejBauer Saya setuju bahwa aturan η bukan ekstensionalitas penuh, tetapi jangan Anda pikir itu masih merupakan bentuk ekstensionalitas terbatas, yaitu mewakili kelas kasus yang jelas dari ekstensionalitas. Pertanyaan aslinya adalah mencari motivasi dan konsep, dan dalam hal ini saya percaya bahwa berpikir dalam hal ekstensionalitas berguna (dengan perhatian yang diambil tentu saja tidak terlalu jauh).
Marc Hamann
9

Untuk menjawab pertanyaan ini, kami dapat memberikan kutipan berikut dari monograf yang sesuai “Lambda Calculus. Sintaks dan Semantiknya “(Barendregt, 1981):

βηλλ+extextM.x=NxM.=N

M.=βηNληM.=Nλ+extM.=N

[Buktinya didasarkan pada teorema berikut.]

λ+extλη(ext)(η)

λη

M.NληM.=Nλη+M.=N

Teori HP-complete [after Hilbert-Post] berhubungan dengan teori konsisten maksimum dalam teori model untuk logika orde pertama.


sumber
7

λβη

  • λxy.xλxy.y βηβη

  • ι

    1. kamu =ι vt kamu =ι t v

    2. βηtkamut=ιkamutβηkamu

tkamut=βηιkamu

Ini adalah konsekuensi dari teorema Böhm.

cody
sumber
6

η

=βηβηM.=Nλx.M.=λx.N=β

=β=βηλx.M.x=M.M.x=NxM.=N

Marcin Kotowski
sumber
η
Lihat Teorema 2.1.29 dalam monograf oleh Barendregt (Lambda Calculus dan Semantics, 1985).
2
ξ
Dan saya pada gilirannya tidak terlalu senang bahwa kebahagiaan dan "mendengar" -seperti jawaban mendapatkan lebih banyak perhatian daripada kutipan yang relevan langsung dengan referensi yang sesuai.
ξξαβ