Pertemuan ekspansi beta

10

Biarkan menjadi -pengurangan dalam -calculus. Tentukan -pengembangan oleh .ββλββtβttβt

Apakah confluent? Dengan kata lain, apakah kita memilikinya untuk setiap , jika , maka ada sedemikian rupa sehingga ?βl,d,rlβdβrulβuβr

Kata kunci: Pertemuan ke atas, properti CR terbalik


Saya mulai dengan melihat properti yang lebih lemah: pertemuan lokal (yaitu jika , lalu ). Bahkan jika ini benar, itu tidak akan menyiratkan pertemuan karena -pengembangan adalah non-terminating, tetapi saya pikir itu akan membantu saya memahami hambatan.lβdβrlβuβrβ

(Atas) Dalam kasus di mana kedua pengurangan berada di tingkat atas, hipotesis menjadi . Hingga -renaming, kita dapat mengasumsikan bahwa , dan bahwa maupun tidak bebas dalam istilah-istilah itu.(λx1.b1)a1b1[a1/x1]=b2[a2/x2](λx2.b2)a2αx1x2x1x2

(Lempar) Jika tidak gratis di , kami memiliki dan oleh karena itu memiliki .x1b1b1=b2[a2/x2](λx1.b1)a1=(λx1.b2[a2/x2])a1(λx1.(λx2.b2)a2)a1(λx2.b2)a2

Bukti naif dengan induksi (pada dan ) untuk (Atas) adalah sebagai berikut:b1b2

  • Jika adalah variabel ,b1y1

    • Jika , hipotesisnya menjadi , dan kami memang memiliki .y1=x1(λx1.x1)a1a1=b2[a2/x2](λx2.b2)a2(λx1.x1)a1=(λx1.x1)(b2[a2/x2])(λx1.x1)((λx2.b2)a2)(λx2.b2)a2

    • Jika , maka kita cukup menggunakan (Lempar).y1x1

  • Bukti yang sama berlaku adalah adalah variabel.b2

  • Untuk dan , hipotesisnya menjadi dan hipotesis induksi memberikan sedemikian sehingga yang menyiratkan itu . Sayangnya, kami tidak memiliki . (Ini membuat saya berpikir tentang pengurangan .)b1=λy.c1b2=λy.c2(λx1.λy.c1)a1λy.c1[a1/x1]=λy.c2[a2/x2](λx2.λy.c2)a2d(λx1.c1)a1d(λx2.c2)a2λy.(λx1.c1)a1λy.dλy.(λx2.c2)a2λy.(λx2.c2)a2(λx2.λy.c2)a2σ

  • Masalah serupa muncul untuk aplikasi: s tidak berada di tempat seharusnya.λ

xavierm02
sumber
1
@chi Kecuali jika saya salah, berfungsi. (λb.yb)y(λa.(λb.ab)y)y(λa.ay)y
xavierm02
1
Saya agak setuju dengan @chi bahwa sepertinya pertemuan setelah Anda memikirkannya dan melihat beberapa contoh balasan. Tetapi sebenarnya, bagaimana dengan ? (λx.xxy)yyyy(λx.yxx)y
Rodolphe Lepigre
2
Meskipun akan nyaman bagi saya jika itu benar, saya sedikit lebih pesimistis. Seorang kolega saya membuat pernyataan berikut yang membuatnya tampak tidak mungkin: itu menyiratkan bahwa dua program sembarang yang menghitung bilangan bulat (gereja) yang sama dapat digabungkan.
xavierm02
2
Jawabannya adalah tidak. Latihan 3.5.11 di Barendregt memberikan contoh tandingan yang dikaitkan dengan Plotkin, tetapi tanpa referensi: dan . Saya akan mencari bukti. ( λ x(λx.bx(bc))c(λx.xx)(bc)
Gilles 'SO- berhenti bersikap jahat'
1
Saya telah memposting counterexample sebagai jawaban, dengan apa yang saya pikir akan menjadi bukti, tetapi ada langkah yang saya tidak tahu. Jika seseorang dapat mengetahuinya, silakan kirim jawaban dan saya akan menghapus jawaban saya.
Gilles 'SO- berhenti bersikap jahat'

Jawaban:

7

Dua contoh berlawanan adalah:

  • (λx.bx(bc))c( λ x . x x ) ( b c ) dan (Plotkin).(λx.xx)(bc)
  • (λx.a(bx))(cd)a ( ( λ y . b ( c y ) ) d ) dan (Van Oostrom).a((λy.b(cy))d)

Contoh tandingan yang dirinci di bawah ini diberikan dalam The Lambda Calculus: Syntax and Semantics-nya oleh HP Barenredgt, edisi revisi (1984), latihan 3.5.11 (vii). Ini dikaitkan dengan Plotkin (tidak ada referensi yang tepat). Saya memberikan bukti tidak lengkap yang diadaptasi dari bukti oleh Vincent van Oostrom dari contoh tandingan yang berbeda, dalam Take Five: an Easy Expansion Exercise (1996) [PDF] .

Dasar pembuktiannya adalah teorema standardisasi, yang memungkinkan kita untuk mempertimbangkan hanya ekspansi beta dari bentuk tertentu. Secara intuitif, pengurangan standar adalah pengurangan yang membuat semua kontraksi dari kiri ke kanan. Lebih tepatnya, reduksi adalah non-standar jika ada langkah yang redeksnya merupakan sisa dari redeks di sebelah kiri redeks dari langkah sebelumnya ; "Kiri" dan "kanan" untuk redex ditentukan oleh posisi yang dihilangkan ketika redex dikontrak. Negara-negara standarisasi teorema yang ada jika maka ada pengurangan standar dari ke .MiMjλMβNMN

Misalkan dan . Kedua istilah pengurangan beta menjadi dalam satu langkah.L=(λx.bx(bc))cR=(λx.xx)(bc)bc(bc)

Misalkan ada satu nenek moyang sehingga . Berkat teorema standardisasi, kita dapat mengasumsikan bahwa kedua reduksi adalah standar. Tanpa kehilangan sifat umum, anggaplah bahwa adalah langkah pertama di mana pengurangan ini berbeda. Dari dua pengurangan ini, mari menjadi yang mana redex dari langkah pertama adalah ke kiri yang lain, dan tulis mana adalah konteks kontraksi ini dan adalah redex. Mari menjadi pengurangan lainnya.ALβAβRAσA=C1[(λz.M)N]C1(λz.M)Nτ

Karena adalah standar dan langkah pertama adalah ke kanan lubang di , itu tidak dapat berkontraksi di atau di sebelah kiri itu. Oleh karena itu istilah terakhir dari adalah dalam bentuk mana bagian-bagian dan di sebelah kiri lubangnya identik, dan . Karena dimulai dengan mengurangi pada dan tidak pernah mengurangi lebih jauh, istilah terakhirnya harus dari bentuk mana bagian dariτC1C1τC2[(λz.M)N]C1C2MβMNβNσC1C3[S]C3ke kiri dari lubangnya identik dengan bagian kiri dan , dan .C1C2M[zN]βS

Perhatikan bahwa masing-masing dan berisi lambda tunggal yang berada di sebelah kiri operator aplikasi di tingkat atas. Karena memelihara lambda , lambda ini adalah salah satu di mana dari atau adalah istilah akhir , dan dalam jangka bahwa argumen aplikasi diperoleh dengan mengurangi . Redex ada di tingkat teratas, artinya .LRτλz.MLRτNC1=C2=C3=[]

  • Jika berakhir dengan , maka , dan . Jika memiliki keturunan di maka keturunan ini juga harus mengurangi ke yang merupakan bentuk normal . Secara khusus, tidak ada keturunan dapat menjadi lambda, sehingga tidak bisa tertular subterm dari bentuk di mana adalah keturunan . Karena satu-satunya subterm yang berkurang menjadiτRMβzzNβbcM[zN]β(λx.bx(bc))cNLbcNNσNˇPNˇNLbcadalah , satu-satunya kemungkinan keturunan dalam adalah satu-satunya kemunculan itu sendiri.bcNLbc

  • Jika berakhir dengan , maka , , dan . Jika memiliki turunan dalam maka turunan ini juga harus mereduksi menjadi dengan pertemuan.τLMβbz(bc)NβcM[zN]β(λx.xx)(bc)NRc

Pada titik ini, kesimpulan harus mengikuti dengan mudah menurut van Oostrom, tapi aku hilang sesuatu: Saya tidak melihat bagaimana menelusuri keturunan memberikan informasi apapun tentang . Permintaan maaf untuk posting yang tidak lengkap, saya akan memikirkannya dalam semalam.NM

Gilles 'SANGAT berhenti menjadi jahat'
sumber
0

Perhatikan bahwa pengurangan dapat membuat istilah apa pun hilang. Dengan asumsi bahwa variabel tidak tampak gratis dalam istilah , Anda memiliki dan untuk istilah apa pun dan . Sebagai konsekuensinya, fakta bahwa reverse reduksi bersesuaian agak sama dengan: untuk semua istilah dan , ada istilah sedemikian rupa sehingga dan . Ini kelihatannya sangat salah bagi saya!βxv(λx.v)t1βv(λx.v)t2βvt1t2βt1t2uuβt1uβt2

Rodolphe Lepigre
sumber
2
Kecuali saya salah, bekerja untuk kedua istilah tersebut. (λx.v)t1(λx.(λx.v)t1)t2(λx.v)t2
xavierm02
Sial, kau benar! Saya akan mencoba memikirkan hal lain nanti, saya tidak punya waktu sekarang.
Rodolphe Lepigre