Arthur Charguéraud'un Doktora tezi, Mekanize Program Doğrulaması için Karakteristik Formüller gördünüz mü ?
Tür sistemini ve küçük adım semantiğini tümevarımsal ilişkiler olarak inşa etmek yerine Caml programlarını karakteristik formüllere dönüştürmek için bir teknik verir. Bu temelde çok büyük bir Ocaml alt kümesini desteklemek için yüklem transformatörü semantiğinin genelleştirilmesidir - özellikle güvenli olmayan dökümler dahil Obj.magic
. Tezinden alıntı yapmak için:
Sıralı, değere göre arama, üst düzey programlama dili olan OCaml programlama dilinin bir alt kümesine odaklandım. Mevcut CFML uygulaması, üst düzey fonksiyonlar, özyineleme, karşılıklı özyineleme ve polimorfik özyineleme dahil olmak üzere çekirdek λ-hesabını destekler. Tuples, veri yapıcıları, desen eşleştirme, referans hücreleri, kayıtları ve dizileri destekler. Boş göstericiler ve güçlü güncellemeler için destek sağlayan ek bir Caml kütüphanesi sağlıyorum.
Belirli bir Caml programının doğru olduğunu kanıtlamak istiyorsanız çok çekici bir yaklaşımdır (daha az metatheory ile ilgileniyorsanız).