How a CDCL SAT solver works

21,342 views

Published on

Demonstration of CDCL SAT solver working on a small example problem.

Published in: Technology
2 Comments
6 Likes
Statistics
Notes
No Downloads
Views
Total views
21,342
On SlideShare
0
From Embeds
0
Number of Embeds
17,444
Actions
Shares
0
Downloads
99
Comments
2
Likes
6
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • How a CDCL SAT solver works

    1. 1. How a CDCL SAT Solver works Masahiro Sakai Twitter: @masahiro_sakai
    2. 2. Abstract• Demonstrating how a modern SAT solver works on a small example.• Target Algorithm • Conflict-Driven Clause Learning (CDCL) • 1-UIP learning + far-backtracking • details are omitted efficient data (decision heuristics, structure, etc.,)
    3. 3. An Example Problem• ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9• ω2: ¬x4 x6 • ω7: ¬x8 x9• ω3: ¬x5 ¬x6 x7• ω4: ¬x7 x8• ω5: ¬x2 ¬x7 x9
    4. 4. Decide Implication GraphClause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    5. 5. Decide Implication Graphx1 x1@1Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    6. 6. Decide Implication Graphx1x2 x2@2 x1@1Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    7. 7. Decide Implication Graphx1 x3@3x2 x2@2 x1@1x3Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    8. 8. Decide Implication Graphx1 x3@3x2 x2@2 x1@1x3 x4@4x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    9. 9. Deduce Implication Graphx1 x3@3x2 x2@2 x1@1x3 x4@4x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    10. 10. Deduce Implication Graphx1 x3@3x2 ω1 x2@2 x1@1 x5@4x3 ω1 x4@4x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    11. 11. Deduce Implication Graphx1 x3@3x2 ω1 x2@2 x1@1 x5@4x3 ω1 x4@4x4 ω2 x6@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    12. 12. Deduce Implication Graphx1 x3@3x2 ω1 x2@2 x1@1 x5@4x3 ω3 ω1 x4@4 x7@4x4 ω2 ω3 x6@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    13. 13. Deduce Implication Graphx1 x3@3x2 ω1 x2@2 x1@1 x5@4x3 ω3 ω1 x4@4 x7@4x4 ω2 ω3 ω4 x6@4 x8@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    14. 14. Deduce Implication Graphx1 x3@3x2 ω1 x2@2 ω5 x1@1 x5@4 x9@4x3 ω3 ω5 ω1 x4@4 x7@4x4 ω2 ω3 ω4 x6@4 x8@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    15. 15. Deduce Implication Graphx1 x3@3x2 ω1 x2@2 ω5 x1@1 x5@4 x9@4x3 ω3 ω5 ω6 ω1 x4@4 x7@4x4 ω2 ω3 ω4 ω6 x6@4 x8@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    16. 16. Deduce Implication Graphx1 x3@3x2 ω1 x2@2 ω5 x1@1 x5@4 x9@4x3 ω3 ω5 ω6 ω1 x4@4 x7@4x4 ω2 ω3 ω4 ω6 x6@4 x8@4Clause DB Conflict • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    17. 17. Diagnose Implication Graph x3@3 ω1 x2@2 ω5 x1@1 x5@4 x9@4 ω3 ω5 ω6 ω1 x4@4 x7@4 ω2 ω3 ω4 ω6 x6@4 x8@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    18. 18. Diagnose Implication Graph Reason ω6: x3@3 Side¬x8 ¬x9 ω1 x2@2 ω5 x1@1 x5@4 x9@4 ω3 ω5 ω6 ω1 x4@4 x7@4 ω2 ω3 ω4 ω6 x6@4 x8@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    19. 19. Diagnose Implication Graph Reason ω6: ω4: x3@3 Side¬x8 ¬x9 ¬x7 x8 ω1 x2@2 ω5 x1@1 x5@4 x9@4 ω3 ω5 ω6 ω1 x4@4 x7@4 ω2 ω3 ω4 ω6 x6@4 x8@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    20. 20. Diagnose Implication Graph Reason ω6: ω4: x3@3 Side¬x8 ¬x9 ¬x7 x8 ω1 x2@2 ω5 x1@1 x5@4 x9@4 ω3 ω5 ω6 ω1 x4@4 x7@4 ω2 ω3 ω4 ω6 x6@4 x8@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    21. 21. Diagnose Implication Graph Reason ω6: ω4: x3@3 Side¬x8 ¬x9 ¬x7 x8 ω1 x2@2 ω5¬x7 ¬x9 x1@1 x5@4 x9@4 ω3 ω5 ω6 ω1 x4@4 x7@4 ω2 ω3 ω4 ω6 x6@4 x8@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    22. 22. Diagnose Implication Graph Reason ω6: ω4: x3@3 Side¬x8 ¬x9 ¬x7 x8 ω1 x2@2 ω5¬x7 ¬x9 ω5: x1@1 ¬x2 ¬x7 x9 x5@4 x9@4 ω3 ω5 ω6 ω1 x4@4 x7@4 ω2 ω3 ω4 ω6 x6@4 x8@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    23. 23. Diagnose Implication Graph Reason ω6: ω4: x3@3 Side¬x8 ¬x9 ¬x7 x8 ω1 x2@2 ω5¬x7 ¬x9 ω5: x1@1 ¬x2 ¬x7 x9 x5@4 x9@4 ω3 ω5 ω6 ω1 x4@4 x7@4 ω2 ω3 ω4 ω6 x6@4 x8@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    24. 24. Diagnose Implication Graph Reason ω6: ω4: x3@3 Side¬x8 ¬x9 ¬x7 x8 ω1 x2@2 ω5¬x7 ¬x9 ω5: x1@1 ¬x2 ¬x7 x9 x5@4 x9@4 ω3 ω5 ω6 ¬x2 ¬x7 ω1 x4@4 x7@4 ω2 ω3 ω4 ω6 x6@4 x8@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    25. 25. Diagnose Implication Graph Reason ω6: ω4: x3@3 Side¬x8 ¬x9 ¬x7 x8 ω1 x2@2 ω5¬x7 ¬x9 ω5: x1@1 ¬x2 ¬x7 x9 x5@4 x9@4 ω3 ω5 ω6 ¬x2 ¬x7 ω1 x4@4 x7@4 It contains one literal in the current ω3 ω6 ω2 ω4 decision level (i.e. 4). x6@4 x8@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    26. 26. Diagnose Implication Graph Reason ω6: ω4: x3@3 Side¬x8 ¬x9 ¬x7 x8 ω1 x2@2 ω5¬x7 ¬x9 ω5: x1@1 ¬x2 ¬x7 x9 x5@4 x9@4 ω3 ω5 ω6 ¬x2 ¬x7 ω1 x4@4 x7@4 It contains one literal in the current ω3 ω6 ω2 ω4 decision level (i.e. 4). x6@4 x8@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9 New clause is learnt !
    27. 27. Backtrack Implication Graph Learnt clause: ¬x2 ¬x7 x3@3 ω1 x2@2 ω5x2 was set at level 2 x1@1x7 was set at level 4 x5@4 x9@4 ω3 ω5 ω6Assertion level of thisclause (which is the ω1second highest level) x4@4 x7@4is 2. ω6 ω2 ω3 ω4 Backtrack to level 2! x6@4 x8@4 Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    28. 28. Backtrack Implication Graphx1 x3@3x2 ω1 x2@2 ω5 x1@1 x5@4 x9@4x3 ω3 ω5 ω6 ω1 x4@4 x7@4x4 ω2 ω3 ω4 ω6 x6@4 x8@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    29. 29. Backtrack Implication Graphx1 x3@3x2 ω1 x2@2 ω5 x1@1 x5@4 x9@4x3 ω3 ω5 ω1 x4@4 x7@4x4 ω2 ω3 ω4 x6@4 x8@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    30. 30. Backtrack Implication Graphx1 x3@3x2 ω1 x2@2 x1@1 x5@4x3 ω3 ω1 x4@4 x7@4x4 ω2 ω3 ω4 x6@4 x8@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    31. 31. Backtrack Implication Graphx1 x3@3x2 ω1 x2@2 x1@1 x5@4x3 ω3 ω1 x4@4 x7@4x4 ω2 ω3 x6@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    32. 32. Backtrack Implication Graphx1 x3@3x2 ω1 x2@2 x1@1 x5@4x3 ω1 x4@4x4 ω2 x6@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    33. 33. Backtrack Implication Graphx1 x3@3x2 ω1 x2@2 x1@1 x5@4x3 ω1 x4@4x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    34. 34. Backtrack Implication Graphx1 x3@3x2 x2@2 x1@1x3 x4@4x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    35. 35. Backtrack Implication Graphx1 x3@3x2 x2@2 x1@1x3x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    36. 36. Backtrack Implication Graphx1x2 x2@2 x1@1x3x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    37. 37. Deduce Implication Graphx1x2 x2@2 x1@1x3x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    38. 38. Deduce Implication Graphx1 ω8x2 x2@2 ¬x7@2 x1@1x3x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    39. 39. Decide Implication Graphx1 ω8x2 x2@2 ¬x7@2 x1@1x3x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    40. 40. Decide Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1x3 x3x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    41. 41. Decide Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1x3 x3 x4@4x4 x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    42. 42. Deduce Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1x3 x3 x4@4x4 x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    43. 43. Deduce Implication Graphx1 x3@3 ω8x2 ω1 x2@2 ¬x7@2 x1@1 x5@4x3 x3 ω1 x4@4x4 x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    44. 44. Deduce Implication Graphx1 x3@3 ω8x2 ω1 x2@2 ¬x7@2 x1@1 x5@4x3 x3 ω1 x4@4x4 x4 ω2 x6@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    45. 45. Deduce Implication Graphx1 x3@3 ω8x2 ω1 x2@2 ¬x7@2 x1@1 x5@4x3 x3 ω3 ω3 ω1 x4@4x4 x4 ω2 ω3 x6@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    46. 46. Deduce Implication Graphx1 x3@3 ω8x2 ω1 x2@2 ¬x7@2 x1@1 x5@4x3 x3 ω3 ω3 ω1 x4@4x4 x4 ω2 ω3 x6@4Clause DB Conflict • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    47. 47. Diagnose Implication Graph x3@3 ω8 ω1 x2@2 ¬x7@2 x1@1 x5@4 ω3 ω3 ω1 x4@4 ω2 ω3 x6@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    48. 48. Diagnose Implication Graph Reason ω3: x3@3 Side¬x5 ¬x6 x7 ω8 ω1 x2@2 ¬x7@2 x1@1 x5@4 ω3 ω3 ω1 x4@4 ω2 ω3 Conflict x6@4 Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    49. 49. Diagnose Implication Graph Reason ω3: ω2: x3@3 Side¬x5 ¬x6 x7 ¬x4 x6 ω8 ω1 x2@2 ¬x7@2 x1@1 x5@4 ω3 ω3 ω1 x4@4 ω2 ω3 Conflict x6@4 Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    50. 50. Diagnose Implication Graph Reason ω3: ω2: x3@3 Side¬x5 ¬x6 x7 ¬x4 x6 ω8 ω1 x2@2 ¬x7@2 x1@1 x5@4 ω3 ω3 ω1 x4@4 ω2 ω3 Conflict x6@4 Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    51. 51. Diagnose Implication Graph Reason ω3: ω2: x3@3 Side¬x5 ¬x6 x7 ¬x4 x6 ω8 ω1 x2@2 ¬x7@2¬x4 ¬x5 x7 x1@1 x5@4 ω3 ω3 ω1 x4@4 ω2 ω3 Conflict x6@4 Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    52. 52. Diagnose Implication Graph Reason ω3: ω2: x3@3 Side¬x5 ¬x6 x7 ¬x4 x6 ω8 ω1 x2@2 ¬x7@2¬x4 ¬x5 x7 ω1: x1@1 ¬x1 ¬x4 x5 x5@4 ω3 ω3 ω1 x4@4 ω2 ω3 Conflict x6@4 Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    53. 53. Diagnose Implication Graph Reason ω3: ω2: x3@3 Side¬x5 ¬x6 x7 ¬x4 x6 ω8 ω1 x2@2 ¬x7@2¬x4 ¬x5 x7 ω1: x1@1 ¬x1 ¬x4 x5 x5@4 ω3 ω3 ω1 x4@4 ω2 ω3 Conflict x6@4 Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    54. 54. Diagnose Implication Graph Reason ω3: ω2: x3@3 Side¬x5 ¬x6 x7 ¬x4 x6 ω8 ω1 x2@2 ¬x7@2¬x4 ¬x5 x7 ω1: x1@1 ¬x1 ¬x4 x5 x5@4 ω3 ω3 ¬x1 ¬x4 x7 ω1 x4@4 ω2 ω3 Conflict x6@4 Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    55. 55. Diagnose Implication Graph Reason ω3: ω2: x3@3 Side¬x5 ¬x6 x7 ¬x4 x6 ω8 ω1 x2@2 ¬x7@2¬x4 ¬x5 x7 ω1: x1@1 ¬x1 ¬x4 x5 x5@4 ω3 ω3 ¬x1 ¬x4 x7 ω1 x4@4 It contains one literal in the current ω3 decision level (i.e. 4). ω2 Conflict x6@4 Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω5: ¬x2 ¬x7 x9
    56. 56. Diagnose Implication Graph Reason ω3: ω2: x3@3 Side¬x5 ¬x6 x7 ¬x4 x6 ω8 ω1 x2@2 ¬x7@2¬x4 ¬x5 x7 ω1: x1@1 ¬x1 ¬x4 x5 x5@4 ω3 ω3 ¬x1 ¬x4 x7 ω1 x4@4 It contains one literal in the current ω3 decision level (i.e. 4). ω2 Conflict x6@4 Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 New clause is learnt !
    57. 57. Backtrack Implication Graph Learnt clause: ¬x1 ¬x4 x7 x3@3 ω8 ω1 x2@2 ¬x7@2x1 was set at level 1 x1@1x4 was set at level 4 x5@4x7 was set at level 2 ω3 ω3 ω1Assertion level of this x4@4clause is 2. ω2 ω3 Backtrack to level 2! x6@4 Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    58. 58. Backtrack Implication Graphx1 x3@3 ω8x2 ω1 x2@2 ¬x7@2 x1@1 x5@4x3 x3 ω3 ω3 ω1 x4@4x4 x4 ω2 ω3 x6@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    59. 59. Backtrack Implication Graphx1 ω8x2 x2@2 ¬x7@2 x1@1x3 x3x4 x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    60. 60. Deduce Implication Graphx1 ω8x2 x2@2 ¬x7@2 x1@1x3 x3x4 x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    61. 61. Deduce Implication Graphx1 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 ¬x4@2x4 x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    62. 62. Decide Implication Graphx1 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 ¬x4@2x4 x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    63. 63. Decide Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 x3 ¬x4@2x4 x4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    64. 64. Decide Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 x3 ¬x4@2x4 x4 x5 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    65. 65. Deduce Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 x3 ¬x4@2x4 x4 x5 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    66. 66. Deduce Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 ω3 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    67. 67. Decide Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 ω3 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    68. 68. Decide Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 x8@5 ω3 x8 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    69. 69. Deduce Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 x8@5 ω3 x8 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    70. 70. Deduce Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 ¬x4@2 ω6 ¬x6@4x4 x4 x5 x8@5 ¬x9@5 ω3 x8 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    71. 71. Deduce Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 ¬x4@2 ω6 ¬x6@4x4 x4 x5 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    72. 72. Deduce Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 ¬x4@2 ω6 ¬x6@4x4 x4 x5 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4 x8Clause DB Conflict • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    73. 73. Diagnose Implication Graph x3@3 ω8 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3 ¬x4@2 ω6 ¬x6@4 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    74. 74. Diagnose Implication Graph ω7: x3@3¬x8 x9 ω8 x2@2 ¬x7@2 x1@1 ω9 Reason ω9 ω3 Side ¬x4@2 ω6 ¬x6@4 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    75. 75. Diagnose Implication Graph ω7: ω6: x3@3¬x8 x9 ¬x8 ¬x9 ω8 x2@2 ¬x7@2 x1@1 ω9 Reason ω9 ω3 Side ¬x4@2 ω6 ¬x6@4 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    76. 76. Diagnose Implication Graph ω7: ω6: x3@3¬x8 x9 ¬x8 ¬x9 ω8 x2@2 ¬x7@2 x1@1 ω9 Reason ω9 ω3 Side ¬x4@2 ω6 ¬x6@4 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    77. 77. Diagnose Implication Graph ω7: ω6: x3@3¬x8 x9 ¬x8 ¬x9 ω8 x2@2 ¬x7@2 ¬x8 x1@1 ω9 Reason ω9 ω3 Side ¬x4@2 ω6 ¬x6@4 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    78. 78. Diagnose Implication Graph ω7: ω6: x3@3¬x8 x9 ¬x8 ¬x9 ω8 x2@2 ¬x7@2 ¬x8 x1@1 ω9 Reason ω9 ω3 Side ¬x4@2It contains one literal ω6 ¬x6@4 in the current x8@5 ¬x9@5 ω3 decision level (i.e. 5). ω7 ω7 x5@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9
    79. 79. Diagnose Implication Graph ω7: ω6: x3@3¬x8 x9 ¬x8 ¬x9 ω8 x2@2 ¬x7@2 ¬x8 x1@1 ω9 Reason ω9 ω3 Side ¬x4@2It contains one literal ω6 ¬x6@4 in the current x8@5 ¬x9@5 ω3 decision level (i.e. 5). ω7 ω7 x5@4 Conflict Side Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 •New ¬x2 ¬x7 learnt ! ω8: clause is • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    80. 80. Backtrack Implication Graph Learnt clause: ¬x8 x3@3 ω8 x2@2 ¬x7@2x8 was set at level 5 x1@1 ω9 ω9 ω3Assertion level of this ¬x4@2clause (which is thesecond highest level) ω6 ¬x6@4is 0 by convention. x8@5 ¬x9@5 ω3 Backtrack to level 0 ω7 ω7 x5@4 (root level) Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    81. 81. Backtrack Implication Graphx1 x3@3 ω8x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 ¬x4@2 ω6 ¬x6@4x4 x4 x5 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    82. 82. Backtrack Implication Graphx1x2x3 x3 x3x4 x4 x5 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    83. 83. Deduce Implication Graphx1x2x3 x3 x3x4 x4 x5 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    84. 84. Deduce Implication Graphx1x2x3 x3 x3x4 x4 x5 ¬x8@0 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    85. 85. Decide Implication Graphx1x2x3 x3 x3x4 x4 x5 ¬x8@0 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    86. 86. Decide Implication Graphx1 x1x2 x1@1x3 x3 x3x4 x4 x5 ¬x8@0 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    87. 87. Decide Implication Graphx1 x1x2 x2 x2@2 x1@1x3 x3 x3x4 x4 x5 ¬x8@0 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    88. 88. Deduce Implication Graphx1 x1x2 x2 x2@2 x1@1x3 x3 x3x4 x4 x5 ¬x8@0 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    89. 89. Deduce Implication Graphx1 x1 ω8x2 x2 x2@2 ¬x7@2 x1@1x3 x3 x3x4 x4 x5 ¬x8@0 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    90. 90. Deduce Implication Graphx1 x1 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 x3 ¬x4@2x4 x4 x5 ¬x8@0 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    91. 91. Decide Implication Graphx1 x1 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 x3 ¬x4@2x4 x4 x5 ¬x8@0 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    92. 92. Decide Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 x3 x3 ¬x4@2x4 x4 x5 ¬x8@0 x8Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    93. 93. Decide Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 x3 x3 ¬x4@2x4 x4 x5 x5 ¬x8@0 x8 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    94. 94. Deduce Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9x3 x3 x3 x3 ¬x4@2x4 x4 x5 x5 ¬x8@0 x8 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    95. 95. Deduce Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 x5 ¬x8@0 ω3 x8 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    96. 96. Decide Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 x5 ¬x8@0 ω3 x8 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    97. 97. Decide Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 x5 ¬x8@0 ω3 x8 x9 x9@5 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    98. 98. Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 x5 ¬x8@0 ω3 x8 x9 x9@5 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    99. 99. Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 x3 All variables are ¬x4@2 ¬x6@4x4 x4 x5 x5 ¬x8@0 ω3 x8 x9 x9@5 x5@4assigned withoutClause DB • ω1: •¬x1 ¬x4 x5 ω6: ¬x8 ¬x9 • • conflict ω2: ω3: • • ¬x4 ¬x5 x6 ¬x6 x7 ω7: ¬x8 ω8: ¬x2 x9 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    100. 100. Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 x5 ¬x8@0 ω3 x8 x9 x9@5 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    101. 101. Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 x5 ¬x8@0 ω3 x8 x9 x9@5 x5@4Clause DB Satisfiable • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    102. 102. Implication Graphx1 x1 x3@3 ω8x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3x3 x3 x3 x3 ¬x4@2 ¬x6@4x4 x4 x5 x5 ¬x8@0 ω3 x8 x9 x9@5 x5@4Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    103. 103. Implication GraphFound a model x3@3 ω8 M= x2@2 ¬x7@2 x1@1 ω9 { x1, x2, x3, ω9 ω3 ¬x4@2 ¬x4, x5, ¬x6 ¬x6@4 ¬x8@0 ω3¬x7, ¬x8, x9 } x9@5 x5@4 Clause DB • ω1: ¬x1 ¬x4 x5 • ω6: ¬x8 ¬x9 • ω2: ¬x4 x6 • ω7: ¬x8 x9 • ω3: ¬x5 ¬x6 x7 • ω8: ¬x2 ¬x7 • ω4: ¬x7 x8 • ω9: ¬x1 ¬x4 x7 • ω5: ¬x2 ¬x7 x9 • ω10: ¬x8
    104. 104. fin.
    105. 105. References• J. P. Marques-Silva and K. A. Sakallah, "GRASP: a search algorithm for propositional satisfiability," Computers, IEEE Transactions on, vol. 48, no. 5, pp. 506-521, May 1999.• Handbook of Satisfiability, A. Biere, M. Heule, H. Van Maaren, and T. Walsh, Eds. IOS Press, Feb. 2009.

    ×