Automated deduction by theory resolution
Journal of Automated Reasoning
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Journal of Automated Reasoning
A Generalization of Shostak's Method for Combining Decision Procedures
FroCoS '02 Proceedings of the 4th International Workshop on Frontiers of Combining Systems
CADE-18 Proceedings of the 18th International Conference on Automated Deduction
Simplify: a theorem prover for program checking
Journal of the ACM (JACM)
The IJCAR-2004 automated theorem proving competition
AI Communications
The design and implementation of VAMPIRE
AI Communications - CASC
Full functional verification of linked data structures
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Engineering DPLL(T) + Saturation
IJCAR '08 Proceedings of the 4th international joint conference on Automated Reasoning
(LIA) - Model Evolution with Linear Integer Arithmetic Constraints
LPAR '08 Proceedings of the 15th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning
Complete Instantiation for Quantified Formulas in Satisfiabiliby Modulo Theories
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
Incremental Instance Generation in Local Reasoning
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
CADE-22 Proceedings of the 22nd International Conference on Automated Deduction
On theorem proving for program checking: historical perspective and recent developments
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Automatic decidability and combinability
Information and Computation
Verification of semantic commutativity conditions and inverse operations on linked data structures
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Model evolution with equality modulo built-in theories
CADE'11 Proceedings of the 23rd international conference on Automated deduction
On Deciding Satisfiability by Theorem Proving with Speculative Inferences
Journal of Automated Reasoning
Building a calculus of data structures
VMCAI'10 Proceedings of the 11th international conference on Verification, Model Checking, and Abstract Interpretation
E-Matching with free variables
LPAR'12 Proceedings of the 18th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Theories, solvers and static analysis by abstract interpretation
Journal of the ACM (JACM)
Hierarchic superposition with weak abstraction
CADE'13 Proceedings of the 24th international conference on Automated Deduction
Array Theory of Bounded Elements and its Applications
Journal of Automated Reasoning
Hi-index | 0.00 |
First order logic provides a convenient formalism for describing a wide variety of verification conditions. Two main approaches to checking such conditions are pure first order automated theorem proving (ATP) and automated theorem proving based on satisfiability modulo theories (SMT). Traditional ATP systems are designed to handle quantifiers easily, but often have difficulty reasoning with respect to theories. SMT systems, on the other hand, have built-in support for many useful theories, but have a much more difficult time with quantifiers. One clue on how to get the best of both worlds can be found in the legacy system Simplify which combines built-in theory reasoning with quantifier instantiation heuristics. Inspired by Simplify and motivated by a desire to provide a competitive alternative to ATP systems, this paper describes a methodology for reasoning about quantifiers in SMT systems. We present the methodology in the context of the Abstract DPLL Modulo Theories framework. Besides adapting many of Simplify's techniques, we also introduce a number of new heuristics. Most important is the notion of instantiation levelwhich provides an effective mechanism for prioritizing and managing the large search space inherent in quantifier instantiation techniques. These techniques have been implemented in the SMT system CVC3. Experimental results show that our methodology enables CVC3 to solve a significant number of benchmarks that were not solvable with any previous approach.