Die Semantik einer großen Teilmenge von OCaml namens OCamllight wurde vor einigen Jahren von Owens in HOL formalisiert. In jüngerer Zeit wurde in Nuprl eine typentheoretische Semantik einer kleineren Teilmenge von OCaml von Kreitz, Hayden und Hickey implementiert .
Gibt es eine ähnliche Entwicklung bei Coq?
coq
program-verification
ocaml
Andrea Asperti
quelle
quelle
Antworten:
Haben Sie Arthur Charguérauds Doktorarbeit " Charakteristische Formeln für die Verifikation mechanisierter Programme" gesehen ?
Anstatt das Typensystem und die Kleinschritt-Semantik als induktive Beziehungen aufzubauen, gibt er eine Technik zum Umwandeln von Caml-Programmen in charakteristische Formeln an. Dies ist im Grunde eine Verallgemeinerung der Prädikattransformatorsemantik, um eine sehr große Teilmenge von Ocaml zu unterstützen - insbesondere unsichere Casts wie
Obj.magic
. Um aus seiner These zu zitieren:Es ist ein sehr ansprechender Ansatz, wenn Sie beweisen möchten, dass ein bestimmtes Caml-Programm korrekt ist (weniger, wenn Sie jedoch an seiner Metatheorie interessiert sind).
quelle
Das könnte Sie interessieren: Jacques Garrigues A Certified Implementation of ML with Structural Polymorphism and Recursive Types , das die Solidität statischer und dynamischer Semantik und Eigenschaften von Typinferenz für eine ML-Sprache mit (Rekursions- und) Strukturpolymorphismus festlegt und damit einen der folgenden formalisiert fortgeschrittenere Ecken von OCaml (polymorphe Varianten und Objekttypen).
Das heißt, diese Arbeit zielt mehr darauf ab, die Solidität fortgeschrittener Teile des Typsystems zu überprüfen, als den Funktionsumfang bestehender OCaml-Programme abzudecken. Ich denke, dass CFML eine bessere Wahl ist, um die Korrektheit eines vorhandenen OCaml-Programms zu beweisen.
quelle