## Efficient E-matching for SMT solvers (2007)

### Cached

### Download Links

Citations: | 35 - 7 self |

### BibTeX

@TECHREPORT{Moura07efficiente-matching,

author = {Leonardo de Moura and Nikolaj Bjørner},

title = { Efficient E-matching for SMT solvers},

institution = {},

year = {2007}

}

### Years of Citing Articles

### OpenURL

### Abstract

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.