Apakah ada kalkulus lambda yang diketik yang konsisten dan Turing lengkap?

20

Apakah ada kalkulus lambda yang diketik di mana logika yang sesuai di bawah korespondensi Curry-Howard konsisten, dan di mana ada ekspresi lambda yang diketik untuk setiap fungsi yang dapat dihitung?

Ini memang pertanyaan yang tidak tepat, tidak memiliki definisi yang tepat tentang "kalkulus lambda yang diketik." Saya pada dasarnya bertanya-tanya apakah ada (a) contoh yang diketahui dari ini, atau (b) bukti ketidakmungkinan yang diketahui untuk sesuatu di bidang ini.

Sunting: @cody memberikan versi yang tepat dari pertanyaan ini dalam jawaban di bawah ini: apakah ada sistem tipe murni logis (LPTS) yang konsisten dan Turing lengkap (dalam arti didefinisikan di bawah)?

Morgan Thomas
sumber
2
Tidak ada kalkulus yang dapat aksioma secara rekursif (lambda atau lainnya) yang fungsi rekursif totalnya dapat dibuktikan semuanya adalah fungsi rekursif, sehingga kalkulus Anda harus melibatkan istilah yang tidak berakhir.
Emil Jeřábek mendukung Monica
2
Jawaban ini memiliki teorema yang mengatakan Anda tidak dapat memiliki kalkulus apa pun yang lengkap-Turing dan total.
Andrej Bauer
1
Kemungkinan akan menjawab pertanyaan Anda setelah Anda membuatnya cukup tepat. Saya pikir bukti Andrej tidak perlu rumit (tapi itu menunjukkan lebih): intinya adalah bahwa jika ada sistem yang dijelaskan secara efektif di mana semua fungsi rekursif diwakili sedemikian rupa sehingga Anda dapat mensertifikasi secara sintaksis bahwa suatu ekspresi adalah representasi jujur ​​dari suatu fungsi rekursif (misalnya, dengan memeriksa bahwa itu diketik dengan benar dalam sistem), maka Anda akan mendapatkan fungsi rekursif total universal, yang tidak mungkin.
Emil Jeřábek mendukung Monica
1
Tentu saja jawaban klasik untuk pertanyaan semacam ini bisa menjadi: diketik kalkulus dengan jenis persimpangan , karena jenis setiap (dan hanya mereka) hal yang sangat normalisasi. Ini lebih merupakan pertanyaan filosofis untuk bertanya apakah kalkulus mengakui "interpretasi Curry-Howard". λ
cody
2
Sulit untuk lebih tepat di sini karena pertanyaannya tidak tepat.
Andrej Bauer

Jawaban:

21

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:

  1. Himpunan semua program yang diketik dengan baik tidak Turing Lengkap.
  2. 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:

  1. 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:σ
    =
  2. 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:natnat

adalahTuring Completeiff untuk setiap fungsi komputabel total f : NN ada istilah t f sehingga Γ t f : n a tn a t dan untuk setiap n N t f ( S n 0 ) β S f ( n ) 0Lf:NNtf

Γtf:natnat
nN
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:natnatA0SΓAA:Prop

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

cody
sumber
OK, jadi dua klarifikasi pertama tentang komentar Anda (1). Apa yang Anda maksudkan ketika Anda mengatakan bahwa sistem tipe persimpangan ini tidak dapat dihitung secara rekursif? Tentu saja set teorema sistem kembali, karena Anda telah memberikannya sebagai kalkulus berurutan langsung. Juga, hasil yang saya lihat terbukti dalam makalah yang Anda tautkan adalah istilah yang dapat diketik dalam sistem adalah istilah yang sangat normal; tetapi bukankah itu berbeda dengan mengatakan bahwa ia dapat mengetik persis fungsi total yang dapat dihitung? Misalnya, bukan sangat normal, tetapi tidak total? λx.xx
Morgan Thomas
Sekarang pertanyaan tentang komentar Anda (2). Bagi saya sepertinya teorema yang Anda kutip bukanlah yang kami minati. Dikatakan bahwa untuk setiap LPTS yang tidak bergantung, jika tidak konsisten maka Turing lengkap. Tapi kami ingin tahu apakah untuk setiap LPTS, jika Turing lengkap, maka itu tidak konsisten. Apakah saya salah memahami sesuatu di sini?
Morgan Thomas
@MorganThomas: Ah, Anda benar tentang titik pertama: apa yang saya maksud adalah bahwa sistem tipe tidak bisa decidable , yang, diberikan , pernyataan Γ t : A adalah diputuskan. Saya akan memperbaiki ini di pos. Γ,t,AΓt:A
cody
Poin kedua: Anda juga benar bahwa seseorang dapat memiliki fungsi non-total yang diketik dengan baik (meskipun orang mungkin tidak perlu menerapkannya pada argumen yang diberikan). Saya akan mengubah jawabannya.
cody
1
Poin ketiga. Anda benar lagi! Namun kebalikannya (dalam kasus khusus LPTS) agak sepele. Saya akan menguraikan argumen.
cody
11

Berikut adalah jawaban untuk varian dari precisifikasi @ cody atas pertanyaan saya. Ada LPTS konsisten yang Turing lengkap dalam arti kira-kira @ cody, jika kita mengizinkan pengenalan aksioma tambahan dan aturan pengurangan . Dengan demikian, sistemnya bukanlah LPTS; itu hanya sesuatu yang mirip satu.β

Pertimbangkan kalkulus konstruksi (atau anggota favorit Anda dari kubus). Ini adalah LPTS, tetapi kami akan menambahkan hal-hal tambahan yang membuatnya bukan LPTS. Pilih simbol konstan nat , 0 , S , dan tambahkan aksioma:λnat,0,S

0 : nat S : nat nat

nat:
0:nat
S:natnat

Indeks program mesin Turing dengan bilangan alami, dan untuk setiap bilangan alami , pilih simbol konstan f e , tambahkan aksioma f e : nat nat , dan untuk semua e , x N , tambahkan aturan pengurangan βefefe:natnate,xNβ

fe(x)βΦe(x),

Φe(x)exΦe(x)ββ

Sekarang, teori ini jelas Turing lengkap dalam arti kasar @ cody, hanya dengan kekerasan; tetapi klaimnya juga konsisten. Mari kita buat modelnya.

U1U2U3

  • ,N,0,SU1S
  • abUiaUi
  • A,BUiBAUi
  • AUif:AUiaAf(a)Ui

Ui

vU2vIv

  • Iv(x)=v(x)x
  • Iv()=U1,Iv()=U2
  • Iv(nat)=N,Iv(0)=0,Iv(S)=S
  • Iv(fe)=ΦeNNe
  • Iv(AB)=Iv(A)(Iv(B))Iv(A)Iv(B)Iv(AB)=0
  • Iv(λx:A.B)aIv(A)Iv[x:=a](B)
  • Iv(Πx:A.B)=aIv(A)Iv[x:=a](B)

AIv(A)U3vA:BvA:BIv(A)Iv(B)ΓA:Bvvx:C(x:C)ΓvA:B

ΓA:BΓA:Bx,yy:x:yy

β

Morgan Thomas
sumber
2
Afe(x)Φe(x)ιββfe(x)ιβ
Saya pikir kamu benar. Ini bukan bidang saya, jadi saya agak canggung melakukan sesuatu. :-) Saya pikir bukti Anda bekerja, dan satu konsekuensi yang menarik, jika saya benar, adalah bahwa teori ini tidak memiliki kekuatan konsistensi yang sangat banyak. Sepertinya teori yang berpotensi sangat kuat, karena memiliki jenis dan bilangan alami, yang seharusnya memungkinkan Anda menginterpretasikan teori himpunan; tetapi ternyata Anda tidak bisa, karena Anda dapat membuktikannya konsisten tanpa menggunakan teori himpunan yang kuat!
Morgan Thomas