Apakah ada kalkulasi lambda yang diketik lengkap dari Turing? Jika demikian, apa beberapa contohnya?
computability
lambda-calculus
type-theory
Semakin bertambah
sumber
sumber
Jawaban:
Ya tentu. Banyak kalkulus lambda yang diketik hanya menerima istilah yang sangat normal , oleh desain, sehingga mereka tidak dapat mengekspresikan perhitungan sewenang-wenang. Tetapi sistem tipe bisa apa saja yang Anda suka; buat itu cukup luas, dan Anda dapat mengekspresikan semua perhitungan deterministik.
Sistem tipe sepele yang mencakup fragmen lengkap-Turing dari kalkulus lambda adalah sistem yang menerima setiap istilah yang diketik dengan baik (dengan tipe teratas ).
Lebih praktis, bahasa pemrograman fungsional yang diketik secara statis pada intinya memiliki kalkulus lambda yang diketik yang memungkinkan kombinator fixpoint juga diketik dengan baik. Sebagai contoh, mulai dengan kalkulus lambda yang diketik sederhana (atau sistem tipe ML atau sistem F atau sistem tipe lain pilihan Anda) dan tambahkan aturan yang membuat beberapa kombinator fixpoint seperti diketik dengan baik. Γ ⊢ f : T → TY =λf. ( λ x . f( xx ) ) ( λ x .f( xx ) )
Aturan-aturan yang disajikan di atas agak canggung, karena mereka membuat istilah sepertiY
Berpegang pada kalkulus lambda murni, sistem tipe yang menarik adalah kalkulus lambda dengan tipe persimpangan.
Jenis titik-temu memiliki sifat yang menarik sehubungan dengan normalisasi:
Lihat Karakterisasi istilah lambda yang memiliki tipe serikat untuk wawasan tentang mengapa jenis persimpangan memiliki cakupan yang luar biasa.
Jadi, Anda memiliki sistem tipe yang mendefinisikan bahasa lengkap Turing (karena setiap istilah diketik dengan baik), dan karakterisasi sederhana penghentian komputasi. Tentu saja, karena sistem tipe ini mencirikan normalisasi, maka tidak dapat ditentukan.
sumber