Semantyka dużego podzbioru OCaml, zwanego OCamllight , została sformalizowana w HOL przez Owensa kilka lat temu. Niedawno Kreitz, Hayden i Hickey zaimplementowali w Nuprl teoretyczną semantykę typu mniejszego podzbioru OCaml .
Czy istnieje podobny rozwój w Coq?
coq
program-verification
ocaml
Andrea Asperti
źródło
źródło
Odpowiedzi:
Czy widziałeś pracę doktorską Arthura Charguérauda, Charakterystyczne formuły weryfikacji programu zmechanizowanego ?
Zamiast budować system typów i semantykę małych kroków jako relacje indukcyjne, podaje technikę przekształcania programów Camla w charakterystyczne formuły. Jest to w zasadzie uogólnienie semantyki transformatora predykatowego w celu obsługi bardzo dużego podzbioru Ocaml - w tym w szczególności niebezpiecznych rzutów
Obj.magic
. Cytując z pracy magisterskiej:Jest to bardzo atrakcyjne podejście, jeśli chcesz udowodnić poprawność konkretnego programu Caml (mniej, jeśli interesuje Cię jego metateoria).
źródło
Możesz być zainteresowany Certyfikowaną implementacją ML Jacka Garrigue'a z polimorfizmem strukturalnym i typami rekurencyjnymi , która określa solidność statycznej i dynamicznej semantyki oraz wnioskowanie o typie dla języka ML z (rekurencyjnym i) strukturalnym polimorfizmem, formalizując w ten sposób jeden z bardziej zaawansowane rogi OCaml (warianty polimorficzne i typy obiektów).
To powiedziawszy, ta praca jest bardziej ukierunkowana na sprawdzenie poprawności bardziej zaawansowanych części systemu typów niż na omówienie zestawu funkcji istniejących programów OCaml. Myślę, że jeśli chodzi o próbę udowodnienia poprawności istniejącego programu OCaml, CFML byłby lepszym wyborem.
źródło