Apakah mungkin untuk memutuskan


18

Saya tahu itu tidak mungkin untuk memutuskan equivalence untuk kalkulus lambda yang tidak diketik. Mengutip Barendregt, HP The Lambda Calculus: Sintaks dan Semantiknya. Holland Utara, Amsterdam (1984). :β

Jika A dan B terpisah, seperangkat istilah lambda yang ditutup berdasarkan kesetaraan, maka A dan B tidak dapat dipisahkan secara rekursif. Oleh karena itu, jika A adalah seperangkat istilah lambda nontrivial yang ditutup berdasarkan kesetaraan, maka A tidak bersifat rekursif. Jadi, kita tidak bisa memutuskan masalah "M = x?" untuk M. tertentu juga, maka Lambda tidak memiliki model rekursif.

Jika kita memiliki sistem normalisasi, seperti Sistem F, maka kita dapat memutuskan equivalence "from outside" dengan mengurangi dua istilah yang diberikan dan membandingkan apakah bentuk normalnya sama atau tidak. Namun, bisakah kita melakukannya "dari dalam"? Apakah ada Combinator Sistem-F E sehingga untuk dua combinator M dan N kita memiliki E M N = true jika M dan N memiliki bentuk normal yang sama, dan E M N = false jika tidak? Atau bisakah ini dilakukan setidaknya untuk beberapa M ? Untuk membuat combinator E MβEMNEMN=trueMNEMN=falseMEM sehingga adalah true iff NEMN ? Jika tidak, mengapa?NβM

Jawaban:


19

Tidak, itu tidak mungkin. Pertimbangkan dua penghuni tipe berikut (AB)(AB) .

M=λf.fN=λf.λa.fa

Ini adalah bentuk -normal yang berbeda, tetapi tidak dapat dibedakan dengan istilah lambda, karena N adalah ekspansi- η dari M , dan ηβNηMη ekspansi- mempertahankan ekuivalensi pengamatan dalam kalkulus lambda yang diketik murni.

Cody bertanya apa yang terjadi jika kita keluar dengan equivalence, juga. Jawabannya masih negatif, karena parametrik. Pertimbangkan dua istilah berikut pada tipe ( α .η :(α.αα)(α.αα)

M=λf:(α.αα).Λα.λx:α.f[α.αα](Λβ.λy:β.y)[α]xN=λf:(α.αα).Λα.λx:α.f[α]x

Mereka berbeda -normal, bentuk η- panjang, tetapi secara observasi setara. Faktanya, semua fungsi dari tipe ini adalah sama, karena α .βη adalah pengkodean dari tipe unit, dan semua fungsi dari tipe ( α .α.αα harus setara secara ekstensi.(α.αα)(α.αα)


2
Oke, pertanyaan yang sama dengan equivalence :)β,η
cody

11

Jawaban lain mungkin untuk satu sempurna benar Neel: Misalkan ada adalah sebuah combinator , baik diketik dalam sistem F sehingga kondisi di atas berlaku. Jenis E adalah:EE

E:α.ααbool

Ternyata ada teorema gratis yang menyatakan bahwa istilah seperti itu harus konstan :

T, t,u,t,u:T, E T t u=E T t u

E

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.