Featherweight VeriFast

By Frédéric Vogels, Bart Jacobs, and Frank Piessens

Featherweight VeriFast is a formally defined program verification approach that captures a core subset of the VeriFast approach for sound modular verification of imperative programs.

An executable machine-readable definition and machine-checked soundness proof of Mechanised Featherweight VeriFast, a slight variant of Featherweight VeriFast, is given below.

The following article formally defines Featherweight VeriFast, outlines a soundness proof, and describes the mechanisation.

Featherweight VeriFast [PDF] [Slides] [Handouts]
By Frédéric Vogels, Bart Jacobs, and Frank Piessens.
In Logical Methods in Computer Science 11(3:19), 2015.

Mechanised Featherweight VeriFast

The following input files for the Coq 8.4 formal proof management system constitute a machine-readable executable definition and machine-checked soundness proof of Mechanised Featherweight VeriFast.

See also: [Sources] [Contents] [Index] [PDF] [Module dependencies]

To type-check the definitions, run the test suite, and check the soundness proof, issue the following commands, with Coq 8.4 in your PATH:

coq_makefile *.v > Makefile
make

Coq will print the list of axioms used by the soundness proof. Note that all axioms are from the Coq standard library and are axioms of classical logic.