Семантика большого подмножества OCaml, называемого OCamllight , была формализована в HOL Оуэнсом несколько лет назад. Совсем недавно теоретическая семантика типов меньшего подмножества OCaml была реализована в Nuprl Крейцем, Хейденом и Хикки .
Есть ли похожие разработки в Coq?
coq
program-verification
ocaml
Андреа Асперти
источник
источник
Ответы:
Вы видели кандидатскую диссертацию Артура Шерго, « Характеристические формулы для механизированной верификации программ» ?
Вместо того, чтобы строить систему типов и семантику малых шагов как индуктивные отношения, он дает метод для преобразования программ Caml в характеристические формулы. Это в основном обобщение семантики предикатного преобразователя для поддержки очень большого подмножества Ocaml - особенно, включая небезопасные приведения типа
Obj.magic
. Цитирую его тезис:Это очень привлекательный подход, если вы хотите доказать правильность конкретной программы Caml (тем не менее, если вы заинтересованы в ее метатеории).
источник
Вас может заинтересовать « Сертифицированная реализация ML со структурным полиморфизмом и рекурсивными типами» Жака Гаррига , которая устанавливает надежность статической и динамической семантики и свойства вывода типов для языка ML со (рекурсивным и) структурным полиморфизмом, таким образом формализуя один из более продвинутые углы OCaml (полиморфные варианты и типы объектов).
Тем не менее, эта работа больше направлена на проверку правильности более продвинутых частей системы типов, чем на рассмотрение набора функций существующих программ OCaml. Я думаю, что с точки зрения попытки доказать правильность существующей программы OCaml, CFML был бы лучшим выбором.
источник