VeriFast is an auto-active verification tool for C and Java based on separation logic and SMT solvers. This paper is a nice overview of the state of the project in 2011 when they had
- a symbolic execution based checker with a nice UI
- support for both C and Java
- support for permission accounting based on fractional permissions and an encoding of counting permissions
- support for writing (recursive) lemma functions to prove inductive properties
- and they were starting on some industrial case studies
Notes related to VeriFast: A powerful, sound, predictable, fast verifier for C and Java
Papers related to VeriFast: A powerful, sound, predictable, fast verifier for C and Java
- Leveraging Rust types for modular specification and verification [astrauskas:oopsla:2019]
- Smallfoot: Modular automatic assertion checking with separation logic [berdine:fmco:2005]
- The Boogie verification debugger [legoues:sefm:2011]
- Software verification with VeriFast: Industrial case studies [philippaerts:scp:2014]
- Implicit dynamic frames: Combining dynamic frames and separation logic [smans:ecoop:2009]
- Local reasoning about while-loops [tuerk:vstte:2010]