Mengapa konstruktivis tampaknya tidak terlalu peduli dengan panggilan / cc


15

Jadi beberapa saat yang lalu saya pertama kali seseorang memberitahu saya bahwa panggilan / cc dapat memungkinkan objek bukti untuk bukti klasik dengan menerapkan hukum Peirce. Saya melakukan beberapa pemikiran tentang topik baru-baru ini dan sepertinya saya tidak dapat menemukan kesalahan dengan itu. Namun sepertinya saya tidak bisa melihat orang lain membicarakannya. Sepertinya tidak ada diskusi. Apa yang menyebabkannya?

Tampak bagi saya bahwa jika Anda memiliki konstruksi seperti dalam beberapa konteks maka 1 dari dua hal itu benar. Entah Anda memiliki akses ke instance entah bagaimana dalam konteks saat ini di mana aliran kontrol kasus tidak akan pernah mencapai di sini dan kami aman untuk mengasumsikan apa pun ATAU mengingat bahwa f : ¬ ( ¬ P ) berarti f : ( P ) yang satu-satunya cara f dapat mengembalikan adalah dengan membangun sebuah instance dari Pf:¬(¬P)f:¬(¬P)f:(P)fPdan menerapkannya dua argumen itu (sebuah instance dari . Dalam kasus seperti itu sudah ada BEBERAPA cara membangun sebuah instance P ; tampaknya masuk akal untuk panggilan / cc untuk menarik konstruksi ini untuk saya. Alasan saya di sini tampaknya agak mencurigakan bagi saya tetapi kebingungan saya tetap ada. Jika panggilan / cc tidak hanya membuat instance P dari kehabisan udara (saya tidak melihat bagaimana itu) maka apa masalahnya?P)PP

Apakah beberapa istilah yang diketik dengan baik tidak mengandung panggilan / cc tidak memiliki bentuk normal? Adakah properti lain dari ekspresi yang menyebabkan mereka menjadi tersangka? Apakah ada alasan mengapa seorang konstruktivis tidak menyukai panggilan / cc?



Jawaban:


19

Matematika konstruktif bukan hanya sistem formal tetapi lebih pada pemahaman tentang apa itu matematika. Atau dengan kata lain, tidak setiap jenis semantik diterima oleh ahli matematika konstruktif.

Untuk seorang matematikawan konstruktif call/ccterlihat seperti curang. Pertimbangkan bagaimana kita menyaksikan menggunakanp¬pcall/cc :

  1. Kami menyediakan fungsi yang diduga terbukti ¬ p . Pada kenyataannya ff¬pf adalah sekumpulan trik.
  2. Jika ada orang yang menerapkan pada bukti p , maka f melepaskan untuk memutar kembali waktu, dan dengan bukti p di tangan, berubah pikiran tentang p ¬ p : kali ini mengklaim bahwa itu adalah bukti dari p .fpfcall/ccpp¬phal

Pemahaman konstruktif tentang disjungsi adalah kepastian algoritmik , tetapi hal di atas sulit membuat keputusan. Sebagai ujian, seorang ahli matematika yang konstruktif mungkin bertanya kepada Anda bagaimana call/ccmembantu membuktikan bahwa setiap mesin Turing berhenti atau menyimpang. Dan apa program menyaksikan fakta ini? (Seharusnya Oracle Menghentikan.)


Ah!! Saya pikir itu adalah hal yang baik yang saya cari.
Jake

9

Seperti yang Anda perhatikan, ada kemungkinan interpretasi konstruktif dari logika klasik dalam pengertian ini. Fakta bahwa logika klasik sama dengan logika intuitionistic (katakanlah, Heyting Arithmetic) telah dikenal selama beberapa waktu (sudah pada tahun 1933, misalnya Godel ) menggunakan terjemahan negasi ganda.

Dengan argumen yang lebih canggih, dapat ditunjukkan bahwa Aritmatika Peano lebih konservatif daripada HA untuk pernyataan. Inti dari hasilnya adalah bahwa bukti klasik Π 0 2 yang melibatkan c a l l / c c memiliki konten komputasi yang sama dengan pernyataan tanpa konstruk itu (olehΠ20Π20call/cc transformasi CPS ).

Namun ini tidak benar untuk pernyataan di atas : pernyataan di Σ 0 3 , dapat dibuktikan dalam PA, mungkin tidak memiliki bentuk normal yang dapat diterima untuk mengekstraksi saksi! Ilmuwan komputer mungkin tidak peduli tentang komputasi dengan bukti pada tingkat ini, tetapi agak tidak nyaman untuk pertimbangan filosofis : apakah kita telah membuktikan keberadaan sesuatu, atau tidak?Π20Σ30

Saya pikir ini merangkum mengapa "memperbaiki" logika non-konstruktif dengan menambahkan mungkin tidak memuaskan.call/cc

Yang sedang berkata, ada banyak pekerjaan mengeksplorasi aspek komputasi perhitungan dalam kerangka "klasik Curry-Howard", misalnya Mesin Krivine, kalkulus Parigot ( ) dan banyak lainnya. Lihat di sini untuk ikhtisar.λμ¯μ~

Akhirnya, mungkin berguna untuk mencatat bahwa sementara situasinya agak dipahami dengan baik dalam predikat kalkulus dan kasus aritmatika, teori yang lebih kuat jauh lebih sedikit dieksplorasi. Sebagai contoh, IIRC, ZFC konservatif lebih IZF untuk kalimat juga (ZFC adalah konservatif lebih ZF untuk kalimat aritmatika, dan ZF konservatif lebih IZF), yang menunjukkan ada makna komputasi untuk aksioma pilihan. Namun ini sangat banyak bidang penelitian yang aktif ( krivine , Berardi et al.Π20 )

Sunting: Pertanyaan yang sangat relevan tentang mathoverflow muncul di sini: /mathpro/29577/solved- berikutnyaent- calculus-as-programming-language


1
Apakah keseimbangan ini benar secara konstruktif?
Geoffrey Irving

3
¬¬

Yang dimaksud dengan "mungkin tidak memiliki bentuk normal yang setuju untuk mengekstraksi saksi". Apakah secara semantik berarti bahwa istilah-istilah ini memiliki dasar untuk semantik atau apakah itu berarti sesuatu yang asing?
Jake

3
A¬Ainr (fun x -> callcc(...))A

Mengerti. Terima kasih! Saya masih mencerna bagian dari jawaban Anda. Saya tidak terlalu akrab dengan hierarki aritmatika sehingga butuh sedikit lebih banyak untuk diproses.
Jake

8

Saya setuju dengan jawaban Andrej dan Cody. Namun, saya pikir perlu juga disebutkan mengapa konstruktivis harus peduli dengan operator kontrol (panggilan / cc).

Operator-operator ini biasanya terhubung dengan logika klasik karena ketika orang melihat aturan mengetik mereka (Felleisen, Griffin) mereka memperhatikan bahwa tipe-tipe tersebut memiliki bentuk Hukum Peirce atau eliminasi ganda-negasi (¬¬PP). Namun demikian, operator kontrol ditemukan dalam pengaturan bahasa pemrograman Skema yang tidak diketik. Tujuan mereka adalah untuk dapat memperkaya bahasa pemrograman: alih-alih menulis program dengan gaya kelanjutan, seseorang akan dapat menulis program dengan gaya langsung menggunakan operator kontrol.

Satu keuntungan dalam menggunakan operator kontrol dalam Proof Theory adalah yang metodologis: alih-alih menggunakan double-negation- dan A-translation untuk mengekstrak program dari bukti Π20-Theorem dari Aritmatika Klasik, seseorang akan menggunakan operator kontrol dan melakukan normalisasi penulisan ulang langsung pada buktinya.

Keuntungan lain yang harus diperhatikan oleh konstruktivis adalah operator kontrol menunjukkan cara bagaimana membangun ekstensi Curry-Howard dari logika intuitionistic yang masih konstruktif. Misalnya, membatasiP dari hukum eliminasi ganda negasi ke Σ10-kelas formula, memungkinkan untuk memiliki operator kontrol yang diketik yang dapat membuktikan misalnya Prinsip Markov atau Pergeseran Negasi Ganda . Prinsip-prinsip ini biasanya tidak diterima oleh konstruktivis, tetapi karena alasan yang hampir tidak baik, karena diketahui bahwa mereka tidak menghancurkan sifat Disjungsi dan Keberadaan ketika ditambahkan ke logika intuitionistic.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.