posted on 2004-01-01, 00:00authored byRandal E. Bryant
Symbolic model checking owes much of its success to powerful methods for reasoning
about Boolean functions. The first symbolic model checkers used Ordered Binary Decision
Diagrams (OBDDs) [1] to represent system transition relations and sets of system
states [9]. All of the steps required for checking a model can be expressed as a series
of operations on these representations, without ever enumerating individual states or
transitions. More recently, bounded [3] and unbounded [10, 11] model checkers have
been devised that use Boolean satisfiability (SAT) solvers as their core computational
engines. Methods having a SAT solver work on a detailed system model and OBDDs
operate on an abstracted model have shown that the combination of these two reasoning
techniques can be more powerful than either operating on its own [4]. Boolean methods
have enabled model checkers to scale to handle some of the complex verification
problems arising from real-world hardware and software designs.
Given the importance of Boolean reasoning in symbolic checking, we take this opportunity
to examine the capabilities of SAT solvers and BDD packages.We use several
simple experimental evaluations to illustrate some strengths and weaknesses of current
approaches, and suggest directions for future research.