Bagaimana menyatakan kecukupan pengkodean lambda itu sendiri?


8

Dalam makalah Diskriminasi istilah lambda yang dikodekan - Henk Barendregt suatu pengkodean dari istilah lambda M adalah istilah sedemikian rupa sehingga M (dan bagian-bagiannya) dapat direkonstruksi darinya dengan cara yang dapat didefinisikan dengan lambda. Pada dasarnya kita perlu bisa menulis penerjemah mandiri \ mathsf E :MM EMME

EM=βM.

Ada berbagai pengkodean seperti Kleene yang menggunakan bilangan alami dan pengkodean modern yang paling efisien adalah sintaks tingkat tinggi oleh Mogensen. Pengkodean (trivial) lain yang mungkin adalah fungsi identitas, kemudian penerjemah lagi fungsi identitas.

Apakah ada gagasan yang masuk akal tentang "pengkodean yang memadai" yang melarang pengkodean sepele?

Pertanyaan ini muncul ketika mempertimbangkan masalah penghentian diterapkan pada lambda kalkulus daripada mesin Turing: Jika dinyatakan dalam hal pengkodean sepele maka itu berlaku untuk alasan sepele bahwa pada dasarnya tidak ada yang bisa kita lakukan dengan istilah lambda yang dikutip.

Dengan kata lain: Apa seperangkat fungsi yang kita harapkan dapat dihitung berdasarkan ketentuan lambda yang dikutip?

Saya bisa daftar beberapa seperti: menghitung kedalaman istilah, mengambil subterms, mengatakan apakah simpul akar suatu istilah adalah lambda atau aplikasi, ... tapi saya akan ragu untuk mendefinisikan "pengkodean yang memadai" dengan hanya mendaftarkan berbagai fungsi yang terlintas dalam pikiran.


1
Pilih beton "encoding yang memadai" yang diberikan (katakanlah, yang diberikan oleh Kleene). Katakanlah bahwa penyandian memadai jika ada -term yang mengambil istilah -encoded ke penyandian Kleene. Ini agak konyol, tetapi apakah ini akan berhasil untuk tujuan Anda? λ ι ι ( M )ιλιι(M)
cody

1
Saya pikir Anda benar-benar mendaftar operasi utama: mengatakan jenis istilah (variabel, abstraksi, aplikasi) dan, jika perlu, mengambil subterms. Satu-satunya titik halus adalah mewakili pengikatan lambda, tetapi Anda dapat melakukannya menggunakan notasi de Bruijn. Operasi wajar lainnya (misalnya, menghitung kedalaman) mengikuti dari ini, karena Anda dapat mendekonstruksi sepenuhnya istilah. Apakah kamu setuju?
Damiano Mazza

Apa yang dikatakan @DamianoMazza. Saya mencoba menjelaskan beberapa hal ini dalam math.andrej.com/2016/01/04/...
Andrej Bauer

@Andrej Bauer Saya tidak percaya Anda membutuhkan semua itu. Bukan untuk menyelesaikan masalah saya.
Andrea Asperti

Tentu saja tidak, bit yang relevan hanya satu paragraf di awal, menjelaskan apa yang diperlukan untuk memiliki kode sintaks yang dapat diterima.
Andrej Bauer

Jawaban:


5

Seperti yang ditunjukkan oleh orang lain, definisi yang jelas dari pengkodean "memadai" adalah bahwa kode tersebut dapat diterjemahkan dengan standar apa pun. Oleh karena itu pertanyaannya adalah untuk mengkarakterisasi pengkodean tersebut dalam hal properti yang lebih elementer.

( Catatan sejarah . Smullyan mempelajari pertanyaan ini dalam konteks logika kombinasi. Ketika saya masih mahasiswa, Henk Barendregt menyarankan dugaan Smullyan kepada saya sebagai masalah penelitian - yang menyebabkan publikasi ilmiah pertama saya.) Lihat

http://drops.dagstuhl.de/opus/volltexte/2011/3249/

Untuk meringkas, diberi peta , kami mempertimbangkan apakah ada kombator yang memenuhi properti tertentu. Yang paling signifikan adalah:¯:ΛΛ

  • AM¯N¯=MN¯
  • BM¯=M¯¯
  • PiM0M1¯=Mi¯,i{0,1}
  • ZbM¯={λxy.xMb{I,K,S}λxy.yotherwise
  • ΔM¯N¯={λxy.xMNλxy.yotherwise
  • UM¯=M¯s , di mana adalah beberapa pengkodean standar¯s
  • U1M¯s=M¯

Sangat mudah untuk melihat bahwa setiap pengkodean yang memadai memiliki sifat-sifat ini. Hasil utama dari makalah ini (Corollary 14) adalah bahwa, untuk pengkodean yang memadai, salah satu dari cukup berikut ini:

  • A+Δ ;
  • U1+Δ ;
  • U1+Pi+Zb ;
  • Pi+Zb+ "rentang terkandung dalam set enumerable berulang dan ada kombinator yang memutuskan apakah elemen tertentu dari set ini berada dalam kisaran atau tidak".¯

4

Ini bukan jawaban. Ini adalah penjabaran dari pertanyaan itu, yang terlihat menarik bagi saya dan mungkin harus mendapatkan lebih banyak perhatian daripada yang sebenarnya diterima.

Pertama-tama, izinkan saya mengatakan bahwa ada kondisi penting dalam definisi Barendregt yang telah dihilangkan oleh Brennan, yaitu fakta bahwa harus dalam bentuk normal , yang segera fungsi identitas sebagai pengkodean yang memadai.M

Sekarang, pertanyaannya dapat dirumuskan dengan lebih tepat mengikuti saran Cody.

Diberikan dua pengkodean, apakah isomorfik rekursif? Dengan kata lain, anggaplah memiliki dua pengkodean sedemikian rupa

𝖤1M1=βMand𝖤2M2=βM
apakah ada istilah lambda sehingga untuk istilahFM

E2(FM1)=βM
dan sebaliknya?

Jika jawabannya tidak, apa persyaratan abstrak "minimal" yang harus ditambahkan untuk memastikannya?

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.