In this thesis, a SAT-based unbounded symbolic model checking algorithm is proposed to reduce memory usage. The conjunctive normal form is used to represent sets of states and transition relation. A logical operation on state sets is implemented as an operation on conjunctive-normal-form formulas. A Satisfy-All procedure is proposed to compute the existential quantification required in obtaining the pre-image and fix-point. The proposed Satisfy-All procedure is implemented by modifying a SAT procedure to generate all the satisfying assignments of the input formula, which is based on new efficient techniques such as line justification to make an assignment covering more search space, excluding clause management, and two-level logic minimization to compress the set of found assignments.
In addition, a cache table is introduced into the Satisfy-All procedure. It is a difficult problem for a Satisfy-All procedure to detect the case that a previous result can be reused. This thesis shows that the case can be detected by comparing sets of undetermined variables and clauses. The data structure that can perform the operation efficiently will also be described. Line justification and excluding clause management schemes are discussed to be applied to the cache scheme. It will be discussed also to obtain better performance when the cache scheme is applied.
A few benchmark circuits with various sizes are used in the experiments. Parameters will be determined based on the performance measure. The experimental results show the proposed algorithm can check more circuits than BDD-based and previous SAT-based model checking algorithms.