Efficient E-Matching for SMT Solvers

  • Authors:
  • Leonardo Moura;Nikolaj Bjørner

  • Affiliations:
  • Microsoft Research, One Microsoft Way, Redmond, WA, 98074, USA;Microsoft Research, One Microsoft Way, Redmond, WA, 98074, USA

  • Venue:
  • CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

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 treesthat 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.