Yo! Ini mungkin pertanyaan bodoh, namun saya belum pernah melihatnya ditulis secara eksplisit jika, misalnya, decidability dari pengecekan tipe sama dengan properti normalisasi yang kuat. Oleh karena itu saya mengajukan pertanyaan ini untuk mengklarifikasi semua kemungkinan hubungan antara pengecekan tipe, tipabilitas dan normalisasi yang kuat.
Biarkan saya jelaskan motivasi saya. Untuk teori tipe (saya sengaja tidak jelas di sini, tapi saya tertarik terutama pada teori tipe dependen), normalisasi yang kuat digunakan untuk membuktikan decidability pengecekan tipe. Di sisi lain, semua sistem yang diketik yang saya tahu memiliki salah satu properti ini juga memiliki yang lain. Namun saya belum pernah melihat secara eksplisit menyatakan bahwa normalisasi yang kuat setara dengan decidability pengecekan tipe.
Secara analogi, untuk membuktikan kemampuan mengetik, biasanya satu (mungkin selalu), mengurangi istilah ke bentuk normal. Namun diketahui bahwa kemampuan mengetik tidak berlaku untuk teori tipe dependen, sedangkan normalisasi yang kuat mungkin berlaku.
Dengan decidability dari pengecekan tipe, maksud saya untuk tipe yang diberikan , konteks dan istilah yang tidak diketik , dimungkinkan untuk memutuskan dalam sejumlah langkah terbatas apakah benar atau tidak.
Dengan decidability of typability, maksud saya untuk setiap istilah yang tidak diketikkan , dimungkinkan untuk memutuskan dalam sejumlah langkah terbatas apakah ada konteks dan tipe seperti yang adalah benar.
1) Benarkah decidability untuk pengecekan tipe sama dengan setiap istilah yang sangat normal?
2) Secara umum, apa hubungan antara decidability dari pengecekan tipe, typability dan normalisasi yang kuat? Yang mana menyiratkan yang lain?
Terima kasih sebelumnya.
EDIT
Mengingat ketidakpuasan mengenai tingkat umum pertanyaan saya (yang tidak saya sadari), saya ingin membatasi itu hanya untuk Sistem Jenis Murni. Tentu saja, komentar atau contoh tandingan tambahan tentang teori tipe lain akan sangat bermanfaat.
sumber
Jawaban:
Saya akan memberikan jawaban yang lebih fokus dan teknis untuk Martin. Jika kita tertarik pada teori tipe dependen, maka tidak ada arah yang jelas, tetapi keduanya umumnya dianggap berlaku. Namun arahnya Diputuskan⇒ Saya yakin, normalisasi itu terbuka, bahkan untuk sistem yang relatif dipahami dengan baik, meskipun kami memiliki hasil parsial. Pertanyaan ini mengeksplorasi beberapa masalah yang sama.
Lebih teknis: kerangka teknis yang baik untuk pertanyaan-pertanyaan ini adalah pengaturan dari Jenis Sistem Murni di mana normalisasi tidak menyiratkan decidability jenis pemeriksaan. Hasilnya adalah cerita rakyat, tetapi tidak sepele, karena strategi kapan menerapkan aturan konversi perlu ditemukan. Strategi yang jelas adalah menormalkan tipe yang disimpulkan sebelum semua aplikasi aturan aplikasi. Ada beberapa kehalusan bahkan di sini, di mana kebenaran dari strategi alami (lebih efisien) yang disebut penundaan ekspansi terbuka untuk sementara waktu, tetapi telah diselesaikan sejak saat itu.
Ada beberapa tipe sistem yang dinormalisasi tetapi tidak dapat diputuskan, terutama sistem dengan tipe persimpangan yang mengetik tepat istilah normalisasi, dan karenanya harus tidak dapat diputuskan (karena jika tidak maka dapat digunakan untuk mengidentifikasi istilah normalisasi). Akan tergoda untuk mengatakan di sini bahwa sistem itu cacat dalam arti bahwa itu bukan tipe yang diarahkan , yaitu istilah tidak mengandung informasi yang cukup untuk mengetahui tipe.
Sekarang kebalikannya, yang akan menyarankan sistem non-normalisasi tidak dapat diputuskan, jauh dari jelas: itu bahkan terbuka untuk sementara waktu bagi yang terkenalTyp e : Typ e sistem Martin-Löf! Kasus ini diselesaikan dengan memberikan contoh kombinator pengulangan, yang memungkinkan penulisan perhitungan sewenang-wenang.
Namun masalah umum masih terbuka untuk sistem tipe murni umum, meskipun secara luas diyakini benar, dan beberapa hasil parsial telah ditunjukkan dalam arah ini, misalnya di sini .
sumber
(1) Salah. Contoh penghitung: Java, Scala, Haskell, ...
(2) Tidak ada hubungan umum, benar-benar tergantung pada perincian sistem bahasa / pengetikan. Ada satu pengecualian: untuk bahasa waras dan sistem pengetikan, saya membayangkan bahwa decidability dari inferensi tipe (yang saya asumsikan adalah apa yang Anda maksud dengan "typability") secara sepele menyiratkan pengecekan tipe. Tetapi saya tidak akan terkejut jika seseorang dapat membuat sistem gila di mana implikasi itu tidak berlaku.
sumber