Learn More
Propositional bounded model checking has been applied successfully to verify embedded software but is limited by the increasing propositional formula size and the loss of structure during the translation. These limitations can be reduced by encoding word-level information in theories richer than propositional logic and using SMT solvers for the generated(More)
Bounded model checking of C++ programs presents greater challenges than that of C programs due to the more complex features that the language offers, such as templates, containers, and exception handling. We present ESBMC++, a bounded model checker for C++ programs. It is based on an operational model, an abstract representation of the standard C++(More)
We describe and evaluate three approaches to model check multi-threaded software with shared variables and locks using bounded model checking based on Satisfiability Modulo Theories (SMT) and our modelling of the synchronization primitives of the Pthread library. In the lazy approach, we generate all possible interleavings and call the SMT solver on each of(More)
ESBMC is a context-bounded symbolic model checker for single-and multi-threaded ANSI-C code. It converts the verification conditions using different background theories and passes them directly to an SMT solver. 1 Overview ESBMC is a context-bounded symbolic model checker that allows the verification of single-and multi-threaded C code with shared variables(More)
Modern control is implemented with digital microcontrollers, embedded within a dynamical plant that represents physical components. We present a new algorithm based on counterexample guided inductive synthesis that automates the design of digital controllers that are correct by construction. The synthesis result is sound with respect to the complete range(More)
In recent days, the complexity of software has increased significantly in embedded products in such a way that the verification of Embedded Software (ESW) now plays an important role to ensure the product's quality. Embedded systems engineers usually face the problems of verifying properties that have to meet the application's deadline, access the memory(More)
We extended ESBMC to exploit the combination of context-bounded symbolic model checking and k-induction to prove safety properties in single-and multi-threaded ANSI-C programs with unbounded loops. We now first try to verify by induction that the safety property holds in the system. If that fails, we search for a bounded reachable state that constitutes a(More)
This work presents the Digital-Systems Verifier (DSVerifier), which is a verification tool developed for digital systems. In particular, DSVerifier employs the bounded model checking technique based on sat-isfiability modulo theories (SMT) solvers, which allows engineers to verify the occurrence of design errors, due to the finite word-length approach(More)
We have implemented an improved memory model for ESBMC which better takes into account C's memory alignment rules and optimizes the generated SMT formulae. This simultaneously improves ESBMC's precision and performance. 1 Overview ESBMC is a context-bounded symbolic model checker that allows the verification of single-and multi-threaded C code with shared(More)