Graph-Based Algorithms for Boolean Function Manipulation
IEEE Transactions on Computers
ACM Transactions on Computational Logic (TOCL)
The small model property: how small can it be?
Information and Computation
BDD Based Procedures for a Theory of Equality with Uninterpreted Functions
CAV '98 Proceedings of the 10th International Conference on Computer Aided Verification
Deciding Equality Formulas by Small Domains Instantiations
CAV '99 Proceedings of the 11th International Conference on Computer Aided Verification
Boolean Satisfiability with Transitivity Constraints
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
ICS: Integrated Canonizer and Solver
CAV '01 Proceedings of the 13th International Conference on Computer Aided Verification
CVC: A Cooperating Validity Checker
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
CAV '02 Proceedings of the 14th International Conference on Computer Aided Verification
Automatic verification of Pipelined Microprocessor Control
CAV '94 Proceedings of the 6th International Conference on Computer Aided Verification
A SAT Based Approach for Solving Formulas over Boolean and Linear Mathematical Propositions
CADE-18 Proceedings of the 18th International Conference on Automated Deduction
Finite Instantiations in Equivalence Logic with Uninterpreted Functions
CAV '01 Proceedings of the 13th International Conference on Computer Aided Verification
From propositional satisfiability to satisfiability modulo theories
SAT'06 Proceedings of the 9th international conference on Theory and Applications of Satisfiability Testing
Hi-index | 0.00 |
The logic of Equalities with Uninterpreted Functions is used in the formal verification community mainly for proofs of equivalence: proving that two versions of a hardware design are the same, or that input and output of a compiler are semantically equivalent are two prominent examples of such proofs. We introduce a new decision procedure for this logic that generalizes two leading decision procedures that were published in the last few years: the Positive Equality approach suggested by Bryant et al. [Exploiting positive equality in a logic of equality with uninterpreted functions, in: Proc. 11th Intl. Conference on Computer Aided Verification (CAV'99), 1999], and the Range-Allocation algorithm suggested by Pnueli et al. [The small model property: how small can it be? Information and Computation 178 (1) (2002) 279-293]. Both of these methods reduce this logic to pure Equality Logic (without Uninterpreted Functions), and then, due to the small model property that such formulas have, find a small domain to each variable that is sufficiently large to maintain the satisfiability of the formula. The state-space spanned by these domains is then traversed with a BDD-based engine. The Positive Equality approach identifies terms that have a certain characteristic in the original formula (before the reduction to pure Equality Logic) and replaces them with unique constants. The Range-Allocation algorithm analyzes the structure of the formula after the reduction to equality logic with a graph-based procedure to allocate a small set of values to each variable. The former, therefore, has an advantage when a large subset of the terms can be replaced with constants, and disadvantage in the other cases. In this paper we essentially merge the two methods, while improving both with a more careful analysis of the formula's structure. We show that the new method is provably dominant over both methods, theoretically as well as empirically.