Decidability dari inferensi tipe dan pengecekan tipe dalam MLTT

9
  1. Dalam Martin-LOF Sebuah Intuitionistic Teori Jenis: predikatif Bagian terbukti bahwa jenis memeriksa adalah decidable tunduk typeable makhluk di tempat pertama, dengan membuktikan Teorema normalisasi untuk istilah typeable tertutup. Di sisi lain, saya pernah melihatnya ditulis di banyak tempat (Wikipedia, Nördstrom, dll.) Bahwa pemeriksaan tipe dalam (intensional) MLTT dapat dipilih; Apakah mereka secara implisit membatasi istilah yang dapat diketik?aSebuah:SEBUAHSebuah

  2. Adakah yang diketahui tentang desidabilitas inferensi tipe atau pemeriksaan tipe dalam MLTT intens jika kita tidak membatasi persyaratan yang dapat diketik? Misalnya, mungkin ada proses pengambilan keputusan yang mengakui istilah yang tidak dapat diketikkan, katakanlah dengan menormalkan bentuk yang tidak sesuai dengan konstruktor mana pun, atau dengan menunjukkan bahwa tidak ada urutan pengurangan non-periodik untuk istilah yang tidak dapat diketikkan.

    Saya belum dapat menemukan banyak dalam literatur.

Josh Chen
sumber

Jawaban:

9

Tentunya masalah keputusan

Diberikan istilah (pra-) Apakah ada tipe A sehingga a : A dapat diturunkan dalam MLTT?SebuahSEBUAHSebuah:SEBUAH

Kadang-kadang ditulis (dan disebut jenis inferensi masalah ) dapat ditentukan, yang berarti tidak masalah apakah a diketik dengan baik atau tidak untuk mendapatkan jawaban. Memang, semua pemeriksa bukti berdasarkan MLTT mengimplementasikan beberapa versi dari algoritma keputusan ini!Sebuah : ?Sebuah

Jelas, masalah dalam konteks non-kosong ( ) Adalah decidable juga, biasanya Anda perlu untuk memecahkan yang terakhir untuk memecahkan mantan.ΓSebuah : ?

Ini harus menjawab pertanyaan 1 dan 2. Algoritme tidak melibatkan normalisasi , yang secara umum akan menjadi berita buruk, karena tidak diputuskan apakah istilah yang tidak diketik menormalkan sesuatu. Namun algoritma pengecekan tipe tidak melibatkan tipe normalisasi , yang dengan konstruksi diketik dengan baik sendiri.Sebuah

Sebagai hasilnya, normalisasi istilah yang diketik dengan baik adalah kondisi yang diperlukan untuk masalah inferensi tipe yang dapat ditentukan.

Anda mungkin ingin memeriksa Nordström, Petersson dan Smith untuk pengantar.


Saya tidak mengetahui adanya deskripsi umum tentang algoritma inferensi tipe untuk menormalkan teori tipe, meskipun Pollack memberikan gambaran yang cukup bagus (meskipun keadaan seni telah membaik) di Typechecking in Pure Type Systems .

cody
sumber
Bagaimana dengan pretypes (istilah yang menunjukkan tipe)? Mungkin perlu diperjelas status mereka juga.
Andrej Bauer
Terima kasih cody, apakah Anda merujuk pada algoritma pemeriksaan tipe yang diterapkan oleh asisten bukti seperti ALF dan Coq? Untuk pemahaman saya, itu adalah algoritma untuk varian spesifik MLTT yang menjadi dasarnya (CIC untuk Coq, sesuatu yang lain untuk ALF), tetapi tidak jelas bagi saya bagaimana ini dapat digunakan untuk mengetikkan periksa MLTT spesifik '73. Secara khusus, jika hierarki alam semesta atau perbedaan lainnya secara terperinci, mungkin ada perubahan apa pun ...
Josh Chen
... Atau apakah algoritma cukup umum untuk mengatasi perbedaan ini? Saya mengalami kesulitan menemukan hasil dalam generalisasi seperti itu; semua yang saya temukan dalam pencarian literatur saya adalah hasil yang sangat spesifik, sering kali secara khusus disesuaikan dengan teori yang mendasari beberapa asisten bukti.
Josh Chen
1
@JoshChen algoritma pada intinya sangat umum, karena melibatkan pencarian yang diarahkan pada jenis, bergantian dengan langkah normalisasi pada istilah yang diketik dengan baik, seperti yang dijelaskan Andrej. Saya tidak mengetahui deskripsi umum dari algoritma, sayangnya, meskipun saya akan menambahkan referensi parsial untuk jawaban saya.
cody
1
@JoshChen Mereka tidak mengklarifikasi, tetapi mereka mungkin merujuk pada menyimpulkan tipe untuk istilah "curry-style", yang kesimpulannya tidak dapat diputuskan. Saya masuk ke detail lebih lanjut di sini: cs.stackexchange.com/a/12957/988
cody
8

Saya ingin menambah jawaban dengan cody dengan pengamatan umum menyampaikan pemahaman saya tentang mengapa algoritma pengecekan tipe bekerja.

Untuk kelas yang luas dari teori tipe, pemeriksaan tipe atau inferensi dilakukan sedemikian rupa sehingga kita tidak pernah berusaha untuk menormalkan suatu istilah, kecuali kita telah menetapkan sebelumnya bahwa itu diketik dengan baik. Demikian pula, kami tidak pernah berusaha untuk menormalkan suatu tipe, kecuali kami telah menetapkan bahwa itu adalah tipe. Karena itu, kita dapat yakin bahwa normalisasi akan berakhir (yang memerlukan bukti terpisah).

Kita harus melihat algoritma tertentu dan melihat bahwa mereka benar-benar bekerja dengan cara ini, tetapi mereka melakukannya. Saya hanya ingin menyatakan apa yang membuat mereka tergerak. Atau lebih baik, itulah alasan mereka berhenti berdetak.

Andrej Bauer
sumber