Efficient E-Matching for SMT Solvers

  • Leonardo de Moura
  • Nikolaj Bjørner
Conference paper

DOI: 10.1007/978-3-540-73595-3_13

Part of the Lecture Notes in Computer Science book series (LNCS, volume 4603)
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

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Leonardo de Moura
    • 1
  • Nikolaj Bjørner
    • 1
  1. 1.Microsoft Research, One Microsoft Way, Redmond, WA, 98074USA

Personalised recommendations