We are pleased to announce the release of CBMC version 4.2.
This release adds a range of new features.
* goto-cc now passes all command line options to the gcc preprocessor, and is able to read the goto-binary portion from an ELF object file.
* The MacOS binaries are now signed.
* The C/C++ front-end has been tested and fixed for the Visual Studio 2012 header files.
* The man-page has been elaborated.
* Support for the C99 complex type and gcc's vector type has been added. Various built-ins for x86 MMX and SSE instructions have been added.
* Support for various C11 features has been added, including unicode string and character literals and _Generic.
* Support for various built-in primitives has been added, in particular for the __sync_* commands.
* New feature: --all-claims now reports the status of all claims; the verification continues even if a counterexample is found. This feature uses incremental SAT.
* New feature: --cover-assertions checks whether all assertions are reachable, and reports those that are not.
* The counterexample beautification (--beautify) now uses incremental SAT.
* Numerous improvements to SMT1 and SMT2 interfaces.
* Support for further SAT solvers (PRECOSAT, PICOSAT, LINGELING)
Newer releases of Debian and Ubuntu include a package for CBMC, which can be installed via apt-get (we will therefore discontinue the distribution of the binary packages above once these are stable releases).
As a reminder, the new HTML-based manual is available at:
http://www.cprover.org/cprover-manual/ The manual not only covers CBMC, but also HW-CBMC and SATABS.
You may also be interested in the following related paper:
Numeric Bounds Analysis with Conflict-Driven Learning
The paper describes a variant of CBMC that uses a novel technique for verifying properties of programs that use IEEE floating-point arithmetic.