Challenges for Fast Synthesis Procedures in SMT Andrew Reynolds - PowerPoint PPT Presentation
Challenges for Fast Synthesis Procedures in SMT Andrew Reynolds ARCADE Workshop August 6, 2017 Synthesis SMT solvers act as subroutines for automated synthesis For program snippets, planning, digital circuits, programming by examples,
Challenges for Fast Synthesis Procedures in SMT Andrew Reynolds ARCADE Workshop August 6, 2017
Synthesis • SMT solvers act as subroutines for automated synthesis • For program snippets, planning, digital circuits, programming by examples, … • More recently, SMT solvers act as stand-alone tools for synthesis • Leveraging their support for first-order quantification [Reynolds et al CAV2015]
Synthesis Conjectures f. x.P(f,x) There exists a function f for which property P holds for all x
Refutation-Based Synthesis in SMT ¬ f. x.P(f,x) ( negated synthesis conjecture)
Refutation-Based Synthesis in SMT ¬ f. x.P(f,x) SMT Solver SMT Solver Counterexample or Enumerative Guided SyGuS -Instantiation f = λ x.t 1 f = λ x.t 2 unsat unsat • Two approaches for refutation-based synthesis in SMT solvers [Reynolds et al CAV2015]
Refutation-Based Synthesis in SMT f. x.P(f,x) SMT Solver SMT Solver Counterexample or Enumerative Guided SyGuS -Instantiation f = λ x.t 1 f = λ x.t 2 unsat unsat Based on enumerative search (via syntax-guided synthesis) [Alur et al 2013]
Refutation-Based Synthesis in SMT f. x.P(f,x) SMT Solver SMT Solver Counterexample or Enumerative Guided SyGuS -Instantiation f = λ x.t 1 f = λ x.t 2 unsat unsat Based on first-order quantifier instantiation (focus of this talk)
Single Invocation Conjectures • Some synthesis conjectures are essentially first-order : f. xy. f(x,y) x f(x,y) y ( f(x,y) =x f(x,y) =y) “ f(x,y) is the maximum of x and y”
Single Invocation Conjectures f. xy. f(x,y) x f(x,y) y ( f(x,y) =x f(x,y) =y) Int Int Int All occurrence of f are in terms of the form f(x,y) ⇒ “single invocation” synthesis conjectures
Single Invocation Conjectures f. xy. f(x,y) x f(x,y) y (f(x,y)=x f(x,y)=y) Int Int Int
Single Invocation Conjectures f. xy. f(x,y) x f(x,y) y (f(x,y)=x f(x,y)=y) Int Int Int Anti-skolemize xy. z. f(x,y) x f(x,y) y (f(x,y)=x f(x,y)=y) z z z z Int [Reynolds et al CAV2015]
Single Invocation Conjectures f. xy. f(x,y) x f(x,y) y (f(x,y)=x f(x,y)=y) Int Int Int xy. z. f(x,y) x f(x,y) y (f(x,y)=x f(x,y)=y) z z z z Int “for each x , y , there exists a return value z that is the maximum of x and y ” [Reynolds et al CAV2015]
Single Invocation Conjectures f. xy. f(x,y) x f(x,y) y (f(x,y)=x f(x,y)=y) Int Int Int xy. z. f(x,y) x f(x,y) y (f(x,y)=x f(x,y)=y) z z z z Simplify Int xy. z. ( z x z y (z=x z=y) [Reynolds et al CAV2015]
Single Invocation Conjectures f. xy. f(x,y) x f(x,y) y (f(x,y)=x f(x,y)=y) Int Int Int xy. z. f(x,y) x f(x,y) y (f(x,y)=x f(x,y)=y) z z z z Int xy. z. ( z x z y (z=x z=y) First-order linear arithmetic ⇒ Solvable by first-order ∀ -instantiation [Reynolds et al CAV2015]
Single Invocation Synthesis in SMT f. xy. f(x,y) x f(x,y) y (f(x,y)=x f(x,y)=y) LIA SAT Solver -instantiation
Single Invocation Synthesis in SMT f. xy.isMax(f(x,y),x,y) LIA SAT Solver -instantiation
Single Invocation Synthesis in SMT f. xy.isMax(f(x,y),x,y) Translate to first-order z. isMax(z,x,y) LIA SAT Solver -instantiation
Single Invocation Synthesis in SMT f. xy.isMax(f(x,y),x,y) z. isMax(z,x,y) z. isMax(z,x,y) isMax( x ,x,y) Instantiate z x , z y z. isMax(z,x,y) isMax( y ,x,y) LIA SAT Solver -instantiation
Single Invocation Synthesis in SMT f. xy.isMax(f(x,y),x,y) z. isMax(z,x,y) z. isMax(z,x,y) x<y Simplify z. isMax(z,x,y) y<x LIA SAT Solver -instantiation
Single Invocation Synthesis in SMT f. xy.isMax(f(x,y),x,y) z. isMax(z,x,y) z. isMax(z,x,y) x<y z. isMax(z,x,y) y<x … LIA SAT Solver -instantiation unsat
Single Invocation Synthesis in SMT f. xy.isMax(f(x,y),x,y) z. isMax(z,x,y) z. isMax(z,x,y) x<y z. isMax(z,x,y) y<x LIA SAT Solver -instantiation Solution for f can be constructed from unsat unsatisfiable core of instantiations
Single Invocation Synthesis in SMT f. xy.isMax(f(x,y),x,y) z. isMax(z,x,y) z. isMax(z,x,y) isMax(x,x,y) z. isMax(z,x,y) isMax(y,x,y) LIA SAT Solver -instantiation λ xy.? unsat
Single Invocation Synthesis in SMT f. xy.isMax(f(x,y),x,y) z. isMax(z,x,y) z. isMax(z,x,y) isMax( x ,x,y) z. isMax(z,x,y) isMax(y,x,y) LIA SAT Solver -instantiation λ xy.ite(isMax( x ,x,y), x ,?) unsat
Single Invocation Synthesis in SMT f. xy.isMax(f(x,y),x,y) z. isMax(z,x,y) z. isMax(z,x,y) isMax(x,x,y) z. isMax(z,x,y) isMax( y ,x,y) LIA SAT Solver -instantiation λ xy.ite(isMax(x,x,y),x, y ) unsat
Single Invocation Synthesis in SMT f. xy.isMax(f(x,y),x,y) z. isMax(z,x,y) z. isMax(z,x,y) isMax(x,x,y) z. isMax(z,x,y) isMax(y,x,y) LIA SAT Solver -instantiation λ xy.ite(( x x x y (x=x x=y)),x,y) unsat Expand
Single Invocation Synthesis in SMT f. xy.isMax(f(x,y),x,y) z. isMax(z,x,y) z. isMax(z,x,y) isMax(x,x,y) z. isMax(z,x,y) isMax(y,x,y) LIA SAT Solver -instantiation λ xy.ite(x y,x,y) Simplify unsat
Single Invocation Synthesis in SMT f. xy.isMax(f(x,y),x,y) z. isMax(z,x,y) z. isMax(z,x,y) isMax(x,x,y) z. isMax(z,x,y) isMax(y,x,y) LIA SAT Solver -instantiation λ xy.ite(x y,x,y) unsat Desired function
Single Invocation Synthesis in SMT f. xy.isMax(f(x,y),x,y) z. isMax(z,x,y) z. isMax(z,x,y) isMax( x ,x,y) How did we choose z. isMax(z,x,y) isMax( y ,x,y) these instances? LIA SAT Solver -instantiation
Single Invocation Synthesis in SMT f. xy.isMax(f(x,y),x,y) z. isMax(z,x,y) z. isMax(z,x,y) isMax( x ,x,y) How did we choose z. isMax(z,x,y) isMax( y ,x,y) these instances? LIA SAT Solver -instantiation Use counterexample-guided quantifier instantiation (CEGQI) Variants used in [Monniaux 2010, Komuravelli et al 2014, Reynolds et al 2015, Dutertre 2015, Bjorner/Janota 2016, Fedyukovich et al 2016, Preiner et al 2017]
Counterexample-Guided -Instantiation Quantifier Elimination Procedures ( ) ? Instantiation-Based procedures for formulas Synthesis procedures for single-invocation properties
Counterexample-Guided -Instantiation • SMT+ linear arithmetic [Monniaux 2010, Reynolds et al 2015, Dutertre 2015, Bjorner/Janota 2016] • Based on maximal lower (minimal upper) bounds Analogous to [Loos+Wiespfenning 93] • Based on interior point method: Analogous to [Ferrante+Rackoff 79] • For integers: based on maximal lower (minimal upper) bounds (+ c ) Analogous to [Cooper 72] • SMT + BV, QBF, finite domains [Wintersteiger et al 2013, Rabe et al 2016, Preiner et al 2017] • Based on model value, SyGuS, others? • SMT + Strings, sets, floating points, datatypes • ??? Finite instantiation strategy ⇔ sound and complete synthesis procedure for s.i.
Counterexample-Guided -Instantiation • SMT+ linear arithmetic [Monniaux 2010, Reynolds et al 2015, Dutertre 2015, Bjorner/Janota 2016] • Based on maximal lower (minimal upper) bounds Analogous to [Loos+Wiespfenning 93] • Based on interior point method: Analogous to [Ferrante+Rackoff 79] • For integers: based on maximal lower (minimal upper) bounds (+ c ) Analogous to [Cooper 72] • SMT + BV, QBF, finite domains [Wintersteiger et al 2013, Rabe et al 2016, Preiner et al 2017] • Based on model value, SyGuS, others? CHALLENGE #1: • SMT + Strings, sets, floating points, datatypes How do we develop instantiation • ??? procedures for new SMT theories ? Finite instantiation strategy ⇔ sound and complete synthesis procedure for s.i.
Comparison of Synthesis Approaches • SMT + ∀ -instantiation • Enumerative Search Pro: Very fast Con: Typically very slow Pro: Complete for (in)feasibility Con: Cannot show infeasibility Con: Non-optimal solutions Pro: Optimal (shortest) solutions Con: Only for single-invocation Pro: Applies to all second-order conjectures conjectures
Comparison of Synthesis Approaches • SMT + ∀ -instantiation • Enumerative Search Pro: Very fast Con: Typically very slow Pro: Complete for (in)feasibility Con: Cannot show infeasibility Con: Non-optimal solutions Pro: Optimal (shortest) solutions Con: Only for single-invocation Pro: Applies to all second-order conjectures conjectures CHALLENGES
Shorter Solutions via Proof Analysis unsat x>y x+1>y … x+y>3 x+y+1>3 … … … … f = λ x.ite(x>y x+1>y,t 1 ,t 2 )
Recommend
More recommend
Explore More Topics
Stay informed with curated content and fresh updates.