A View from the Engine Room: Computational Support for Symbolic Model Checking
journal contributionposted on 01.01.2004, 00:00 by Randal 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)  to represent system transition relations and sets of system states . 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  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 . 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.