CFML: Characteristic Formulae for ML

CFML is a tool for the interactive verification of OCaml programs, using Coq and Separation Logic. It leverages the idea of Characteristic Formulae, a concept that I developed during my PhD thesis.

CFML 1.0 is the stable tool, however it will become subsumed in the near future by CFML 2.0.

CFML 2.0 will remove dependencies on generated axioms, and it will provide a more expressive logic and more powerful tactics. The foundations of CFML 2.0 are described in my Separation Logic course.

Download of CFML 2.0

The source files can be obtained from:



git clone git@gitlab.inria.fr:charguer/cfml2.git





For installation instruction, read the README file.

The developments rely on my Coq library TLC.

All the files are distributed under the GNU-LGPL license.

Download of CFML 1.0

WARNING: the development of CFML 1.0 will soon be discontinued as soon as CFML 2.0 is ready.

The source files can be obtained from:



git clone https://gitlab.inria.fr/charguer/cfml.git





For installation instruction, checkout the README file.

The developments rely on my Coq library TLC.

All the files are distributed under the GNU-LGPL license.

Related publications

A Fistful of Dollars: Formalizing Asymptotic Complexity Claims via Deductive Program Verification Armaël Guéneau, Arthur Charguéraud, and François Pottier

Verifying the Correctness and Amortized Complexity of a Union-Find Implementation in Separation Logic with Time Credits Arthur Charguéraud and François Pottier

Temporary Read-Only Permissions for Separation Logic Arthur Charguéraud and François Pottier

Higher-order Representation Predicates in Separation Logic Arthur Charguéraud

Machine-Checked Verification of the Correctness and Amortized Complexity of an Efficient Union-Find Implementation Arthur Charguéraud and François Pottier

Characteristic Formulae for the Verification of Imperative Programs Arthur Charguéraud

Characteristic Formulae for the Verification of Imperative Programs Arthur Charguéraud

Program Verification Through Characteristic Formulae Arthur Charguéraud

Characteristic Formulae for Mechanized Program Verification Arthur Charguéraud