Efficient E-Matching for SMT Solvers
- Cite this paper as:
- de Moura L., Bjørner N. (2007) Efficient E-Matching for SMT Solvers. In: Pfenning F. (eds) Automated Deduction – CADE-21. CADE 2007. Lecture Notes in Computer Science, vol 4603. Springer, Berlin, Heidelberg
Satisfiability Modulo Theories (SMT) solvers have proven highly scalable, efficient and suitable for integrating theory reasoning. However, for numerous applications from program analysis and verification, the ground fragment is insufficient, as proof obligations often include quantifiers. A well known approach for quantifier reasoning uses a matching algorithm that works against an E-graph to instantiate quantified variables. This paper introduces algorithms that identify matches on E-graphs incrementally and efficiently. In particular, we introduce an index that works on E-graphs, called E-matching code trees that combine features of substitution and code trees, used in saturation based theorem provers. E-matching code trees allow performing matching against several patterns simultaneously. The code trees are combined with an additional index, called the inverted path index, which filters E-graph terms that may potentially match patterns when the E-graph is updated. Experimental results show substantial performance improvements over existing state-of-the-art SMT solvers.
Unable to display preview. Download preview PDF.