Menerapkan Bahasa "Internal"

11

Salah satu konsekuensi paling praktis dari korespondensi "Curry-Howard-Lambek" adalah bahwa sintaks dari banyak lambda-calucli / logika dapat digunakan untuk melakukan konstruksi dalam kategori yang cukup terstruktur.

Misalnya, Synthetic Differential Geometry memiliki model dalam topoi yang berisi dan menyematkan kategori manifold halus, sehingga Anda dapat menggunakan logika tingkat tinggi untuk membangun fungsi yang halus dan menyelesaikan persamaan diferensial.

Sebagai contoh lain, dalam makalah ini , mereka memperhatikan bahwa "langkah-pengindeksan" benar-benar hanya bekerja dengan presheaves atas naturals (topos lain), sehingga Anda dapat menggunakan sintaks logika urutan yang lebih tinggi untuk menentukan hubungan logis langkah-diindeks tanpa membosankan. manipulasi langkah-langkah.

Akhirnya, Andrej Bauer menunjukkan dalam pertanyaan MO ini bahwa Anda dapat melakukan banyak hal dengan "bahasa internal" dari topos grafik.

Pertanyaan saya adalah, adakah orang yang menyadari visi ini secara harfiah dalam pepatah teorema ? Misalnya, jika saya menunjukkan bahwa kategori yang saya pedulikan adalah Cartesian Closed, saya kemudian dapat pindah ke "mode internal" di mana saya menulis sintaks lambda-calculus (dengan beberapa aksioma khusus model) dan kemudian dapat kembali ke "mode eksternal" dan memanipulasi mereka sebagai objek dalam model saya?

Dalam ekstrim saya bahkan ingin teori topos dan logika tingkat tinggi, sehingga saya bisa menulis hubungan logis langkah-indeks tanpa langkah, atau mengajar mekanika klasik dengan pembuktian teorema menggunakan SDG. Bagi saya ini adalah ide yang sangat kuat karena seseorang dapat menerapkan teori tipe dependen ekstensional satu kali dan memberikan perkakas yang bagus dan kemudian menggunakannya dengan aplikasi yang sangat berbeda seperti yang dijelaskan di atas.

Max Baru
sumber
Hanya demi kejelasan: apakah Anda bertanya apakah ada orang yang pernah menulis ulang teori matematika dalam bahasa internal kategori yang mendasarinya (untuk menggunakan pembuktian teorema untuk membuktikan hal-hal tentang teori matematika seperti itu)? Atau apakah Anda tertarik untuk mengetahui apakah ada yang telah melakukan teori model dalam teori tipe (dari beberapa jenis kategori)?
Giorgio Mossa
Saya tidak bertanya tentang pekerjaan yang dilakukan orang dalam bahasa internal tertentu dalam teorema teorema (meskipun referensi untuk itu akan diterima). Saya menanyakan apakah seseorang telah melakukan pekerjaan implementasi "internal Bahasa" pada dasarnya DSLs dalam prover teorema sehingga saya dapat menggunakan bahasa internal untuk setiap model khusus yang aku tertarik dan mendapatkan semua manfaat dari sintaks yang bagus. Untuk CCCs ini tampaknya mudah karena sintaks dapat dengan mudah dinyatakan dalam Coq / Agda dll tetapi Topoi tampaknya lebih sulit.
Maks Baru

Jawaban:

7

Dalam Teori Memperluas Jenis dengan Memaksa oleh Guilhem Jaber, Nicolas Tabareau dan Matthieu Sozeau, 2012, pemaksaan intuitionistic disajikan sebagai internalisasi konstruksi presheaf, diimplementasikan sebagai terjemahan pengawet jenis dalam gaya terjemahan parametrisitas Bernardy dan Lasson .

Ini berarti bahwa Anda dapat mendefinisikan istilah dalam teori tipe yang biasa Anda gunakan, dan kemudian "menerjemahkannya" ke dalam "lapisan pemaksa" di mana mereka ditafsirkan sebagai terjemahan pada jenis terjemahan yang berbeda. Misalnya, terjemahan yang disebabkan oleh pengindeksan terhadap penurunan bilangan asli memungkinkan Anda menggunakan istilah yang biasa dalam teori pasca-penerjemahan di mana latermodalitas dapat didefinisikan. Ini kedengarannya agak dekat dengan ide Anda untuk bekerja secara internal di topos pohon.

Tampaknya mereka memiliki plugin Coq baru yang lebih sederhana yang mengimplementasikan ide-ide ini di CoqHott / coq-forcing , dan khususnya SI.v membuat terjemahan pemaksaan ini untuk langkah-pengindeksan. Sayangnya, sementara itu melakukan pekerjaan membangun model, tidak ada contoh menggunakannya untuk definisi langkah-diindeks dalam praktek (satu-satunya hal yang diterjemahkan bukannya didefinisikan dalam lapisan memaksa adalah Forcing Translate eq, yang tidak terlalu informatif). Anda dapat mencoba bereksperimen untuk melihat bagaimana nyamannya menggunakan ini.

gasche
sumber
5

Jika Anda akan bekerja hanya dalam bahasa internal maka Anda hanya dapat menggunakan asisten bukti. Ada sedikit teknisitas memiliki atau tidak memilikietset, karena asisten pembuktian biasanya bertipe teori, tetapi Coq Propkonsisten dengan interpretasi Coq dalam topos.

Namun Anda menyarankan untuk menggunakan mesin sebagai semacam alat terjemahan yang akan membawa Anda dari bahasa internal ke interpretasi dalam model. Ini adalah ide yang bagus, kecuali saya pikir itu tidak akan berguna seperti yang diharapkan. Memang benar bahwa terjemahan dari bahasa internal ke model adalah mekanis, tetapi sayangnya menghasilkan terjemahan yang berbelit-belit yang membutuhkan banyak pemijatan sebelum berguna. (Jika Anda pernah mencoba menggunakan interpretasi Lawvere-Tierney dari logika topos dalam sheos topos, Anda akan tahu.)

Ada satu masalah lagi, yaitu terjemahan terbalik . Kita sering mulai dengan konsep atau objek yang diketahui dalam model, dan ingin deskripsi atau axomatization yang baik dalam bahasa internal. Ini biasanya kerja keras dan matematika sungguhan. Saya tidak melihat bagaimana asisten bukti saat ini dapat membantu.

Dari sisi teknis, seseorang harus khawatir tentang formalisasi:

  • sintaks dan aturan bahasa internal
  • model
  • interpretasi

Itu juga banyak pekerjaan. Beberapa proyek di sepanjang garis ini telah dilakukan (misalnya penafsiran -calculus dalam kategori tertutup kartesian). Saya tidak mengetahui ada yang meresmikan toposa, misalnya.λ

Singkatnya, menggunakan asisten bukti untuk membantu memeriksa bahwa Anda tidak melakukan kesalahan dalam bahasa internal adalah ide yang bagus (pada kenyataannya, itu adalah ide yang sangat bagus, sebagaimana dibuktikan oleh teori tipe homotopy, di mana kami menggunakan Coq dan Agda untuk mengembangkan teorema baru yang hanya kemudian tidak diformalkan ke dalam bahasa Inggris), tetapi menggunakannya untuk mendapatkan pernyataan tentang model tidak mungkin bekerja tanpa banyak pekerjaan tambahan. Bukan berarti Anda tidak boleh mencoba!

Andrej Bauer
sumber
Apakah Anda memiliki referensi untuk Type Theory + Prop ~~ topos? Ini adalah intuisi saya, tetapi saya belum melihat orang lain mengatakannya sampai sekarang.
Maks. Baru,
Juga, untuk logika model-spesifik, aksioma spesifik akan spesifik untuk model tetapi struktur logika secara keseluruhan masih hanya logika tingkat tinggi, kan? Saya membayangkan bahwa Anda akan mengkarakterisasi fitur-fitur model Anda secara eksternal (seperti fungsi berikutnya di kertas langkah-pengindeksan) dan kemudian hanya mencerminkannya sebagai aksioma dalam bahasa internal Anda. Menghasilkan aksiomaasi yang bagus dan lengkap masih akan sulit, tetapi harapan saya adalah bahwa mesin dapat mengotomatisasi beberapa pipa ledeng.
Maks. Baru,
Untuk langkah-pengindeksan khususnya akan masuk akal untuk memperluas logika topos dengan operator modal. Ini pada umumnya akan menjadi fitur dari setiap situasi di mana Anda peduli tentang subtopo, atau Anda memiliki (co) monad yang ingin Anda pelajari, dll.
Andrej Bauer
Untuk teori Type + Prop, Anda hanya menatap setiap aturan dan melihat bahwa jika Anda mengartikan Prop sebagai pengelompokan subobject, semuanya valid dalam topos.
Andrej Bauer