smt solving for ai planning theory tools and applications

SMT Solving for AI Planning: Theory, Tools and Applications Erika - PowerPoint PPT Presentation

SMT Solving for AI Planning: Theory, Tools and Applications Erika Abrah am Francesco Leofante RWTH Aachen University, Germany RWTH Aachen University, Germany University of Genoa, Italy ICAPS 2018 Delft, The Netherlands 25 June 2018


  1. SMT-LIB logics Source: http://smtlib.cs.uiowa.edu/logics.shtml E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 13 / 74

  2. SMT-LIB logics Quantifier-free equality logic with uninterpreted functions ( a = c ∧ b = d ) → f ( a , b ) = f ( c , d ) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 13 / 74

  3. SMT-LIB logics Quantifier-free bit-vector arithmetic ( a | b ) ≤ ( a & b ) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 13 / 74

  4. SMT-LIB logics Quantifier-free array theory i = j → read ( write ( a , i , v ) , j ) = v E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 13 / 74

  5. SMT-LIB logics Quantifier-free integer/rational difference logic x − y ∼ 0 , ∼∈ { <, ≤ , = , ≥ , > } E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 13 / 74

  6. SMT-LIB logics (Quantifier-free) real/integer linear arithmetic 3 x + 7 y = 8 E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 13 / 74

  7. SMT-LIB logics (Quantifier-free) real/integer non-linear arithmetic x 2 + 2 xy + y 2 ≥ 0 E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 13 / 74

  8. SMT-LIB logics Combined theories 2 f ( x ) + 5 y > 0 E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 13 / 74

  9. Outline SMT solving Historical notes I II SAT and SMT solving III Some applications outside planning SMT solving for planning IV SMT and planning Application: optimal planning with OMT V Concluding remarks E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 14 / 74

  10. Strategic combinations of decision procedures E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 15 / 74

  11. Strategic combinations of decision procedures ? + = E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 15 / 74

  12. Strategic combinations of decision procedures ? + = E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 15 / 74

  13. Strategic combinations of decision procedures ! + = E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 15 / 74

  14. DPLL SAT solving with conflict-directed clause learning Assumption: propositional logic formula in conjunctive normal form (CNF) c 1 : ( ¬ a ∨ b ) ∧ c 2 : ( ¬ b ∨ ¬ c ) ∧ c 3 : ( ¬ b ∨ c ) ∧ . . . E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 16 / 74

  15. DPLL SAT solving with conflict-directed clause learning Assumption: propositional logic formula in conjunctive normal form (CNF) Ingredients: Enumeration c 1 : ( ¬ a ∨ b ) ∧ 0 1 . . . c 2 : ( ¬ b ∨ ¬ c ) ∧ 1 0 c 3 : ( ¬ b ∨ c ) ∧ 1 0 1 0 . . . E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 16 / 74

  16. DPLL SAT solving with conflict-directed clause learning Assumption: propositional logic formula in conjunctive normal form (CNF) Ingredients: Enumeration c 1 : ( ¬ a ∨ b ) ∧ a 0 1 . . . b c 2 : ( ¬ b ∨ ¬ c ) ∧ 1 0 c 3 : ( ¬ b ∨ c ) ∧ c 1 0 1 0 . . . 0 E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 16 / 74

  17. DPLL SAT solving with conflict-directed clause learning Assumption: propositional logic formula in conjunctive normal form (CNF) Ingredients: Enumeration c 1 : ( ¬ a ∨ b ) ∧ a 0 1 . . . b c 2 : ( ¬ b ∨ ¬ c ) ∧ 1 0 c 3 : ( ¬ b ∨ c ) ∧ c 1 0 1 0 . . . 0 0 E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 16 / 74

  18. DPLL SAT solving with conflict-directed clause learning Assumption: propositional logic formula in conjunctive normal form (CNF) Ingredients: Enumeration c 1 : ( ¬ a ∨ b ) ∧ a 0 1 . . . b c 2 : ( ¬ b ∨ ¬ c ) ∧ 1 0 c 3 : ( ¬ b ∨ c ) ∧ c c 1 0 1 0 . . . 0 0 0 E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 16 / 74

  19. DPLL SAT solving with conflict-directed clause learning Assumption: propositional logic formula in conjunctive normal form (CNF) Ingredients: Enumeration c 1 : ( ¬ a ∨ b ) ∧ a 0 1 . . . b c 2 : ( ¬ b ∨ ¬ c ) ∧ 1 0 c 3 : ( ¬ b ∨ c ) ∧ c c 1 0 1 0 . . . 0 0 0 0 E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 16 / 74

  20. DPLL SAT solving with conflict-directed clause learning Assumption: propositional logic formula in conjunctive normal form (CNF) Ingredients: Enumeration Ingredients: Enumeration + Boolean constraint propagation c 1 : ( ¬ a ∨ b ) ∧ 0 1 . . . c 2 : ( ¬ b ∨ ¬ c ) ∧ 1 0 c 3 : ( ¬ b ∨ c ) ∧ 1 0 1 0 . . . E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 16 / 74

  21. DPLL SAT solving with conflict-directed clause learning Assumption: propositional logic formula in conjunctive normal form (CNF) Ingredients: Enumeration Ingredients: Enumeration + Boolean constraint propagation c 1 : ( ¬ a ∨ b ) ∧ a 0 1 . . . c 2 : ( ¬ b ∨ ¬ c ) ∧ 1 0 c 3 : ( ¬ b ∨ c ) ∧ 1 0 1 0 . . . E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 16 / 74

  22. DPLL SAT solving with conflict-directed clause learning Assumption: propositional logic formula in conjunctive normal form (CNF) Ingredients: Enumeration Ingredients: Enumeration + Boolean constraint propagation c 1 : ( ¬ a ∨ b ) ∧ a 0 1 . . . b c 2 : ( ¬ b ∨ ¬ c ) ∧ 1 0 c 3 : ( ¬ b ∨ c ) ∧ 0 1 0 . . . E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 16 / 74

  23. DPLL SAT solving with conflict-directed clause learning Assumption: propositional logic formula in conjunctive normal form (CNF) Ingredients: Enumeration Ingredients: Enumeration + Boolean constraint propagation c 1 : ( ¬ a ∨ b ) ∧ a 0 1 . . . b c 2 : ( ¬ b ∨ ¬ c ) ∧ 1 0 c 3 : ( ¬ b ∨ c ) ∧ c 0 1 0 . . . 0 0 E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 16 / 74

  24. DPLL SAT solving with conflict-directed clause learning Assumption: propositional logic formula in conjunctive normal form (CNF) Ingredients: Enumeration Ingredients: Enumeration + Boolean constraint propagation Ingredients: Enumeration + Boolean constraint propagation + Resolution c 1 : ( ¬ a ∨ b ) ∧ a 0 1 . . . b c 2 : ( ¬ b ∨ ¬ c ) ∧ 1 0 c 3 : ( ¬ b ∨ c ) ∧ c 0 1 0 . . . 0 0 E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 16 / 74

  25. Resolution Assumption: propositional logic formula in conjunctive normal form (CNF) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 17 / 74

  26. Resolution Assumption: propositional logic formula in conjunctive normal form (CNF) Derivation rule form: antecedent 1 . . . antecedent n Rule name consequent E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 17 / 74

  27. Resolution Assumption: propositional logic formula in conjunctive normal form (CNF) Derivation rule form: antecedent 1 . . . antecedent n Rule name consequent ( l ′ 1 ∨ . . . ∨ l ′ ( l 1 ∨ . . . ∨ l n ∨ x ) m ∨ ¬ x ) Rule res ( l 1 ∨ . . . ∨ l n ∨ l ′ 1 ∨ . . . ∨ l ′ m ) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 17 / 74

  28. Resolution Assumption: propositional logic formula in conjunctive normal form (CNF) Derivation rule form: antecedent 1 . . . antecedent n Rule name consequent ( l ′ 1 ∨ . . . ∨ l ′ ( l 1 ∨ . . . ∨ l n ∨ x ) m ∨ ¬ x ) Rule res ( l 1 ∨ . . . ∨ l n ∨ l ′ 1 ∨ . . . ∨ l ′ m ) ∃ x . C x ∧ C ¬ x ∧ C ↔ Resolvents ( C x , C ¬ x ) ∧ C E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 17 / 74

  29. DPLL SAT solving with conflict-directed clause learning Assumption: propositional logic formula in conjunctive normal form (CNF) Ingredients: Enumeration Ingredients: Enumeration + Boolean constraint propagation Ingredients: Enumeration + Boolean constraint propagation + Resolution c 1 : ( ¬ a ∨ b ) ∧ a 0 1 . . . b c 2 : ( ¬ b ∨ ¬ c ) ∧ 1 0 c 3 : ( ¬ b ∨ c ) ∧ c 0 1 0 . . . 0 0 E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 18 / 74

  30. DPLL SAT solving with conflict-directed clause learning Assumption: propositional logic formula in conjunctive normal form (CNF) Ingredients: Enumeration Ingredients: Enumeration + Boolean constraint propagation Ingredients: Enumeration + Boolean constraint propagation + Resolution c 1 : ( ¬ a ∨ b ) ∧ a 0 1 . . . b c 2 : ( ¬ b ∨ ¬ c ) ∧ 1 0 c 3 : ( ¬ b ∨ c ) ∧ c 0 1 0 . . . 0 0 c 3 : ( ¬ b ∨ c ) c 2 : ( ¬ b ∨ ¬ c ) Resolution c 4 : ( ¬ b ) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 18 / 74

  31. DPLL SAT solving with conflict-directed clause learning Assumption: propositional logic formula in conjunctive normal form (CNF) Ingredients: Enumeration Ingredients: Enumeration + Boolean constraint propagation Ingredients: Enumeration + Boolean constraint propagation + Resolution c 1 : ( ¬ a ∨ b ) ∧ a 0 1 . . . b c 2 : ( ¬ b ∨ ¬ c ) ∧ 1 0 c 3 : ( ¬ b ∨ c ) ∧ c 0 c 4 : ( ¬ b ) ∧ 1 0 . . . 0 0 c 3 : ( ¬ b ∨ c ) c 2 : ( ¬ b ∨ ¬ c ) Resolution c 4 : ( ¬ b ) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 18 / 74

  32. (Full/less) lazy SMT solving ϕ quantifier-free FO formula Boolean abstraction Tseitin’s transformation ϕ ′ propositional logic formula in CNF SAT solver SAT or UNSAT SAT theory constraints or + lemmas UNSAT Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 19 / 74

  33. Less lazy SMT solving E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  34. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  35. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) ( ∨ ) ∧ ( ∨ ) a b c d E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  36. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) ( ∨ ) ∧ ( ∨ ) a b c d SAT solver Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  37. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) ( ∨ ) ∧ ( ∨ ) a b c d ¬ a SAT solver Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  38. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) ( ∨ ) ∧ ( ∨ ) a b c d ¬ a , b SAT solver Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  39. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) ( ∨ ) ∧ ( ∨ ) a b c d ¬ a , b SAT solver x ≥ 0 , x > 2 Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  40. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) ( ∨ ) ∧ ( ∨ ) a b c d ¬ a , b SAT solver x ≥ 0 , x > 2 SAT Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  41. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) ( ∨ ) ∧ ( ∨ ) a b c d ¬ a , b , ¬ c SAT solver x ≥ 0 , x > 2 Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  42. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) ( ∨ ) ∧ ( ∨ ) a b c d ¬ a , b , ¬ c , d SAT solver x ≥ 0 , x > 2 Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  43. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) ( ∨ ) ∧ ( ∨ ) a b c d ¬ a , b , ¬ c , d SAT solver x ≥ 0 , x > 2 , x 2 � 1 , x 2 < 0 Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  44. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) ( ∨ ) ∧ ( ∨ ) a b c d ¬ a , b , ¬ c , d SAT solver x ≥ 0 , x > 2 , x 2 � 1 , x 2 < 0 UNSAT: ¬ ( x 2 < 0) Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  45. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) ( ∨ ) ∧ ( ∨ ) ∧ ( ¬ d ) a b c d ¬ a , b , ¬ c , d SAT solver x ≥ 0 , x > 2 , x 2 � 1 , x 2 < 0 UNSAT: ¬ ( x 2 < 0) Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  46. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) ( ∨ ) ∧ ( ∨ ) ∧ ( ¬ d ) a b c d SAT solver Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  47. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) ( ∨ ) ∧ ( ∨ ) ∧ ( ¬ d ) a b c d SAT solver ¬ d Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  48. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) ( ∨ ) ∧ ( ∨ ) ∧ ( ¬ d ) a b c d ¬ d , c SAT solver Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  49. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) ( ∨ ) ∧ ( ∨ ) ∧ ( ¬ d ) a b c d ¬ d , c SAT solver x 2 ≥ 0 , x 2 = 1 Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  50. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) ( ∨ ) ∧ ( ∨ ) ∧ ( ¬ d ) a b c d ¬ d , c SAT solver x 2 ≥ 0 , x 2 = 1 SAT Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  51. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) ( ∨ ) ∧ ( ∨ ) ∧ ( ¬ d ) a b c d ¬ d , c , . . . SAT solver x 2 ≥ 0 , x 2 = 1 Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 20 / 74

  52. Model constructing satisfiability calculus (MCSAT) B -decision B -propagation B -conflict resolution E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 21 / 74

  53. Model constructing satisfiability calculus (MCSAT) B -decision T -decision B -propagation T -propagation B -conflict resolution T -conflict resolution E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 21 / 74

  54. Optimization modulo theories (full lazy case) ϕ + objective f quantifier-free FO formula Boolean abstraction Tseitin’s transformation ϕ ′ propositional logic formula in CNF (SAT + µ opt ) or UNSAT SAT solver SAT + µ opt : ϕ : = ϕ ∧ f ∼ µ opt theory constraints + f or UNSAT + lemmas Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 22 / 74

  55. Some theory solver candidates for arithmetic theories Linear real arithmetic: Linear integer arithmetic: Simplex Cutting planes, Gomory cuts Ellipsoid method Branch-and-bound (incomplete) Fourier-Motzkin variable elimination Bit-blasting (eager) (mostly preprocessing) Interval constraint propagation Interval constraint propagation (incomplete) (incomplete) Non-linear real arithmetic: Non-linear integer arithmetic: Cylindrical algebraic decomposition Generalised branch-and-bound (incomplete) Gr¨ obner bases (mostly preprocessing/simplification) Bit-blasting (eager, incomplete) Virtual substitution (focus on low degrees) Interval constraint propagation (incomplete) Interval constraint propagation (incomplete) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 23 / 74

  56. Problem solved? Can we simply plug in available implementations of such methods as theory solvers into an SMT solver? E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 24 / 74

  57. Problem solved? Can we simply plug in available implementations of such methods as theory solvers into an SMT solver? Theory solvers should be SMT-compliant, i.e., ϕ quantifier-free FO formula Boolean abstraction they should Tseitin’s transformation ϕ ′ propositional logic formula in CNF work incrementally, SAT solver SAT or UNSAT generate lemmas explaining SAT inconsistencies, and theory constraints or + lemmas UNSAT be able to backtrack. Theory solver(s) E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 24 / 74

  58. Problem solved? Can we simply plug in available implementations of such methods as theory solvers into an SMT solver? Theory solvers should be SMT-compliant, i.e., ϕ quantifier-free FO formula Boolean abstraction they should Tseitin’s transformation ϕ ′ propositional logic formula in CNF work incrementally, SAT solver SAT or UNSAT generate lemmas explaining SAT inconsistencies, and theory constraints or + lemmas UNSAT be able to backtrack. Theory solver(s) Originally, the mentioned methods are not SMT-compliant. SMT-adaptations can be tricky, but can lead to beautiful novel algorithms. E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 24 / 74

  59. Satisfiability checking and symbolic computation Bridging two communities to solve real problems http://www.sc-square.org/CSA/welcome.html E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 25 / 74

  60. Some popular SMT solvers (incomplete!) AProVE (RWTH Aachen University, Germany) [Giesl et al., 2004] CVC4 (New York and Iowa, USA) [Deters et al., 2014] MathSAT 5 (FBK, Italy) [Cimatti et al., 2013] MiniSmt (University of Innsbruck, Austria) [Zankl and Middeldorp, 2010] Boolector (JKU, Austria) [Niemetz et al., 2014] SMT-RAT (RWTH Aachen University, Germany) [Corzilius et al., 2012] Z3 (NYU, Microsoft Research, USA) [de Moura and Bjørner, 2008] Yices 2 (SRI International, USA) [Dutertre, 2014] . . . E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 26 / 74

  61. Our SMT-RAT library [Corzilius et al., 2012, Corzilius et al., 2015] SMT solver Strategic composition of SMT-RAT modules SMT real-algebraic toolbox collection of solver modules CArL real-arithmetic computations gmp, Eigen3, boost MIT licensed source code: github.com/smtrat/smtrat Documentation: smtrat.github.io E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 27 / 74

  62. Strategic composition of solver modules in SMT-RAT Strategy: directed graph over modules with guarded edges Guard: may talk about the formula forwarded to backends Backend-calls: passed to all enabled successors → parallelism Manager Strategy . . . Condition Condition Condition . . . Module Module Module Module E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 28 / 74

  63. SMT-RAT modules Module Implements add(Formula) remove(Formula) check() updateModel() E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 29 / 74

  64. SMT-RAT modules Module Implements check() may forward (sub-)problems to add(Formula) backend modules remove(Formula) return sat or unsat check() return a lemma or split updateModel() return unknown E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 29 / 74

  65. Solver modules in SMT-RAT [Corzilius et al., 2012, Corzilius et al., 2015] CArL library for basic arithmetic datatypes and computations [NFM’11, CAI’11, Sapientia’18] Basic modules Preprocessing/simplifying modules SAT solver CNF converter Non-algebraic decision procedures Bit-vectors Bit-blasting Equalities and uninterpreted functions Pseudo-Boolean formulas Interval constraint propagation Algebraic decision procedures Simplex Fourier-Motzkin variable elimination Subtropical satisfiability Gr¨ obner bases [CAI’13] MCSAT (FM,VS,CAD) Cylindrical algebraic decomposition [CADE-24, SC 2 ’17, PhD Loup, PhD Kremer] Virtual substitution [FCT’11, SC 2 ’17, PhD Corzilius] Generalized branch-and-bound [CASC’16] Cube tests E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 30 / 74

  66. SMT-RAT strategies public Manager { class myStrategy: myStrategy(): Manager() { setStrategy( addBackend < SATModule < SATSettings >> ( addBackend < CADModule < CADSettings >> () ) ); SAT } } ; nonlinear real CAD E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 31 / 74

  67. SMT-RAT strategies Preprocessing SAT nonlinear real CAD E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 31 / 74

  68. SMT-RAT strategies Preprocessing Bit-blasting SAT nonlinear real CAD E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 31 / 74

  69. SMT-RAT strategies Preprocessing Bit-blasting SAT nonlinear real VS CAD E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 31 / 74

  70. SMT-RAT strategies Preprocessing Bit-blasting SAT nonlinear real ICP VS CAD E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 31 / 74

  71. SMT-RAT strategies Preprocessing Bit-blasting SAT linear real nonlinear real Simplex ICP VS CAD E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 31 / 74

  72. SMT-RAT strategies Preprocessing Bit-blasting SAT linear integer linear real nonlinear real Simplex Branch and bound ICP Simplex VS CAD E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 31 / 74

  73. Building an SMT solver from SMT-RAT modules 1 Download and build CArL & SMT-RAT http://smtrat.github.io/carl/getting_started.html 2 Optionally: Extend it with custom modules and strategies 3 Select a strategy $ cmake -D SMTRAT Strategy=CADOnly ../ 4 Build SMT-RAT $ make smtrat 5 Run it $ ./smtrat input.smt2 E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 32 / 74

  74. Outline SMT solving Historical notes I II SAT and SMT solving III Some applications outside planning SMT solving for planning IV SMT and planning Application: optimal planning with OMT V Concluding remarks E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 33 / 74

  75. SMT applications model checking termination analysis runtime verification test case generation controller synthesis predicate abstraction equivalence checking scheduling planning deployment optimisation on the cloud product design automation . . . E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 34 / 74

  76. Embedding SAT/SMT solvers Environment Software Solution engine Logical SAT/SMT problem Problem solver specification E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 35 / 74

  77. Embedding SAT/SMT solvers Environment Software Solution engine Logical SAT/SMT problem Problem solver specification Encoding: SAT/SMT-LIB standard elaborate encoding is extremely important! E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 35 / 74

  78. Embedding SAT/SMT solvers Environment Software Solution engine Logical SAT/SMT problem Problem solver specification Encoding: SAT/SMT-LIB standard elaborate encoding is extremely important! standard input syntax → free solver choice E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 35 / 74

  79. Embedding SAT/SMT solvers Environment Software Solution engine Logical SAT/SMT problem Problem solver specification Encoding: SAT/SMT-LIB standard elaborate encoding is extremely important! standard input syntax → free solver choice In the following: applications of SMT solvers E. ´ Abrah´ am, F. Leofante ICAPS’18 June 25, 2018 35 / 74

Recommend


More recommend