Semantik dari sebagian besar OCaml, yang disebut OCamllight , diformalkan dalam HOL oleh Owens beberapa tahun yang lalu. Baru-baru ini, jenis semantik teoritis dari subset yang lebih kecil dari OCaml diimplementasikan di Nuprl oleh Kreitz, Hayden dan Hickey .
Apakah ada perkembangan serupa di Coq?
coq
program-verification
ocaml
Andrea Asperti
sumber
sumber
Jawaban:
Pernahkah Anda melihat tesis PhD Arthur Charguéraud, Formula Karakteristik untuk Verifikasi Program Mekanis ?
Daripada membangun sistem tipe dan semantik langkah kecil sebagai hubungan induktif, ia memberikan teknik untuk mengubah program Caml menjadi formula karakteristik. Ini pada dasarnya adalah generalisasi semantik transformator predikat untuk mendukung subset Ocaml yang sangat besar - terutama, termasuk gips yang tidak aman seperti
Obj.magic
. Mengutip dari tesisnya:Ini adalah pendekatan yang sangat menarik jika Anda ingin membuktikan program Caml tertentu yang benar (kurang begitu jika Anda tertarik dengan metatheory-nya).
sumber
Anda bisa tertarik dengan Implementasi Tersertifikasi ML Jacques Garrigue dengan Polimorfisme Struktural dan Tipe Rekursif , yang menetapkan kesehatan semantik statis dan dinamis serta properti inferensi tipe untuk bahasa ML dengan (rekursi dan) polimorfisme struktural, dengan demikian memformalkan salah satu sudut OCaml yang lebih maju (varian polimorfik dan tipe objek).
Yang mengatakan, pekerjaan ini lebih ditujukan untuk memverifikasi kesehatan bagian yang lebih maju dari sistem tipe daripada menutupi fitur set program OCaml yang ada. Saya pikir dalam hal mencoba membuktikan kebenaran dari program OCaml yang ada, CFML akan menjadi pilihan yang lebih baik.
sumber