Practical Boogie (on the example of VCC)

I’m going to talk about encoding various constructs in Boogie. In particular I’ll focus on object invariants, as implemented in VCC, and what can be built on them: ownership, counting permissions for concurrent programs, recursive data-structures, and secrecy properties. I’ll also talk about encoding data-types, termination checking, and induction proofs.

VCC is a verifier of complex, user-supplied properties of concurrent C programs. It builds on top of Boogie, an intermediate verification language, generating verification conditions for various provers including Z3.

Date:
Speakers:
Michal Moskal
Affiliation:
MSR, Redmond