Efficient validity checking for processor verification
ICCAD '95 Proceedings of the 1995 IEEE/ACM international conference on Computer-aided design
Symbolic timing verification of timing diagrams using Presburger formulas
DAC '97 Proceedings of the 34th annual Design Automation Conference
GRASP: A Search Algorithm for Propositional Satisfiability
IEEE Transactions on Computers
Proceedings of the 36th annual ACM/IEEE Design Automation Conference
On integrating constraint propagation and linear programming for combinatorial optimization
AAAI '99/IAAI '99 Proceedings of the sixteenth national conference on Artificial intelligence and the eleventh Innovative applications of artificial intelligence conference innovative applications of artificial intelligence
Simplification by Cooperating Decision Procedures
ACM Transactions on Programming Languages and Systems (TOPLAS)
A machine program for theorem-proving
Communications of the ACM
Chaff: engineering an efficient SAT solver
Proceedings of the 38th annual Design Automation Conference
BDD Based Procedures for a Theory of Equality with Uninterpreted Functions
Formal Methods in System Design
PPCP '94 Proceedings of the Second International Workshop on Principles and Practice of Constraint Programming
Verification Using Uninterpreted Functions and Finite Instantiations
FMCAD '96 Proceedings of the First International Conference on Formal Methods in Computer-Aided Design
A DPLL-Based Calculus for Ground Satisfiability Modulo Theories
JELIA '02 Proceedings of the European Conference on Logics in Artificial Intelligence
Deciding Equality Formulas by Small Domains Instantiations
CAV '99 Proceedings of the 11th International Conference on Computer Aided Verification
The Quest for Efficient Boolean Satisfiability Solvers
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 hybrid SAT-based decision procedure for separation logic with uninterpreted functions
Proceedings of the 40th annual Design Automation Conference
RTL-Datapath Verification using Integer Linear Programming
ASP-DAC '02 Proceedings of the 2002 Asia and South Pacific Design Automation Conference
Automatic discovery of API-level exploits
Proceedings of the 27th international conference on Software engineering
Temporal constraint reasoning with preferences
IJCAI'01 Proceedings of the 17th international joint conference on Artificial intelligence - Volume 1
Building small equality graphs for deciding equality logic with uninterpreted functions
Information and Computation
An online proof-producing decision procedure for mixed-integer linear arithmetic
TACAS'03 Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems
A SAT-based decision procedure for mixed logical/integer linear problems
CPAIOR'05 Proceedings of the Second international conference on Integration of AI and OR Techniques in Constraint Programming for Combinatorial Optimization Problems
A scalable method for solving satisfiability of integer linear arithmetic logic
SAT'05 Proceedings of the 8th international conference on Theory and Applications of Satisfiability Testing
An incremental and layered procedure for the satisfiability of linear arithmetic logic
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
DPLL(T) with exhaustive theory propagation and its application to difference logic
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Proof-producing congruence closure
RTA'05 Proceedings of the 16th international conference on Term Rewriting and Applications
Electronic Notes in Theoretical Computer Science (ENTCS)
Improved bounded model checking for the universal fragment of CTL
Journal of Computer Science and Technology
AB'07 Proceedings of the 2nd international conference on Algebraic biology
A randomized algorithm for BBCSPs in the prover-verifier model
ICTAC'07 Proceedings of the 4th international conference on Theoretical aspects of computing
Channel-based coordination via constraint satisfaction
Science of Computer Programming
A system for solving constraint satisfaction problems with SMT
SAT'10 Proceedings of the 13th international conference on Theory and Applications of Satisfiability Testing
Hi-index | 0.00 |
In this paper we present a review of SAT-based approaches for building scalable and efficient decision procedures for quantifier-free first-order logic formulas in one or more decidable theories, known as Satisfiability Modulo Theories (SMT) problems. As applied to different system verification problems, SMT problems comprise of different theories including fragments of elementary theory of numbers, the theory of arrays, the theory of list structures, etc. In this paper we focus on different DPLL-style satisfiability procedures for decidable fragments of the theory of integers. Leveraging the advances made in SAT solvers in the past decade, we introduce several SAT-based SMT solving methods that in many applications have outperformed classical decision methods. Aside from the classical method of translating the SMT formula to a purely Boolean problem, in recent methods, a SAT solver is utilized to serve as the “glue” that ties together the different theory atoms and forms the basis for reasoning and learning within and across them. Several methods have been developed to provide a combination framework for implications to flow through the theory solvers and to possibly activate other theory atoms based on the current assignments. Similarly, conflict-based learning is also extended to enable the creation of learned clauses comprising of the combination of theory atoms. Additional methods unique to one or more types of theory atoms have also been proposed that learn more expressive constraints and significantly increase the pruning power of these combination schemes. We will describe several combination strategies and their impact on scalability and performance of the overall solver in different settings and applications.