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→∗βM′N→∗βN′σC1C3[S]C3ke kiri dari lubangnya identik dengan bagian kiri dan , dan .C1C2M[z←N]→∗β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[z←N]→∗β(λ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[z←N]→∗β(λ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