Cameleer: a Deductive Verification Tool for OCaml (extended version)
M\'ario Pereira, Ant\'onio Ravara

TL;DR
Cameleer is a tool that automates the deductive verification of OCaml programs by translating them into WhyML and using Why3 to generate and discharge verification conditions, enabling formal correctness proofs.
Contribution
It introduces a novel verification pipeline for OCaml that leverages GOSPEL specifications and integrates with Why3 for proof automation, addressing a gap in OCaml formal verification.
Findings
Successfully verified correctness of FIFO queues and leftist heaps
Demonstrated applicability to real OCaml libraries
Achieved proof automation with SMT solvers
Abstract
OCaml is particularly well-fitted for formal verification. On one hand, it is a multi-paradigm language with a well-defined semantics, allowing one to write clean, concise, type-safe, and efficient code. On the other hand, it is a language of choice for the implementation of sensible software, e.g., industrial compilers, proof assistants, and automated solvers. Yet, with the notable exception of some interactive tools, formal verification has been seldom applied to OCaml-written programs. In this paper, we present the ongoing project Cameleer, aiming for the development of a deductive verification tool for OCaml, with a clear focus on proof automation. We leverage on the recently proposed GOSPEL, Generic OCaml SPE cification Language, to attach rigorous, yet readable, behavioral specification to OCaml code. The formally-specified program is fed to our toolchain, which translates it into…
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
TopicsSecurity and Verification in Computing · Logic, programming, and type systems · Distributed systems and fault tolerance
