Hubungan antara decidability pemeriksaan tipe, decability kemampuan typability dan normalisasi yang kuat

8

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 SEBUAH, konteks Γ dan istilah yang tidak diketik Sebuah, dimungkinkan untuk memutuskan dalam sejumlah langkah terbatas apakah ΓSebuah:SEBUAH benar atau tidak.

Dengan decidability of typability, maksud saya untuk setiap istilah yang tidak diketikkan Sebuah, dimungkinkan untuk memutuskan dalam sejumlah langkah terbatas apakah ada konteks Γ dan tipe SEBUAH seperti yang ΓSebuah:SEBUAH 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.

pengguna40276
sumber
4
Tanpa batasan apa pun? Bagaimana jika kita mengambil sistem tipe sepele di mana setiap istilah memiliki setiap jenis? Itu sepele decidable tetapi tidak normal. Saya khawatir, secara umum, kecuali ada lebih banyak kendala pada sistem tipe, mungkin tidak ada hubungan di antara gagasan yang Anda sebutkan.
chi
@ Aku minta maaf. Saya tidak mengetahui tingkat generalisasi dari definisi sistem yang diketik. Apa yang ada dalam pikiran saya adalah sesuatu seperti fragmen teori tipe Martin-Löf (ekstensional) dengan alam semesta. Saya percaya, oleh karena itu, bahwa Sistem Mengetik Murni akan menjadi batas yang benar dalam pertanyaan saya.
user40276
Apa maksud Anda bahwa Penundaan Ekspansi telah diselesaikan? Tautan tidak tersedia lagi. Pemahaman saya sejauh ini adalah bahwa hal itu diketahui benar untuk subkelas PTS (semi-penuh saya pikir) tetapi masih merupakan dugaan terbuka untuk kasus umum.
Saroupille

Jawaban:

12

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 DiputuskanSaya 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 terkenal Tyhale:Tyhalesistem 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 .

cody
sumber
Terima kasih atas jawaban anda. Bagaimana dengan decidability of typability?
user40276
1
@ user40276 ini adalah pertanyaan yang sangat berbeda. Dengan anotasi pada abstraksi, tipabilitas dan inferensi tipe sama sulitnya. Tanpa anotasi, segala sesuatunya menjadi tidak dapat dipastikan segera, terlepas dari penghentian, seperti yang dijelaskan dalam jawaban di sini: cs.stackexchange.com/questions/12691/…
cody
4

(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.

Martin Berger
sumber
Terima kasih atas jawaban anda. Typability mengacu pada proses menemukan jenis sehingga suatu istilah milik itu dan tidak semua jenis ini.
user40276
Bagaimana ini berhubungan dengan konsep konvensional tipe-inferensi?
Martin Berger
Contoh spesifik di mana inferensi tipe decidable tidak memerlukan pemeriksaan tipe decidable: rank-2 polymorphic lambda calculus. Ada algoritma inferensi untuk bahasa ini, namun tidak stabil di bawah penambahan tipe tanda tangan. Artinya, kita tidak memiliki itu Γ⊢a: A mensyaratkan Γ⊢ (a :: A): A di mana saya menggunakan :: untuk frase objek-bahasa "a has type A". Dengan demikian, meskipun kita dapat menyimpulkan A untuk, kita tidak bisa selalu memeriksa terhadap A.
wren romano
@wrenromano Menarik. Sistem F memiliki inferensi dan pengecekan yang tidak dapat dipastikan, dan kalkulus lambda polimorfik peringkat-2 adalah subsistem (jenis). Apakah Anda punya referensi untuk fenomena ini?
Martin Berger
Maaf. Komentar saya salah seperti yang saya tulis, seharusnya: "Kemudahan merujuk pada proses menemukan jenis sehingga istilah yang diberikan milik itu dan tidak semua jenis ini". Desidabilitas tipe-inferensi menyiratkan desidabilitas tipabilitas. Saya hampir yakin bahwa pernyataan resiprokal tidak berlaku, tetapi saya tidak menyadari adanya contoh balasan.
user40276