SMT-based bounded model checker that provides bit-precise verification for C/C++ programs
ESBMC
SMT-based model checking Bounded model checking Multi-threaded programs
Model checker
- C program
- Possibly a property file or assertions in the code to express properties that should be checked
- Parameters to indicate the type of analysis that should be done
. c
file and parameters when calling ESBMC.
The property file should be in the format used by SV-COMP.
VERIFICATION SUCCESSFUL
or VERIFICATION FAILED
, followed by more detail about the counterexample that the tool found.
ESBMC v6.0 employs a k-induction algorithm to both falsify and prove safety properties in C programs
Some of the parameters/analyses that ESBMC supports are:
--k-induction
to enable k-induction--floatbv
to enable floating-point SMT encoding--interval-analysis
, which enables invariant generation--memory-leak-check
for memory verification--overflow-check
to check for overflows
As back-ends ESBMC supports the following SMT solvers: Boolector, Z3, Yices, MathSAT, CVC4.
ESBMC is based on CBMC.
Repository: https://github.com/esbmc/esbmc Project page: http://esbmc.org/
01 Dec 2022 (default branch) 01 Dec 2022 (last activity)
8 September 2021
Model checking C++ programs (Software Testing, Verification and Reliability, Vol. 32, Issue 1, '21) ESBMC 6.1: automated test case generation using bounded model checking (Journal on STTT '20) ESBMC v6.0: Verifying C Programs Using k-Induction and Invariant Inference (TACAS '19) ESBMC 5.0: an industrial-strength C model checker (ASE '18) ESBMC 1.22 (TACAS '14)
:: C :: C++ :: Model checking :: PV4 :: checks safety properties in C programs, can generate invariants :: Source :: https://doi.org/10.1145/3550355.3552426