building bridges between symbolic computation and
play

Building Bridges between Symbolic Computation and Satisfiability - PowerPoint PPT Presentation

Building Bridges between Symbolic Computation and Satisfiability Checking Erika Abrah am RWTH Aachen University, Germany in cooperation with Florian Corzilius, Gereon Kremer, Stefan Schupp and others ISSAC15, 7 July 2015 Photo:


  1. SAT solving: Resolution Assumption: conjunctive normal form (CNF) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 7 / 39

  2. SAT solving: Resolution Assumption: conjunctive normal form (CNF) Derivation rule form: antecendent 1 . . . antecendent n Rule name consequent Erika ´ Abrah´ am - SMT solving and Symbolic Computation 7 / 39

  3. SAT solving: Resolution Assumption: conjunctive normal form (CNF) Derivation rule form: antecendent 1 . . . antecendent n Rule name consequent ( l ′ 1 ∨ . . . ∨ l ′ ( l 1 ∨ . . . ∨ l n ∨ x ) m ∨ ¬ x ) Rule res ( l 1 ∨ . . . ∨ l n ∨ l ′ 1 ∨ . . . ∨ l ′ m ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 7 / 39

  4. SAT solving: Resolution Assumption: conjunctive normal form (CNF) Derivation rule form: antecendent 1 . . . antecendent n Rule name consequent ( l ′ 1 ∨ . . . ∨ l ′ ( l 1 ∨ . . . ∨ l n ∨ x ) m ∨ ¬ x ) Rule res ( l 1 ∨ . . . ∨ l n ∨ l ′ 1 ∨ . . . ∨ l ′ m ) C x ∨ C ¬ x ∨ C is equi-satisfiable to Resolvents ( C x , C ¬ x ) ∨ C Erika ´ Abrah´ am - SMT solving and Symbolic Computation 7 / 39

  5. SAT solving: Resolution c 1 : ( ¬ a ∨ d ∨ e ) c 2 : ( ¬ a ∨ d ∨ ¬ e ) c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 8 / 39

  6. SAT solving: Resolution c 1 : ( ¬ a ∨ d ∨ e ) c 2 : ( ¬ a ∨ d ∨ ¬ e ) c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) c 1 : ( ¬ a ∨ d ∨ e ) c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 2 : ( ¬ a ∨ d ∨ ¬ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) ( ¬ a ∨ d ) ( ¬ a ∨ ¬ d ) c 6 : ( a ∨ ¬ b ) ( ¬ a ) ( a ) () Erika ´ Abrah´ am - SMT solving and Symbolic Computation 8 / 39

  7. SAT solving: Resolution c 1 : ( ¬ a ∨ d ∨ e ) c 2 : ( ¬ a ∨ d ∨ ¬ e ) c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) c 1 : ( ¬ a ∨ d ∨ e ) c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 2 : ( ¬ a ∨ d ∨ ¬ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) ( ¬ a ∨ d ) ( ¬ a ∨ ¬ d ) c 6 : ( a ∨ ¬ b ) ( ¬ a ) ( a ) () Problem: combinatorial blowup Erika ´ Abrah´ am - SMT solving and Symbolic Computation 8 / 39

  8. SAT solving: Enumeration c 1 : ( ¬ a ∨ d ∨ e ) . . . c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

  9. SAT solving: Enumeration c 1 : ( ¬ a ∨ d ∨ e ) . . . c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Decision Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

  10. SAT solving: Enumeration a c 1 : ( ¬ a ∨ d ∨ e ) . . . c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

  11. SAT solving: Enumeration a c 1 : ( ¬ a ∨ d ∨ e ) . . . c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Decision Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

  12. SAT solving: Enumeration a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

  13. SAT solving: Enumeration a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Decision Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

  14. SAT solving: Enumeration a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

  15. SAT solving: Enumeration a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Decision Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

  16. SAT solving: Enumeration a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

  17. SAT solving: Enumeration a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Decision Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

  18. SAT solving: Enumeration a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) e c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

  19. SAT solving: Enumeration a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) e c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) � c 8 : ( ¬ b ∨ ¬ c ) Conflict Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

  20. SAT solving: Enumeration a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) e c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) � c 8 : ( ¬ b ∨ ¬ c ) Backjumping Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

  21. SAT solving: Enumeration a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) e c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

  22. SAT solving: Enumeration a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) e c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) � c 8 : ( ¬ b ∨ ¬ c ) Conflict Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

  23. SAT solving: Enumeration a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) e c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) � c 8 : ( ¬ b ∨ ¬ c ) Backjumping Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

  24. SAT solving: Enumeration a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

  25. SAT solving: The DPLL algorithm c 1 : ( ¬ a ∨ d ∨ e ) . . . c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  26. SAT solving: The DPLL algorithm c 1 : ( ¬ a ∨ d ∨ e ) . . . c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Decision Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  27. SAT solving: The DPLL algorithm a c 1 : ( ¬ a ∨ d ∨ e ) . . . c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  28. SAT solving: The DPLL algorithm a c 1 : ( ¬ a ∨ d ∨ e ) . . . c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Decision Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  29. SAT solving: The DPLL algorithm a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  30. SAT solving: The DPLL algorithm a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Pure literal detection Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  31. SAT solving: The DPLL algorithm a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  32. SAT solving: The DPLL algorithm a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Decision Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  33. SAT solving: The DPLL algorithm a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  34. SAT solving: The DPLL algorithm a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Boolean constraint propagation Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  35. SAT solving: The DPLL algorithm a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) e c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  36. SAT solving: The DPLL algorithm a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) e c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) � c 8 : ( ¬ b ∨ ¬ c ) Conflict Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  37. SAT solving: The DPLL algorithm a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) e c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) � c 8 : ( ¬ b ∨ ¬ c ) Backjumping Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  38. SAT solving: The DPLL algorithm a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  39. SAT solving: The DPLL algorithm a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Boolean constraint propagation Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  40. SAT solving: The DPLL algorithm a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) e c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  41. SAT solving: The DPLL algorithm a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) e c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) � c 8 : ( ¬ b ∨ ¬ c ) Conflict Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  42. SAT solving: The DPLL algorithm a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) e c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) � c 8 : ( ¬ b ∨ ¬ c ) Backjumping Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  43. SAT solving: The DPLL algorithm a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

  44. SAT solving: Conflict-directed clause learning c 1 : ( ¬ a ∨ d ∨ e ) . . . c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

  45. SAT solving: Conflict-directed clause learning c 1 : ( ¬ a ∨ d ∨ e ) . . . c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Decision Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

  46. SAT solving: Conflict-directed clause learning a c 1 : ( ¬ a ∨ d ∨ e ) . . . c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

  47. SAT solving: Conflict-directed clause learning a c 1 : ( ¬ a ∨ d ∨ e ) . . . c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Decision Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

  48. SAT solving: Conflict-directed clause learning a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

  49. SAT solving: Conflict-directed clause learning a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Boolean constraint propagation Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

  50. SAT solving: Conflict-directed clause learning a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 8 c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

  51. SAT solving: Conflict-directed clause learning a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 8 c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Decision Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

  52. SAT solving: Conflict-directed clause learning a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 8 c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

  53. SAT solving: Conflict-directed clause learning a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 8 c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Boolean constraint propagation Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

  54. SAT solving: Conflict-directed clause learning a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 8 c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) e c 6 : ( a ∨ ¬ b ) c 3 c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

  55. SAT solving: Conflict-directed clause learning a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 8 c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) e c 6 : ( a ∨ ¬ b ) c 3 c 7 : ( b ∨ c ) � c 4 c 8 : ( ¬ b ∨ ¬ c ) Conflict Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

  56. SAT solving: Conflict-directed clause learning a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 8 c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) e c 6 : ( a ∨ ¬ b ) c 3 c 7 : ( b ∨ c ) � c 4 c 8 : ( ¬ b ∨ ¬ c ) Conflict resolution and backtracking Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

  57. SAT solving: Conflict-directed clause learning a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 8 c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) e c 6 : ( a ∨ ¬ b ) c 3 c 7 : ( b ∨ c ) � c 4 c 8 : ( ¬ b ∨ ¬ c ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 9 : ( ¬ a ∨ ¬ d ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

  58. SAT solving: Conflict-directed clause learning a c 1 : ( ¬ a ∨ d ∨ e ) . . . b c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c c 8 c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) d c 5 : ( a ∨ b ) e c 6 : ( a ∨ ¬ b ) c 3 c 7 : ( b ∨ c ) � c 4 c 8 : ( ¬ b ∨ ¬ c ) c 9 : ( ¬ a ∨ ¬ d ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 9 : ( ¬ a ∨ ¬ d ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

  59. SAT solving: Conflict-directed clause learning a c 1 : ( ¬ a ∨ d ∨ e ) . . . c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) c 9 : ( ¬ a ∨ ¬ d ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 9 : ( ¬ a ∨ ¬ d ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

  60. SAT solving: Conflict-directed clause learning a c 1 : ( ¬ a ∨ d ∨ e ) . . . d c 9 c 2 : ( ¬ a ∨ d ∨ ¬ e ) . . . c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 5 : ( a ∨ b ) c 6 : ( a ∨ ¬ b ) c 7 : ( b ∨ c ) c 8 : ( ¬ b ∨ ¬ c ) c 9 : ( ¬ a ∨ ¬ d ) c 4 : ( ¬ a ∨ ¬ d ∨ ¬ e ) c 3 : ( ¬ a ∨ ¬ d ∨ e ) c 9 : ( ¬ a ∨ ¬ d ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

  61. Satisfiability modulo theories solving Propositional logic is sometimes too weak for modelling. We need more expressive logics and decision procedures for them. Logics: quantifier-free fragments of first-order logic over various theories. Our focus: SAT-modulo-theories (SMT) solving. Erika ´ Abrah´ am - SMT solving and Symbolic Computation 12 / 39

  62. Satisfiability modulo theories solving Propositional logic is sometimes too weak for modelling. We need more expressive logics and decision procedures for them. Logics: quantifier-free fragments of first-order logic over various theories. Our focus: SAT-modulo-theories (SMT) solving. SMT-LIB as standard input language since 2004. Competitions since 2005. SMT-COMP 2014 competition: 32 logical categories, 20 solvers. Linear real arithmetic (since 2005): 6 solvers. Non-linear real arithmetic (since 2010): 4 solvers. 67426 benchmark instances. Erika ´ Abrah´ am - SMT solving and Symbolic Computation 12 / 39

  63. Satisfiability modulo theories solving Propositional logic is sometimes too weak for modelling. We need more expressive logics and decision procedures for them. Logics: quantifier-free fragments of first-order logic over various theories. Our focus: SAT-modulo-theories (SMT) solving. SMT-LIB as standard input language since 2004. Competitions since 2005. SMT-COMP 2014 competition: 32 logical categories, 20 solvers. Linear real arithmetic (since 2005): 6 solvers. Non-linear real arithmetic (since 2010): 4 solvers. 67426 benchmark instances. SMT applications: verification (model checking, static analysis, termination analysis); test case generation; controller synthesis; predicate abstraction; equivalence checking; scheduling; planning; product design automation and optimisation, . . . Erika ´ Abrah´ am - SMT solving and Symbolic Computation 12 / 39

  64. SMT-LIB theories Source: http://smtlib.cs.uiowa.edu/logics.shtml Erika ´ Abrah´ am - SMT solving and Symbolic Computation 13 / 39

  65. SMT-LIB theories Quantifier-free equality logic with uninterpreted functions ( a = c ∧ b = d ) → f ( a , b ) = f ( c , d ) Source: http://smtlib.cs.uiowa.edu/logics.shtml Erika ´ Abrah´ am - SMT solving and Symbolic Computation 13 / 39

  66. SMT-LIB theories Quantifier-free bit-vector arithmetic ( a | b ) ≤ ( a & b ) Source: http://smtlib.cs.uiowa.edu/logics.shtml Erika ´ Abrah´ am - SMT solving and Symbolic Computation 13 / 39

  67. SMT-LIB theories Quantifier-free array theory i = j → read ( write ( a , i , v ) , j ) = v Source: http://smtlib.cs.uiowa.edu/logics.shtml Erika ´ Abrah´ am - SMT solving and Symbolic Computation 13 / 39

  68. SMT-LIB theories Quantifier-free integer/rational difference logic x − y ∼ 0 , ∼∈ { <, ≤ , = , ≥ , > } Source: http://smtlib.cs.uiowa.edu/logics.shtml Erika ´ Abrah´ am - SMT solving and Symbolic Computation 13 / 39

  69. SMT-LIB theories (Quantifier-free) real/integer linear arithmetic 3 x + 7 y = 8 Source: http://smtlib.cs.uiowa.edu/logics.shtml Erika ´ Abrah´ am - SMT solving and Symbolic Computation 13 / 39

  70. SMT-LIB theories (Quantifier-free) real/integer non-linear arithmetic x 2 + 2 xy + y 2 ≥ 0 Source: http://smtlib.cs.uiowa.edu/logics.shtml Erika ´ Abrah´ am - SMT solving and Symbolic Computation 13 / 39

  71. SMT-LIB theories Combined theories 2 f ( x ) + 5 y > 0 Source: http://smtlib.cs.uiowa.edu/logics.shtml Erika ´ Abrah´ am - SMT solving and Symbolic Computation 13 / 39

  72. Eager vs. lazy SMT solving We focus on lazy SMT solving. Alternative eager approach: transform problems into propositional logic and use SAT solving for satisfiability checking. Condition: Logic is not more expressive than propositional logic. Erika ´ Abrah´ am - SMT solving and Symbolic Computation 14 / 39

  73. (Full/less) lazy SMT solving Erika ´ Abrah´ am - SMT solving and Symbolic Computation 15 / 39

  74. (Full/less) lazy SMT solving ϕ quantifier-free FO formula Erika ´ Abrah´ am - SMT solving and Symbolic Computation 15 / 39

  75. (Full/less) lazy SMT solving ϕ quantifier-free FO formula Boolean abstraction Tseitin’s transformation ϕ ′ propositional logic formula in CNF Erika ´ Abrah´ am - SMT solving and Symbolic Computation 15 / 39

  76. (Full/less) lazy SMT solving ϕ quantifier-free FO formula Boolean abstraction Tseitin’s transformation ϕ ′ propositional logic formula in CNF SAT solver Erika ´ Abrah´ am - SMT solving and Symbolic Computation 15 / 39

  77. (Full/less) lazy SMT solving ϕ quantifier-free FO formula Boolean abstraction Tseitin’s transformation ϕ ′ propositional logic formula in CNF SAT solver theory constraints Theory solver(s) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 15 / 39

  78. (Full/less) lazy SMT solving ϕ quantifier-free FO formula Boolean abstraction Tseitin’s transformation ϕ ′ propositional logic formula in CNF SAT solver SAT theory constraints or + lemmas UNSAT Theory solver(s) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 15 / 39

  79. (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) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 15 / 39

  80. Less lazy SMT solving Erika ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

  81. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

  82. Less lazy SMT solving ( x < 0 ∨ x > 2) ∧ ( x 2 = 1 ∨ x 2 < 0) ( a ∨ b ) ∧ ( c ∨ d ) Erika ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

Recommend


More recommend