Abstract
VeriFast is a leading research prototype tool for the sound modular verification of safety and correctness properties of single-threaded and multithreaded C and Java programs. It has been used as a vehicle for exploration and validation of novel program verification techniques and for industrial case studies; it has served well at a number of program verification competitions; and it has been used for teaching by multiple teachers independent of the authors. However, until now, while VeriFast’s operation has been described informally in a number of publications, and specific verification techniques have been formalized, a clear and precise exposition of how VeriFast works has not yet appeared. In this article we present for the first time a formal definition and soundness proof of a core subset of the VeriFast program verification approach. The exposition aims to be both accessible and rigorous: the text is based on lecture notes for a graduate course on program verification, and it is backed by an executable machine-readable definition and machine-checked soundness proof in Coq.
Author supplied keywords
Cite
CITATION STYLE
Vogels, F., Jacobs, B., & Piessens, F. (2015). Featherweight verifast. Logical Methods in Computer Science , 11(3). https://doi.org/10.2168/LMCS-11(3:19)2015
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.