Featherweight VeriFast

Bart Jacobs,Frédéric Vogels,Frank Piessens
DOI: https://doi.org/10.2168/lmcs-11(3:19)2015
2015-09-22
Logical Methods in Computer Science
Abstract:<p>VeriFast is a leading research prototype tool for the sound modularverification of safety and correctness properties of single-threaded andmultithreaded C and Java programs. It has been used as a vehicle forexploration and validation of novel program verification techniques and forindustrial case studies; it has served well at a number of program verificationcompetitions; and it has been used for teaching by multiple teachersindependent of the authors. However, until now, while VeriFast's operation hasbeen described informally in a number of publications, and specificverification techniques have been formalized, a clear and precise exposition ofhow VeriFast works has not yet appeared. In this article we present for thefirst time a formal definition and soundness proof of a core subset of theVeriFast program verification approach. The exposition aims to be bothaccessible and rigorous: the text is based on lecture notes for a graduatecourse on program verification, and it is backed by an executablemachine-readable definition and machine-checked soundness proof in Coq.</p>
computer science, theory & methods,logic
What problem does this paper attempt to address?