Formal Methods in System Design

, Volume 19, Issue 1, pp 7–34

Bounded Model Checking Using Satisfiability Solving


  • Edmund Clarke
    • Computer Science DepartmentCMU
  • Armin Biere
    • Institute of Computer SystemsETH Zürich
  • Richard Raimi
    • TriMedia Technologies, Inc.
  • Yunshan Zhu
    • TriMedia Technologies, Inc.

DOI: 10.1023/A:1011276507260

Cite this article as:
Clarke, E., Biere, A., Raimi, R. et al. Formal Methods in System Design (2001) 19: 7. doi:10.1023/A:1011276507260


The phrase model checking refers to algorithms for exploring the state space of a transition system to determine if it obeys a specification of its intended behavior. These algorithms can perform exhaustive verification in a highly automatic manner, and, thus, have attracted much interest in industry. Model checking programs are now being commercially marketed. However, model checking has been held back by the state explosion problem, which is the problem that the number of states in a system grows exponentially in the number of system components. Much research has been devoted to ameliorating this problem.

In this tutorial, we first give a brief overview of the history of model checking to date, and then focus on recent techniques that combine model checking with satisfiability solving. These techniques, known as bounded model checking, do a very fast exploration of the state space, and for some types of problems seem to offer large performance improvements over previous approaches. We review experiments with bounded model checking on both public domain and industrial designs, and propose a methodology for applying the technique in industry for invariance checking. We then summarize the pros and cons of this new technology and discuss future research efforts to extend its capabilities.

model checking processor verification satisfiability bounded model checking cone of influence reduction

Copyright information

© Kluwer Academic Publishers 2001