Interpretasi kombinasi dari kalkulus lambda


10

Menurut Peter Selinger , The Lambda Calculus adalah Aljabar (PDF). Di awal artikel ini dia berkata:

Interpretasi combinatory dari kalkulus lambda diketahui tidak sempurna, karena tidak memenuhi ξ -rule: di bawah interpretasi, M=N tidak berarti λx.M=λx.N (Barendregt, 1984).

Pertanyaan:

  • Kesetaraan apa yang dimaksud di sini?
  • Dengan definisi kesetaraan ini, apa contoh tandingan dari implikasinya?

Jawaban:


7

Kesetaraan hanya kesetaraan dalam teori equasional dalam diskusi. Dalam kasus ini, teorinya dijelaskan pada Tabel 1. Perhatikan bahwa teori ini tidak termasuk : dengan melakukan hal itu akan membuat teori menjadi ekstensional, dan intinya adalah bahwa menghormati 's intensionalitas, sementara itu akan membuat CL sebagian ekstensional. Saya tidak yakin mengapa jawaban yang lain menyebutkan .η ξ λ ηληξλη

Perhatikan bahwa dalam :λ

(1)(M=βN)(λx.M=βλx.N)

Ini harus jelas secara intuitif: jika adalah -convertible ke ketika berdiri sendiri, maka juga -convertible to ketika itu adalah subterm dari .β N β N λ x . M.MβNβNλx.M

Aturan , didefinisikan sebagai membuat inferensi ini secara langsung dimungkinkan ketika itu adalah bagian dari teori . Analog CL-nya adalah: M.ξ λ M

M=N(ξλ)(λx.M)=(λx.N)
λ
M=N(ξCL)(λx.M)=(λx.N)

Sekarang, intinya adalah bahwa di CL, yang berikut ini tidak berlaku :

(2)(M=wN)(λx.M=wλx.N)

Dengan kata lain, jika dua istilah sama lemah, maka ini tidak selalu benar untuk versi pseudo-abstrak mereka.

Akibatnya, jika kita menambahkan ke teori CL, maka kita mulai menyamakan istilah yang memiliki bentuk normal berbeda.ξCL


Catatan. Di sini, menunjukkan kesetaraan yang lemah. Ini berarti bahwa dapat dikonversi menjadi (dan sebaliknya) dengan serangkaian dan kontraksi (mungkin juga , jika itu adalah bagian dari teori). Seperti yang mungkin Anda ketahui, adalah analog CL dari .M N S K I = w = βM=wNMNSKI=w=β

λ adalah pseudo-abstractor seperti yang didefinisikan pada halaman 5 dokumen Anda. Ini memiliki properti berikut:

(3)(λx.M)Nw[N/x]M

Properti ini memudahkan untuk menemukan analog CL untuk sembarang -term: cukup ubah menjadi dan terapkan terjemahan sesuai dengan definisi .λ λ λ λλλλ


Agar jelas, 'contoh tandingan' dalam jawaban ini bukan contoh tandingan dari (2). Karena jika kita memiliki:

N = ( λ z . Z ) x

(4)M=x
(5)N=(λz.z)x

Kemudian benar-benar menunjukkan (menerapkan terjemahan halaman 5, dan fakta bahwa didefinisikan sebagai di akhir halaman 4):I S K KNISKK

(6)N=(λz.z)x=Ix=SKKx

Sejak , kita memang punya yang . Namun, jika ini adalah contoh tandingan, maka kita harus memilikinya . Tetapi jika kita menerjemahkan, kita mendapatkan:M = w N ( λ y . M ) w ( λ y . N )SKKxwKx(Kx)wxM=wN(λy.M)w(λy.N)

( λ y . N ) = ( λ y . S K K x ) = K ( S K K x )

(7)(λy.M)=(λy.x)=Kx
(8)(λy.N)=(λy.SKKx)=K(SKKx)

Dan mudah untuk memverifikasi bahwa (7) dan (8) masih sama lemah, untuk:

(9)K(SKKx)wK(Kx(Kx))wKx

Sekarang, contoh tandingan yang tepat untuk (2) adalah:

N = x

M=Kxy
N=x

Sejak , kita pasti memiliki yang . Namun, jika Anda menerjemahkan dengan hati-hati untuk versi yang diabstraksi, maka Anda akan melihat bahwa keduanya adalah bentuk normal yang berbeda - dan ini tidak dapat dipertukarkan menurut teorema Church-Rosser.M = w NKxywxM=wN

Pertama kita periksa :M

M=λx.Kxy=S(λx.Kx)(λx.y)=S(λx.Kx)(Ky)=S(S(λx.K)(λx.x))(Ky)=S(S(λx.K)(I))(Ky)=S(S(λx.K)(SKK))(Ky)=S(S(KK)(SKK))(Ky)
Di sini Anda dapat memverifikasi bahwa adalah bentuk normal. Di sini Anda dapat memeriksa bahwa , seperti yang Anda perkirakan jika seharusnya berperilaku seperti pengikat atau untuk CL.M(λx.Kxy)PwPλ

Sekarang kita periksa : N

N=λx.x=I=SKK

Yang jelas merupakan bentuk normal yang berbeda dari , jadi oleh teorema Church-Rosser. Perhatikan juga bahwa , yaitu dan 'menghasilkan output yang sama' untuk input sewenang-wenang .M w N N P w P M N PMMwNNPwPMNP

Kami sekarang telah membuktikan bahwa (2) tidak berlaku di CL, dan bahwa teori CL yang menggabungkan karenanya akan menyamakan istilah yang tidak sama lemah. Tapi mengapa kita peduli?ξ

Yah, pertama-tama, itu membuat interpretasi kombinasi tidak sempurna: tampaknya tidak semua sifat metatheoretik terbawa.λ

Selain itu, dan mungkin yang lebih penting, walaupun ada teori ekstensional dari dan CL, teori-teori itu awalnya dan biasanya dipertahankan secara intensif. Intensionalitas adalah properti yang bagus karena dan komputasi model CL sebagai proses, dan dari perspektif ini dua program berbeda (khususnya, istilah yang memiliki bentuk normal berbeda) yang selalu menghasilkan hasil yang sama (diberi input sama) tidak boleh disamakan. menghormati prinsip ini dalam , dan jika kita ingin membuat ekstensional, kita bisa menambahkan misalnya . Tetapi pengenalanλ ξ λ λ η ξ ξλλξλληξdi CL tidak akan lagi membuatnya benar-benar intens (pada kenyataannya, hanya sebagian saja). Dan ini adalah alasan untuk 's 'ketenaran', sebagai menempatkan artikel itu.ξ


1
Saya tidak dapat mengomentari kualitas karena saya tahu sedikit tentang subjek, tetapi ini sepertinya sedikit kerja. Terima kasih, terima kasih!
Raphael

Memang, pos itu berakhir lebih lama dari yang saya perkirakan. Terima kasih atas komentar Anda. :)
Roy O.

2

3

EDIT Jawaban ini salah, seperti yang ditunjukkan oleh penjawab lainnya. Saya menggunakan terjemahan ke dalam logika kombinasi dari Asperti & Longo, yang agak berbeda dari yang ada di Selinger.

Faktanya, ini menggambarkan poin penting: "interpretasi kombinasi" dari kalkulus lambda bukanlah hal tunggal! Penulis yang berbeda melakukannya sedikit berbeda.

Saya meninggalkan jawaban saya di sini untuk anak cucu, tetapi jawaban lainnya lebih baik.


Kesetaraan dalam konteks ini didefinisikan oleh Tabel 1 dan 2 dalam makalah Selinger. Namun, aksiomatisasi yang sedikit berbeda dapat memperjelas hal-hal.

Apa sebenarnya artinya adalah bahwa dua istilah dapat dikonversi dalam teori . Kita dapat mendefinisikan "konversi" dengan dua aksioma berikut:λ

  • ( λ x . M ) N = [ N / x ] M x N Mβ . , jika gratis untuk dalam(λx.M)N=[N/x]MxNM
  • λ y . M y = M y Mη . , jika tidak gratis dalamλy.My=MyM

ditambah, tentu saja, aksioma dan aturan inferensi yang biasa dibutuhkan untuk membuat kongruensi. Dari ini, harus jelas bahwa setiap contoh-counter akan bergantung pada kondisi variabel bebas pada aturan yang dilanggar.η=η

Saya pikir ini mungkin yang paling sederhana:

N = ( λ z . Z ) x

M=x
N=(λz.z)x

Anda dapat memverifikasi sendiri bahwa , tetapi interpretasi kombinatorial masing-masing tidak sama di bawah aturan dalam Tabel 2.λy.M=λy.N


Apa yang saya tidak mengerti tentang jawaban Anda: 1) mengapa menyebutkan , sedangkan teori dalam Tabel 1 tidak memasukkannya dan jelas-jelas bersifat intens? 2) Bagaimana interpretasi kombinasi dari dan tidak sama? Derivasi dalam jawaban saya menunjukkan bahwa itu benar. 3) Aturan tidak ditanggapi, sementara itu adalah pelakunya. λ y . M λ y . N ξηλy.Mλy.Nξ
Roy O.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.