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

### Citations

1457 | Space/time trade-offs in hash coding with allowable errors
- Bloom
- 1970
(Show Context)
Citation Context ...a pattern p if it is not relevant for any pc-pair or pp-pair of p. The cost of this optimizationis minimized using approximated sets, as they are called in [2], these are also known as Bloom filters =-=[24]-=-, which are like real sets except that membership and overlap tests may return false positives. Each equivalence class representative t is associated with two approximated sets of function symbols: fu... |

445 | The Spec# Programming System: An Overview
- Barnett, Leino, et al.
- 2005
(Show Context)
Citation Context ...lready included patterns for generating ground instances of axioms. These approaches are also tightly coupled with software verification applications, as found in for instance ESC/Java [9] and Boogie =-=[10,11]-=-. This paper introduces algorithms that identify matches on E-graphs efficiently and incrementally. In particular, we introduce an index that works on Egraphs, called E-matching code trees that combin... |

352 | Simplify: A theorem prover for program checking
- Detlefs, Nelson, et al.
- 2003
(Show Context)
Citation Context ...ries that are not already equipped with ground decision procedures. A well known approach for incorporating quantifier reasoning with ground decision procedures is used in the Simplify theorem prover =-=[2]-=-. Simplify uses an E-matching algorithm that works against an E-graph to instantiate quantified variables, where the E-matching problem is defined as: input: A set of ground equations E, a ground term... |

297 |
On the complexity of derivation in the propositional calculus
- Tseitin
- 1968
(Show Context)
Citation Context ...anch. DPLL(T) based solvers do not have this property, as the search assigns a boolean value to potentially all atoms appearing in a goal. Forexample, when clausifying ℓ1 ∨ (ℓ2 ∧ ℓ3) using a Tseitin =-=[25]-=- style algorithm we obtain the set of clauses: {ℓ1, ℓaux}, {ℓaux, ¬ℓ2, ¬ℓ3}, {ℓ2, ¬ℓaux}, {ℓ3, ¬ℓaux} Now, suppose that ℓ1 is assigned true. In this case, ℓ2 and ℓ3 are clearly irrelevant and truth as... |

247 |
Warren's Abstract Machine --- A Tutorial Reconstruction
- Ait-Kaci
- 1991
(Show Context)
Citation Context ...tomated deduction to compile terms into code that can be efficiently executed at retrieval time. The compiler produces code for a real machine, or for a virtual machine as in the case of Prolog’s WAM =-=[19]-=-. In this section, we propose an abstract machine for E-matching, its instructions, compilation process, and interpretation. Memory of the abstract machine is divided in the following way: – register ... |

204 |
CVC Lite: A new implementation of the cooperating validity checker
- Barrett, Berezin
- 2004
(Show Context)
Citation Context ...ce relations, is modified during a backtracking search. Each modification to the E-graph may enable new instantiations. E-matching is also used in the several other state-of-the-art SMT solvers:CVC3 =-=[3]-=-, Fx7 [4], Verifun [5], Yices [6], Zap [7]. The Stanford Pascal Verifier [8] already included patterns for generating ground instances of axioms. These approaches are also tightly coupled with softwar... |

182 | A Fast Linear-Arithmetic Solver for DPLL(T
- Dutertre, Moura
- 2006
(Show Context)
Citation Context ...a backtracking search. Each modification to the E-graph may enable new instantiations. E-matching is also used in the several other state-of-the-art SMT solvers:CVC3 [3], Fx7 [4], Verifun [5], Yices =-=[6]-=-, Zap [7]. The Stanford Pascal Verifier [8] already included patterns for generating ground instances of axioms. These approaches are also tightly coupled with software verification applications, as f... |

121 | Automated Deduction by Theory Resolution
- Stickel
- 1985
(Show Context)
Citation Context ...producing inferences. However, few implementations and experiments have been reported in these systems for reasoning in the context of theories, despite long running attention [13]. Theory resolution =-=[14]-=- provides a framework for adding theory reasoning (as for instance, unification modulo associativity and commutativity) to such systems. In practice, some decision procedures are included in SNARK, in... |

116 | DPLL(T) fast decision procedures
- Ganzinger, Hagen, et al.
- 2004
(Show Context)
Citation Context ...ly match patterns when the E-graph is updated. Experimental results show substantial performance improvements over existing state-of-the-art SMT solvers. 1 Introduction SMT solvers based on a DPLL(T) =-=[1]-=- framework have proven highly scalable, efficient and suitable for integrating theory reasoning. However, for numerous applications from program analysis and verification, an integration of decision p... |

106 |
Techniques for program verification
- Nelson
- 1981
(Show Context)
Citation Context ... the E-graph may enable new instantiations. E-matching is also used in the several other state-of-the-art SMT solvers:CVC3 [3], Fx7 [4], Verifun [5], Yices [6], Zap [7]. The Stanford Pascal Verifier =-=[8]-=- already included patterns for generating ground instances of axioms. These approaches are also tightly coupled with software verification applications, as found in for instance ESC/Java [9] and Boogi... |

82 | BoogiePL: A typed procedural language for checking object-oriented programs
- DeLine, Leino
- 2005
(Show Context)
Citation Context ...lready included patterns for generating ground instances of axioms. These approaches are also tightly coupled with software verification applications, as found in for instance ESC/Java [9] and Boogie =-=[10,11]-=-. This paper introduces algorithms that identify matches on E-graphs efficiently and incrementally. In particular, we introduce an index that works on Egraphs, called E-matching code trees that combin... |

79 |
C.: The satisfiability modulo theories library (smt-lib
- Barrett, Stump, et al.
- 2013
(Show Context)
Citation Context ...eout was set to 10 minutes. We compared our prover, Z3, against CVC3 1.0, Simplify, Yices 1.0, and Zap 2.0. The comparison used more than 3000 publically available benchmarks. It includes the SMT-LIB =-=[27]-=- AUFLIA/simplify, ESC/Java, and Boogie benchmarks. 1 The first set is in SMT-LIB format, and the other two in Simplify format. The most challenging benchmarks from the SMT-LIB AUFLIA benchmarks were d... |

58 |
Complexity of Finitely Presented Algebras
- Kozen
(Show Context)
Citation Context ...aph terms that may potentially match patterns after modifications in the E-graph. The choice and design of these indices reflect upon measured runtime overheads. While E-matching is in theory NP-hard =-=[12]-=-, and the number of matches can be exponential in the size of the E-graph, the practical overhead of using E-matching for quantifier instantiation turns out to be searching and maintaining sets of pat... |

39 |
The anatomy of Vampire: implementing bottom-up procedures with code trees
- Voronkov
- 1995
(Show Context)
Citation Context ...racking points. 4 E-matching Code Trees The time spent on matching patterns with shared structures can be minimized by combining different code sequences in a code tree. Code trees were introduced in =-=[20]-=- in the context of saturation based theorem provers. They are used for forward subsumption and forward demodulation in the Vampire theoremcompile(f(p1, . . . , pn)) = init(f,compile({1 ↦→ p1, . . . ,... |

37 |
Vampire 1.1 (system description
- Riazanov, Voronkov
- 2001
(Show Context)
Citation Context ...13 : yield(5,6) n14 : choose(nil, n15), n15 : bind(6, g,7, n16), n16 : compare(5, 7, n17), n17 : yield(5, 8) Fig.4. Code tree for {f(x, g(a,y)), f(x, g(x,y)), f(h(x, y),b), f(h(x, g(x,y)),b)}. prover =-=[21]-=-. The code trees presented in this section are similar to substitution trees[22], also used in saturation based theorem provers. The key advantage of using code and substitution trees is that matching... |

30 | On a rewriting approach to satisfiability procedures: extension, combination of theories and an experimental appraisal
- Armando, Bonacina, et al.
- 2005
(Show Context)
Citation Context ...nd theories used in the Amphion system [15]. Recently [16] investigated an integration of CVC-lite and SPASS, and combinations with super-position calculi and DPLL and BDDs are investigated in haRVey =-=[17]-=-. 2 Background Let Σ be a signature consisting of a set of function symbols, and V be a set of variables. Each function symbol f is associated with a nonegative integer, called the arity of f, denoted... |

16 | M.: Zap: Automated theorem proving for software analysis
- Ball, Lahiri, et al.
- 2005
(Show Context)
Citation Context ...cking search. Each modification to the E-graph may enable new instantiations. E-matching is also used in the several other state-of-the-art SMT solvers:CVC3 [3], Fx7 [4], Verifun [5], Yices [6], Zap =-=[7]-=-. The Stanford Pascal Verifier [8] already included patterns for generating ground instances of axioms. These approaches are also tightly coupled with software verification applications, as found in f... |

11 | An explicating theorem prover for quantified formulas
- Flanagan, Joshi, et al.
- 2004
(Show Context)
Citation Context ...ied during a backtracking search. Each modification to the E-graph may enable new instantiations. E-matching is also used in the several other state-of-the-art SMT solvers:CVC3 [3], Fx7 [4], Verifun =-=[5]-=-, Yices [6], Zap [7]. The Stanford Pascal Verifier [8] already included patterns for generating ground instances of axioms. These approaches are also tightly coupled with software verification applica... |

8 |
Automatic theorem proving with built-in theories including equality, partial ordering, and sets
- Slagle
- 1972
(Show Context)
Citation Context ...the main mechanisms for producing inferences. However, few implementations and experiments have been reported in these systems for reasoning in the context of theories, despite long running attention =-=[13]-=-. Theory resolution [14] provides a framework for adding theory reasoning (as for instance, unification modulo associativity and commutativity) to such systems. In practice, some decision procedures a... |

6 | P.: Context trees
- Ganzinger, Nieuwenhuis, et al.
- 2001
(Show Context)
Citation Context ...t also store the quantifier that should be instantiated with the yielded substitution, this information is suppressed to simplify the exposition. Our code trees are also very similar to context trees =-=[23]-=-. The main differences with other code, substitution, and context trees, include the use of a stack to handle both backtracking and the branching that arize from matching in the context of an E-graph.... |

3 |
Using Decision Procedures to Accelerate Domain-Specific Deductive Synthesis Systems
- Baalen, Roach
- 1999
(Show Context)
Citation Context ...modulo associativity and commutativity) to such systems. In practice, some decision procedures are included in SNARK, including Allen’s Interval Temporal Logic and theories used in the Amphion system =-=[15]-=-. Recently [16] investigated an integration of CVC-lite and SPASS, and combinations with super-position calculi and DPLL and BDDs are investigated in haRVey [17]. 2 Background Let Σ be a signature con... |

3 | X.: A two-tier technique for supporting quantifiers in a lazily proof-explicating theorem prover. In: TACAS. (2005) 334–348 LEMMA 1. Given a syntactic OIA α, b Π ⇒ Π α . Proof. We can view b Π as Π α conjoined with instantiations of Π for r ∈ R \ R or (r,
- Leino, Musuvathi, et al.
(Show Context)
Citation Context ...ffect of producing new clauses containing new atoms into the search space. Retaining these clauses overbacktracking is useless if the new clauses were not helpful in closing the branch. A two-tiered =-=[26]-=- combination of SAT solvers address this problem by using different solvers after (a lazy) quantifier instantiation. Work that was potentially useful for other branches has to be reproduced using othe... |

2 | Fast quantifier reasoning with lazy proof explication
- Moskal, Lopuszański
- 2006
(Show Context)
Citation Context ...ons, is modified during a backtracking search. Each modification to the E-graph may enable new instantiations. E-matching is also used in the several other state-of-the-art SMT solvers:CVC3 [3], Fx7 =-=[4]-=-, Verifun [5], Yices [6], Zap [7]. The Stanford Pascal Verifier [8] already included patterns for generating ground instances of axioms. These approaches are also tightly coupled with software verific... |

2 | Advanced indexing operations on substitution trees
- Graf, Meyer
- 1996
(Show Context)
Citation Context ..., 7, n17), n17 : yield(5, 8) Fig.4. Code tree for {f(x, g(a,y)), f(x, g(x,y)), f(h(x, y),b), f(h(x, g(x,y)),b)}. prover [21]. The code trees presented in this section are similar to substitution trees=-=[22]-=-, also used in saturation based theorem provers. The key advantage of using code and substitution trees is that matching work common to multiple patterns is “factored out.” This advantage results in s... |