Practical Deductive Verification of OCaml Programs (Extended Version)
M\'ario Pereira

TL;DR
This paper presents a practical approach for deductive verification of OCaml programs using GOSPEL and Cameleer, covering both functional and imperative code with mutable state and complex control flow.
Contribution
It provides a comprehensive tutorial on applying deductive verification to OCaml, demonstrating the use of GOSPEL and Cameleer for mostly-automated verification of functional and imperative programs.
Findings
Effective verification of purely functional OCaml programs.
Verification techniques for imperative OCaml programs with mutable state.
Guidelines for applying deductive verification in practical OCaml development.
Abstract
In this paper, we provide a comprehensive, hands-on tutorial on how to apply deductive verification to programs written in OCaml. In particular, we show how one can use the GOSPEL specification language and the Cameleer tool to conduct mostly-automated verification on OCaml code. In our presentation, we focus on two main classes of programs: first, purely functional programs with no mutable state; then on imperative programs, where one can mix mutable state with subtle control-flow primitives, such as locally-defined exceptions.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsBusiness Process Modeling and Analysis · Model-Driven Software Engineering Techniques · Software Engineering Techniques and Practices
