1/15
Revisiting Enumerative Instantiation
Andrew Reynolds1, Haniel Barbosa1,2 and Pascal Fontaine2
1University of Iowa, Iowa City, U.S.A. 2University of Lorraine, CNRS, Inria, LORIA, Nancy, France
Revisiting Enumerative Instantiation Andrew Reynolds 1 , Haniel - - PowerPoint PPT Presentation
Revisiting Enumerative Instantiation Andrew Reynolds 1 , Haniel Barbosa 1 , 2 and Pascal Fontaine 2 1 University of Iowa, Iowa City, U.S.A. 2 University of Lorraine, CNRS, Inria, LORIA, Nancy, France TACAS 2018/Matryoshka 2018/SMT 2018 1/15
1/15
1University of Iowa, Iowa City, U.S.A. 2University of Lorraine, CNRS, Inria, LORIA, Nancy, France
1/15
1/15
1/15
2/15
◮ Combination with other instantiation strategies ◮ Implementation
C
s i s t e n t * C
p l e t e * W e l l D
u m e n t e d * E a s y t
e u s e *
*
E v a l u a t e d
* T A C A S *
A r t i f a c t
* A E C
2/15
2/15
SMT formula Model UNSAT
SMT solver Instantiation module
Instance Assignment
Ground SMT solver
3/15
3/15
i=1 Si
4/15
4/15
5/15
5/15
6/15
◮ Inherently incomplete
◮ Too many instances ◮ Butterfly effect
◮ Complete for many fragments, but slow convergence for
◮ Better suited for model finding
7/15
7/15
7/15
◮ Instantiate with all possible terms in the language
7/15
◮ Instantiate with all possible terms in the language
8/15
8/15
8/15
SMT formula Model UNSAT
SMT solver Instantiation module
Instance Assignment
Ground SMT solver
9/15
9/15
10/15
◮ No model building ◮ No model checking
11/15
12/15
13/15
13/15
14/15
15/15
◮ Significantly increases success rate ◮ Outperforms existing implementations of MBQI for UNSAT ◮ Can be used for SAT in the empty theory
16/15
17/15
◮ E ∪ Q = {a ≃ b, f (a) ≃ c} ∪ {P(f (x))} ◮ a, b, c, x : τ ◮ f : τ → τ and P : τ → Bool ◮ This is equivalent to
◮ a1, b1, x1 : τ1 ◮ c2 : τ2 ◮ f12 : τ1 → τ2 and P : τ2 → Bool ◮ u would derive e.g. x → c for E ∪ Q, while for Es ∪ Qs the
18/15
◮ Extension to incorporate Boolean structure ◮ Extension to other theories through theory-specific rewriting
19/15
i=1 ti ≺ maxn i=1 si, or
i=1 ti = maxn i=1 si and
◮ Instantiate in order with t1, . . . , tn ◮ Then choose new non-congruent term t ∈ T(E) and have
20/15
21/15