Interpolation-based Model Checking

About Wolverine

Wolverine is an interpolation-based software verification
tool for ANSI-C and C++ programs and aims
at computing Hoare-style correctness proofs for
software programs. The tool is an implementation of the
lazy abstraction with interpolants algorithm.

Features

Wolverine supports checking of reachability properties such
as

assertions

buffer overflows

pointer-safety

division-by-zero

arithmetic underflow and overflow

reachability of user-specified program locations

If the program analysis succeeds, the tool provides
either a counterexample to the claim
or a Hoare-proof and program invariants establishing the
(partial) correctness of the program.

Moreover, Wolverine provides

a built-in interpolating decision procedure (with
support for equality logic, uninterpreted functions, and
limited support for bit-vector operations), and

Used to produce the
results reported in
[Weissenbacher,
2010]. Includes a collection of simplified
Windows device drivers, and a modified version of
the DDVerify source file (replacing the
source files in DDVerify's
bin-directory in ddverify-2010-04-30.tgz).