Auto-active Verification of Graph Algorithms, Written in OCaml
Daniel Castanho, M\'ario Pereira

TL;DR
This paper demonstrates the successful application of auto-active deductive verification to large-scale, real-world OCaml graph algorithms, showcasing mostly-automated proofs using SMT solvers and the Why3 framework.
Contribution
It introduces the first mostly-automated, mechanized verification of OCaml graph algorithms using Cameleer and SMT solvers, bridging a gap in formal certification of functional programs.
Findings
Most proofs completed automatically with SMT solvers
Verification applied to large-scale OCaml graph algorithms
First mechanized proofs of OCaml graph algorithms
Abstract
Functional programming offers the perfect ground for building correct-by-construction software. Languages of such paradigm normally feature state-of-the-art type systems, good abstraction mechanisms, and well-defined execution models. We claim that all of these make software written in a functional language excellent targets for formal certification. Yet, somehow surprising, techniques such as deductive verification have been seldom applied to large-scale programs, written in mainstream functional languages. In this paper, we wish to address this situation and present the auto-active proof of realistic OCaml implementations. We choose implementations issued from the OCamlgraph library as our target, since this is both a large-scale and widely-used piece of OCaml code. We use Cameleer, a recently proposed tool for the deductive verification of OCaml programs, to conduct the proofs of the…
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
TopicsModel-Driven Software Engineering Techniques · Software Engineering Research · Software Testing and Debugging Techniques
