Masalah pemisah invarian induktif untuk aritmatika Presburger tidak dapat diputuskan.
Saya tidak mengetahui bukti dalam literatur yang menunjukkan Anda. (Tampaknya pertanyaan yang sangat mudah saya anggap ada di suatu tempat di luar sana.) Buktinya saya datang dengan mengikuti konstruksi yang kira-kira sama dengan masalah penghentian. Berikut ini gambaran singkatnya. Kami pertama mengasumsikan prosedur keputusan ada dan kemudian membangun sebuah mesin S dengan masukan M . S menggunakan D untuk memutuskan non-terminasi M pada dirinya sendiri dan kemudian S membalikkan output. Kami kemudian menggunakan konstruksi S untuk menunjukkan bahwa D harus memberikan jawaban yang salah pada eksekusi S pada dirinya sendiri.DSMSDMSSDS
Alih-alih mengurangi masalah penghentian, buktinya untuk semua maksud dan tujuan penyajian kembali bukti dari masalah penghentian. Ini sedikit bertele-tele karena akan membutuhkan kondisi posting terkuat yang tepat dapat diekspresikan. (Jika bukti yang lebih sederhana adalah mungkin, saya akan sangat tertarik mendengarnya.) Sekarang ke detail yang mengerikan.
Invarian masalah pemisah induktif untuk Presburger aritmatika adalah untuk diberikan 4-tupel mana ˉ v adalah himpunan berhingga dari nama variabel, aku n i t dan B a d adalah rumus Presburger yang variabel bebasnya ada di ˉ v , N e x t adalah rumus Presburger yang variabel bebasnya ada di ˉ v atau ˉ⟨v¯,Init,Next,Bad⟩v¯InitBadv¯Nextv¯(salinan prima dari pri v ) apakah ada rumusPresdi aritmatika Presburger dengan variabel bebas di ˉ v sehingga:v¯′v¯ϕv¯
- Init⟹ϕ
- ϕ∧Next⟹ϕ′
- ϕ⟹¬Bad
di mana semua variabel bebas di ϕ .ϕ′ϕ
Misalkan masalah ini dapat diputuskan. Kemudian ada mesin Turing yang memutuskan masalah separator (untuk pengkodean rumus Presburger yang diberikan). Biarkan D menjadi Mesin Turing deterministik yang mensimulasikan D ′ . D mengakhiri dan memutuskan masalah separator.D′DD′D
Sebuah penugasan variabel atas set variabel terbatas adalah konjungsi ⋀ v i = c i di mana c i adalah konstanta integer.{vi}⋀vi=cici
Saya juga akan mengasumsikan keberadaan mesin Turing ke kompiler aritmatika Presburger dengan beberapa pembatasan yang masuk akal, tetapi kuat. C mengambil sebagai masukan Turing mesin M dengan negara yang unik akhir, t e r m , dan masukan w , dan konstruksi presburger formula I n i t dan N e x t lebih terbatas himpunan variabel ˉ v . Secara informal kami memerlukan jalur rumus Presburger untuk mensimulasikan pelaksanaan M pada wCCMtermwInitNextv¯Mw. Selanjutnya, kami membutuhkannya untuk menjadi simulasi langkah. Secara formal, kami mensyaratkan bahwa:
- memberikan sebuah konstanta yang unik untuk semua negara kontrol di M dan membiarkan konstan untuk t e r m menjadi ⟨ t e r m ⟩ ,CMterm⟨term⟩
- meliputi variabel p c di ˉ v bahwa trek negara kendali M pada setiap langkah dalam eksekusi,Cpcv¯M
- menghasilkan I n i t menjadi dalam bentuk penugasan variabel lebih dari ˉ v ,CInitv¯
- memastikan bahwa N e x t memiliki penerus unik pada penugasan variabel lebih dari ˉ v (yang dapat dijangkau dari I n i t ) jika M bersifat deterministik,CNextv¯InitM
- untuk itu ada fungsi injeksi dari keadaan M (kontrol dan pita) ke penugasan variabel atas b a r v sehingga N e x t memiliki penggantinya, keadaan awal M on w dipetakan dengan tepat I n i t dan negara kendali M konsisten memberikan p c ,fMbarvNextMwInitMpc
- bersifat deterministik, danC
- berakhir.C
Sekarang buat mesin Turing yang mengambil mesin Turing M sebagai input dan lakukan hal berikut (dalam pseudocode):SM
S(M):
Run C(M,M) to get v, Init and Next
Simulate D on v, Init, Next, Bad := (pc = <term>)
If D says a separator exists:
terminate
If D says no separator exists:
loop: goto loop
DSSS(S)CInitNextSSiS(S)siiv¯i=f(si)NextInitSCNextInitf(s0)=v¯i=Init
DϕS(S)termkCDv¯1…v¯kϕpc=⟨term⟩D
DS(S)loopkksk+1=sk+2=…kϕ=⋁k+1i=1v¯iϕNextInit
- Init⟹ϕInitv¯1
- ϕ∧Next⟹ϕ′Nextiv¯iv¯′i+1
- ϕ⟹¬Badv¯ipc≠⟨term⟩
ϕ⟨v¯,Init,Next,Bad⟩D
D
Melakukan latihan ini benar-benar membuat saya menghargai karya Jerome Leroux pada pemisah untuk sistem penambahan vektor.