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:
Saya telah fokus pada subset dari bahasa pemrograman OCaml, yang merupakan bahasa pemrograman tingkat tinggi berurutan, panggilan-menurut-nilai. Implementasi CFML saat ini mendukung inti λ-kalkulus, termasuk fungsi tingkat tinggi, rekursi, rekursi timbal balik, dan rekursi polimorfik. Ini mendukung tupel, konstruktor data, pencocokan pola, sel referensi, catatan dan array. Saya menyediakan perpustakaan Caml tambahan yang menambahkan dukungan untuk pointer nol dan pembaruan yang kuat.
Ini adalah pendekatan yang sangat menarik jika Anda ingin membuktikan program Caml tertentu yang benar (kurang begitu jika Anda tertarik dengan metatheory-nya).