Baiklah saya akan coba-coba: Secara umum untuk sistem tipe diberikan , berikut ini benar:T
Jika semua istilah tipe baik dalam kalkulus normal, makaT adalahkonsistenbila dilihat sebagai logika.T
Buktinya umumnya hasil dengan asumsi Anda memiliki istilah tipe F a l s e , menggunakan pengurangan subjek untuk mendapatkan bentuk normal, dan kemudian melanjutkan dengan induksi pada struktur istilah tersebut untuk mendapatkan kontradiksi.absurdFalse
Itu wajar untuk bertanya-tanya apakah yang terjadi terus, yaitu
Untuk semua jenis sistem , jika T adalah logis konsisten , maka setiap jangka baik diketik di T adalah normalisasi.TTT
Masalah dengan ini adalah bahwa tidak ada gagasan nyata yang paling umum tentang "sistem tipe", dan bahkan kurang kesepakatan tentang makna konsistensi logis untuk sistem tersebut. Namun, kami dapat memverifikasi itu secara empiris
Untuk sistem tipe paling dikenal yang memiliki interpretasi logis, sebaliknya memang berlaku.
Bagaimana ini mengikat Turing Completeness? Sebagai contoh , jika pengecekan tipe dapat dilakukan , maka argumen Andrej menunjukkan bahwa salah satu dari yang berikut ini harus berlaku:
- Himpunan semua program yang diketik dengan baik tidak Turing Lengkap.
- Ada program mengetik dengan baik non-terminating.
Ini cenderung menunjukkan bahwa:
Tipe sistem yang memiliki interpretasi logis dan konsisten serta berulang secara berulang tidak Turing Lengkap.
Memberikan teorema yang sebenarnya daripada saran memerlukan membuat gagasan tentang sistem tipe dan interpretasi logis yang tepat secara matematis.
Sekarang dua komentar muncul di pikiran:
Ada sistem tipe yang tidak dapat ditentukan , sistem tipe persimpangan yang memiliki interpretasi logis dan dapat mewakili setiap normalisasi -term. Seperti yang Anda katakan, ini tidak persis sama dengan Turing Lengkap, karena jenis fungsi total mungkin perlu diperbarui (disempurnakan, pada kenyataannya) sebelum menerapkannya pada argumen yang diinginkan. Kalkulus adalah kalkulus "gaya kari" dan sama dengan STLC +
Γ ⊢ M : τλ
dan
Γ⊢M:τ∩σ
Γ⊢M:τΓ⊢M:σΓ⊢M:τ∩σ
Jelas bahwa "interpretasi"∩=∧mengarah pada interpretasi logis yang konsisten.Γ⊢M:τ∩σΓ⊢M:τΓ⊢M:τ∩σΓ⊢M:σ
∩=∧
Ada kelas sistem tipe, Sistem Tipe Murni , di mana pertanyaan seperti itu dapat dibuat tepat. Namun dalam kerangka ini, interpretasi logisnya kurang jelas. Orang mungkin tergoda untuk mengatakan: "PTS konsisten jika memiliki tipe tidak berpenghuni". Tetapi ini tidak berhasil, karena tipe-tipe dapat hidup dalam "alam semesta" yang berbeda, di mana beberapa mungkin konsisten dan beberapa tidak.
Coquand dan Herbelin mendefinisikan gagasan Sistem Jenis Murni Logis , di mana pertanyaan itu masuk akal, dan muncul
Setiap LPTS yang tidak konsisten dan tidak tergantung memiliki kombinator perulangan (dan begitu juga Turing Lengkap)
Yang menjawab pertanyaan dalam satu arah (tidak konsisten TC) dalam kasus ini. Sejauh yang saya tahu, pertanyaan untuk LPTS umum masih terbuka dan cukup sulit.⇒
Sunting: Kebalikan dari hasil Coquand-Herbelin tidak semudah yang saya kira! Inilah yang saya kemukakan sejauh ini.
Sebuah Sistem Type Pure logis adalah PTS dengan (setidaknya) macam dan T y p e , (setidaknya) aksioma P r o p : T y p e dan (setidaknya) aturan ( P r o p , P r o p , P r o p ) , dengan persyaratan lebih lanjut bahwa tidak ada macam jenis P r o p .PropTypeProp:Type(Prop,Prop,Prop)Prop
Sekarang saya akan mengambil pernyataan tertentu dari Turing Completeness: perbaiki LPTS dan biarkan Γ menjadi konteksnyaLΓ
Γ=nat:Prop, 0:nat, S:nat→nat
adalahTuring Completeiff untuk setiap fungsi komputabel total f : N → N ada istilah t f sehingga
Γ ⊢ t f : n a t → n a t
dan untuk setiap n ∈ N t f ( S n 0 ) → ∗ β S f ( n ) 0Lf:N→Ntf
Γ⊢tf:nat→nat
n∈N
tf (Sn 0)→∗βSf(n) 0
Sekarang argumen diagonalisasi Andrej menunjukkan bahwa ada non-terminating dari tipe n a t .tnat
Sekarang sepertinya kita setengah jalan di sana! Mengingat non terminating jangka , kita ingin mengganti kejadian n sebuah t oleh beberapa jenis generik A dan menyingkirkan 0 dan S di Γ , dan kami akan memiliki inkonsistensi kami ( A dihuni dalam konteks A : P r o p )!Γ⊢loop:natn a tSEBUAH0SΓSEBUAHA : P r o p
Sayangnya, di sinilah saya buntu, karena mudah untuk mengganti dengan identitas, tetapi 0 jauh lebih sulit untuk dihilangkan. Idealnya kami ingin menggunakan teorema rekursi Kleene, tapi saya belum menemukan jawabannya.S0