SlideShare a Scribd company logo
How a CDCL SAT
  Solver works


       Masahiro Sakai
  Twitter: @masahiro_sakai
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.,)
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
Decide               Implication Graph




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
Decide                Implication Graph
x1

                 x1@1




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
Decide                Implication Graph
x1

x2                                 x2@2
                 x1@1




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
Decide                Implication Graph
x1               x3@3

x2                                 x2@2
                 x1@1
x3




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
Decide                Implication Graph
x1               x3@3

x2                                 x2@2
                 x1@1
x3
                 x4@4
x4



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
Deduce                Implication Graph
x1               x3@3

x2                                 x2@2
                 x1@1
x3
                 x4@4
x4



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
Deduce                Implication Graph
x1               x3@3

x2                      ω1          x2@2
                 x1@1
                             x5@4
x3
                        ω1
                 x4@4
x4



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
Deduce                Implication Graph
x1               x3@3

x2                      ω1          x2@2
                 x1@1
                             x5@4
x3
                        ω1
                 x4@4
x4
                       ω2
                             x6@4

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
Deduce                Implication Graph
x1               x3@3

x2                      ω1               x2@2
                 x1@1
                             x5@4
x3                                  ω3
                        ω1
                 x4@4                    x7@4
x4
                       ω2           ω3
                             x6@4

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
Deduce                Implication Graph
x1               x3@3

x2                      ω1               x2@2
                 x1@1
                             x5@4
x3                                  ω3
                        ω1
                 x4@4                    x7@4
x4
                       ω2           ω3          ω4
                             x6@4                    x8@4

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
Deduce                Implication Graph
x1               x3@3

x2                      ω1               x2@2   ω5
                 x1@1
                             x5@4                    x9@4
x3                                  ω3          ω5
                        ω1
                 x4@4                    x7@4
x4
                       ω2           ω3          ω4
                             x6@4                    x8@4

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
Deduce                Implication Graph
x1               x3@3

x2                      ω1               x2@2   ω5
                 x1@1
                             x5@4                    x9@4
x3                                  ω3          ω5          ω6
                        ω1
                 x4@4                    x7@4
x4
                       ω2           ω3          ω4          ω6
                             x6@4                    x8@4

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
Deduce                Implication Graph
x1               x3@3

x2                      ω1               x2@2   ω5
                 x1@1
                             x5@4                    x9@4
x3                                  ω3          ω5          ω6
                        ω1
                 x4@4                    x7@4
x4
                       ω2           ω3          ω4          ω6
                             x6@4                    x8@4

Clause 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
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@4

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
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
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
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
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
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
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
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
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
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 !
Backtrack                   Implication Graph
  Learnt clause:
    ¬x2 ¬x7               x3@3
                                 ω1               x2@2   ω5
x2 was set at level 2     x1@1
x7 was set at level 4                 x5@4                    x9@4
                                             ω3          ω5          ω6
Assertion level of this
clause (which is the             ω1
second highest level)
                          x4@4                    x7@4
is 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
Backtrack             Implication Graph
x1               x3@3

x2                      ω1               x2@2   ω5
                 x1@1
                             x5@4                    x9@4
x3                                  ω3          ω5          ω6
                        ω1
                 x4@4                    x7@4
x4
                       ω2           ω3          ω4          ω6
                             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
Backtrack             Implication Graph
x1               x3@3

x2                      ω1               x2@2   ω5
                 x1@1
                             x5@4                    x9@4
x3                                  ω3          ω5
                        ω1
                 x4@4                    x7@4
x4
                       ω2           ω3          ω4
                             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
Backtrack             Implication Graph
x1               x3@3

x2                      ω1               x2@2
                 x1@1
                             x5@4
x3                                  ω3
                        ω1
                 x4@4                    x7@4
x4
                       ω2           ω3          ω4
                             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
Backtrack             Implication Graph
x1               x3@3

x2                      ω1               x2@2
                 x1@1
                             x5@4
x3                                  ω3
                        ω1
                 x4@4                    x7@4
x4
                       ω2           ω3
                             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
     • ω5: ¬x2   ¬x7    x9
Backtrack             Implication Graph
x1               x3@3

x2                      ω1          x2@2
                 x1@1
                             x5@4
x3
                        ω1
                 x4@4
x4
                       ω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
     • ω5: ¬x2   ¬x7    x9
Backtrack             Implication Graph
x1               x3@3

x2                      ω1          x2@2
                 x1@1
                             x5@4
x3
                        ω1
                 x4@4
x4



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
Backtrack             Implication Graph
x1               x3@3

x2                                 x2@2
                 x1@1
x3
                 x4@4
x4



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
Backtrack             Implication Graph
x1               x3@3

x2                                 x2@2
                 x1@1
x3

x4



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
Backtrack             Implication Graph
x1

x2                                 x2@2
                 x1@1
x3

x4



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
Deduce                Implication Graph
x1

x2                                 x2@2
                 x1@1
x3

x4



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
Deduce                Implication Graph
x1
                                          ω8
x2                                 x2@2    ¬x7@2
                 x1@1
x3

x4



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
Decide                Implication Graph
x1
                                          ω8
x2                                 x2@2    ¬x7@2
                 x1@1
x3

x4



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
Decide                   Implication Graph
x1                  x3@3
                                             ω8
x2                                    x2@2    ¬x7@2
                    x1@1
x3 x3

x4



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
Decide                   Implication Graph
x1                  x3@3
                                             ω8
x2                                    x2@2    ¬x7@2
                    x1@1
x3 x3
                    x4@4
x4 x4



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
Deduce                   Implication Graph
x1                  x3@3
                                             ω8
x2                                    x2@2    ¬x7@2
                    x1@1
x3 x3
                    x4@4
x4 x4



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
Deduce                   Implication Graph
x1                  x3@3
                                              ω8
x2                         ω1          x2@2    ¬x7@2
                    x1@1
                                x5@4
x3 x3
                           ω1
                    x4@4
x4 x4



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
Deduce                   Implication Graph
x1                  x3@3
                                              ω8
x2                         ω1          x2@2    ¬x7@2
                    x1@1
                                x5@4
x3 x3
                           ω1
                    x4@4
x4 x4
                          ω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
        • ω5: ¬x2   ¬x7    x9
Deduce                   Implication Graph
x1                  x3@3
                                                   ω8
x2                         ω1               x2@2    ¬x7@2
                    x1@1
                                x5@4
x3 x3                                  ω3          ω3
                           ω1
                    x4@4
x4 x4
                          ω2           ω3
                                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
        • ω5: ¬x2   ¬x7    x9
Deduce                   Implication Graph
x1                  x3@3
                                                   ω8
x2                         ω1               x2@2    ¬x7@2
                    x1@1
                                x5@4
x3 x3                                  ω3          ω3
                           ω1
                    x4@4
x4 x4
                          ω2           ω3
                                x6@4

Clause 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
Diagnose
                      Implication Graph
                x3@3
                                               ω8
                       ω1               x2@2    ¬x7@2
                x1@1
                            x5@4   ω3          ω3
                       ω1
                x4@4
                      ω2           ω3
                            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
    • ω5: ¬x2   ¬x7    x9
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
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
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
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
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
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
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
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
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 !
Backtrack                   Implication Graph
  Learnt clause:
  ¬x1 ¬x4 x7              x3@3
                                                         ω8
                                 ω1               x2@2    ¬x7@2
x1 was set at level 1
                          x1@1
x4 was set at level 4                 x5@4
x7 was set at level 2                        ω3          ω3
                                 ω1
Assertion level of this   x4@4
clause 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
Backtrack                Implication Graph
x1                  x3@3
                                                   ω8
x2                         ω1               x2@2    ¬x7@2
                    x1@1
                                x5@4
x3 x3                                  ω3          ω3
                           ω1
                    x4@4
x4 x4
                          ω2           ω3
                                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
Backtrack                Implication Graph
x1
                                             ω8
x2                                    x2@2    ¬x7@2
                    x1@1
x3 x3

x4 x4



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
Deduce               Implication Graph
x1
                                             ω8
x2                                    x2@2    ¬x7@2
                    x1@1
x3 x3

x4 x4



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
Deduce               Implication Graph
x1
                                                ω8
x2                                       x2@2    ¬x7@2
                    x1@1    ω9
                                          ω9
x3 x3                            ¬x4@2

x4 x4



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
Decide               Implication Graph
x1
                                                ω8
x2                                       x2@2    ¬x7@2
                    x1@1    ω9
                                          ω9
x3 x3                            ¬x4@2

x4 x4



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
Decide               Implication Graph
x1                  x3@3
                                                ω8
x2                                       x2@2    ¬x7@2
                    x1@1    ω9
                                          ω9
x3 x3 x3                         ¬x4@2

x4 x4



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
Decide              Implication Graph
x1                 x3@3
                                               ω8
x2                                      x2@2    ¬x7@2
                   x1@1    ω9
                                         ω9
x3 x3 x3                        ¬x4@2

x4 x4 x5
                                                     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
Deduce              Implication Graph
x1                 x3@3
                                               ω8
x2                                      x2@2    ¬x7@2
                   x1@1    ω9
                                         ω9
x3 x3 x3                        ¬x4@2

x4 x4 x5
                                                     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
Deduce              Implication Graph
x1                 x3@3
                                               ω8
x2                                      x2@2    ¬x7@2
                   x1@1    ω9
                                         ω9         ω3
x3 x3 x3                        ¬x4@2
                                           ¬x6@4
x4 x4 x5                                             ω3

                                                         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
Decide              Implication Graph
x1                 x3@3
                                               ω8
x2                                      x2@2    ¬x7@2
                   x1@1    ω9
                                         ω9         ω3
x3 x3 x3                        ¬x4@2
                                           ¬x6@4
x4 x4 x5                                             ω3

                                                         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
Decide              Implication Graph
x1                 x3@3
                                               ω8
x2                                      x2@2    ¬x7@2
                   x1@1    ω9
                                         ω9         ω3
x3 x3 x3                        ¬x4@2
                                           ¬x6@4
x4 x4 x5           x8@5                              ω3


        x8                                               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
Deduce              Implication Graph
x1                 x3@3
                                               ω8
x2                                      x2@2    ¬x7@2
                   x1@1    ω9
                                         ω9         ω3
x3 x3 x3                        ¬x4@2
                                           ¬x6@4
x4 x4 x5           x8@5                              ω3


        x8                                               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
Deduce              Implication Graph
x1                 x3@3
                                               ω8
x2                                      x2@2    ¬x7@2
                   x1@1    ω9
                                         ω9         ω3
x3 x3 x3                        ¬x4@2
                          ω6               ¬x6@4
x4 x4 x5           x8@5        ¬x9@5                 ω3


        x8                                               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
Deduce              Implication Graph
x1                 x3@3
                                               ω8
x2                                      x2@2    ¬x7@2
                   x1@1    ω9
                                         ω9         ω3
x3 x3 x3                        ¬x4@2
                          ω6               ¬x6@4
x4 x4 x5           x8@5        ¬x9@5                 ω3

                     ω7         ω7                       x5@4
        x8

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
Deduce              Implication Graph
x1                 x3@3
                                               ω8
x2                                      x2@2    ¬x7@2
                   x1@1    ω9
                                         ω9         ω3
x3 x3 x3                        ¬x4@2
                          ω6               ¬x6@4
x4 x4 x5           x8@5        ¬x9@5                 ω3

                     ω7         ω7                       x5@4
        x8

Clause 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
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@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
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
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
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
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
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
It 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
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
It 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
Backtrack                   Implication Graph
  Learnt clause:
       ¬x8                x3@3
                                                      ω8
                                               x2@2    ¬x7@2
x8 was set at level 5     x1@1    ω9
                                                ω9         ω3
Assertion level of this                ¬x4@2
clause (which is the
second highest level)            ω6             ¬x6@4
is 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
Backtrack             Implication Graph
x1               x3@3
                                             ω8
x2                                    x2@2    ¬x7@2
                 x1@1    ω9
                                       ω9         ω3
x3 x3 x3                      ¬x4@2
                        ω6             ¬x6@4
x4 x4 x5         x8@5        ¬x9@5                 ω3

                   ω7         ω7                       x5@4
      x8

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
Backtrack             Implication Graph
x1

x2

x3 x3 x3

x4 x4 x5

      x8

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
Deduce              Implication Graph
x1

x2

x3 x3 x3

x4 x4 x5

        x8

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
Deduce              Implication Graph
x1

x2

x3 x3 x3

x4 x4 x5           ¬x8@0

        x8

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
Decide              Implication Graph
x1

x2

x3 x3 x3

x4 x4 x5           ¬x8@0

        x8

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
Decide              Implication Graph
x1            x1

x2                 x1@1
x3 x3 x3

x4 x4 x5           ¬x8@0

        x8

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
Decide              Implication Graph
x1            x1

x2            x2                      x2@2
                   x1@1
x3 x3 x3

x4 x4 x5           ¬x8@0

        x8

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
Deduce              Implication Graph
x1           x1

x2           x2                       x2@2
                   x1@1
x3 x3 x3

x4 x4 x5           ¬x8@0

        x8

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
Deduce              Implication Graph
x1           x1
                                             ω8
x2           x2                       x2@2     ¬x7@2
                   x1@1
x3 x3 x3

x4 x4 x5           ¬x8@0

        x8

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
Deduce              Implication Graph
x1           x1
                                                ω8
x2           x2                          x2@2    ¬x7@2
                   x1@1     ω9
                                          ω9
x3 x3 x3                         ¬x4@2

x4 x4 x5           ¬x8@0

        x8

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
Decide              Implication Graph
x1            x1
                                                ω8
x2            x2                         x2@2    ¬x7@2
                   x1@1     ω9
                                          ω9
x3 x3 x3                         ¬x4@2

x4 x4 x5           ¬x8@0

        x8

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
Decide              Implication Graph
x1            x1   x3@3
                                                ω8
x2            x2                         x2@2    ¬x7@2
                   x1@1     ω9
                                          ω9
x3 x3 x3 x3                      ¬x4@2

x4 x4 x5           ¬x8@0

        x8

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
Decide              Implication Graph
x1            x1   x3@3
                                                ω8
x2            x2                         x2@2    ¬x7@2
                   x1@1     ω9
                                          ω9
x3 x3 x3 x3                      ¬x4@2

x4 x4 x5 x5        ¬x8@0

        x8                                            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
Deduce              Implication Graph
x1           x1    x3@3
                                                ω8
x2           x2                          x2@2    ¬x7@2
                   x1@1     ω9
                                          ω9
x3 x3 x3 x3                      ¬x4@2

x4 x4 x5 x5        ¬x8@0

        x8                                            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
Deduce              Implication Graph
x1           x1    x3@3
                                                ω8
x2           x2                          x2@2    ¬x7@2
                   x1@1     ω9
                                          ω9         ω3
x3 x3 x3 x3                      ¬x4@2
                                          ¬x6@4
x4 x4 x5 x5        ¬x8@0                              ω3


        x8                                                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
Decide              Implication Graph
x1            x1   x3@3
                                                ω8
x2            x2                         x2@2    ¬x7@2
                   x1@1     ω9
                                          ω9         ω3
x3 x3 x3 x3                      ¬x4@2
                                          ¬x6@4
x4 x4 x5 x5        ¬x8@0                              ω3


        x8                                                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
Decide              Implication Graph
x1            x1   x3@3
                                                ω8
x2            x2                         x2@2    ¬x7@2
                   x1@1     ω9
                                          ω9         ω3
x3 x3 x3 x3                      ¬x4@2
                                          ¬x6@4
x4 x4 x5 x5        ¬x8@0                              ω3


        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
Implication Graph
x1       x1      x3@3
                                              ω8
x2       x2                            x2@2    ¬x7@2
                 x1@1     ω9
                                        ω9         ω3
x3 x3 x3 x3                    ¬x4@2
                                        ¬x6@4
x4 x4 x5 x5      ¬x8@0                              ω3


      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
Implication Graph
x1        x1         x3@3
                                                  ω8
x2        x2                               x2@2    ¬x7@2
                     x1@1     ω9
                                            ω9         ω3
x3 x3 x3 x3
  All variables are
                                   ¬x4@2
                                             ¬x6@4
x4 x4 x5 x5          ¬x8@0                              ω3


      x8 x9          x9@5                                   x5@4

assigned without
Clause 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
Implication Graph
x1       x1      x3@3
                                              ω8
x2       x2                            x2@2    ¬x7@2
                 x1@1     ω9
                                        ω9         ω3
x3 x3 x3 x3                    ¬x4@2
                                        ¬x6@4
x4 x4 x5 x5      ¬x8@0                              ω3


      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
Implication Graph
x1       x1      x3@3
                                              ω8
x2       x2                            x2@2    ¬x7@2
                 x1@1     ω9
                                        ω9         ω3
x3 x3 x3 x3                    ¬x4@2
                                        ¬x6@4
x4 x4 x5 x5      ¬x8@0                              ω3


      x8 x9      x9@5                                   x5@4

Clause 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
Implication Graph
x1       x1      x3@3
                                              ω8
x2       x2                            x2@2    ¬x7@2
                 x1@1     ω9
                                        ω9         ω3
x3 x3 x3 x3                    ¬x4@2
                                        ¬x6@4
x4 x4 x5 x5      ¬x8@0                              ω3


      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
Implication Graph
Found 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
fin.
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.

More Related Content

PDF
大規模グラフ解析のための乱択スケッチ技法
PPTX
充足可能性問題のいろいろ
PDF
平面グラフと交通ネットワークのアルゴリズム
PDF
指数時間アルゴリズム入門
PDF
論理レプリケーション用スロットのフェールオーバ機能 (第48回 PostgreSQLアンカンファレンス 発表資料)
PDF
双対性
PDF
競技プログラミング頻出アルゴリズム攻略
PDF
自動定理証明の紹介
大規模グラフ解析のための乱択スケッチ技法
充足可能性問題のいろいろ
平面グラフと交通ネットワークのアルゴリズム
指数時間アルゴリズム入門
論理レプリケーション用スロットのフェールオーバ機能 (第48回 PostgreSQLアンカンファレンス 発表資料)
双対性
競技プログラミング頻出アルゴリズム攻略
自動定理証明の紹介

What's hot (20)

PDF
数式を綺麗にプログラミングするコツ #spro2013
PPTX
Schönhage Strassen Algorithm
PDF
ウェーブレット木の世界
PDF
動的計画法の基礎と応用 ~色々使える大局的最適化法
PDF
Oxygen Not Includedをやるべき4つの理由
PDF
プログラムを高速化する話
PDF
プログラミングコンテストでのデータ構造 2 ~動的木編~
PDF
大規模グラフアルゴリズムの最先端
PPTX
x86x64 SSE4.2 POPCNT
PDF
超簡単!TELNETの話
PDF
最小カットを使って「燃やす埋める問題」を解く
PDF
みんなのPython勉強会#77 パッケージングしよう
PDF
SAT/SMTソルバの仕組み
PDF
オブジェクト指向エクササイズのススメ
PDF
プログラミングコンテストでのデータ構造
PDF
直交領域探索
PDF
文字列検索のいろいろ
PDF
ServiceとRepository
PDF
プログラミングコンテストでの乱択アルゴリズム
数式を綺麗にプログラミングするコツ #spro2013
Schönhage Strassen Algorithm
ウェーブレット木の世界
動的計画法の基礎と応用 ~色々使える大局的最適化法
Oxygen Not Includedをやるべき4つの理由
プログラムを高速化する話
プログラミングコンテストでのデータ構造 2 ~動的木編~
大規模グラフアルゴリズムの最先端
x86x64 SSE4.2 POPCNT
超簡単!TELNETの話
最小カットを使って「燃やす埋める問題」を解く
みんなのPython勉強会#77 パッケージングしよう
SAT/SMTソルバの仕組み
オブジェクト指向エクササイズのススメ
プログラミングコンテストでのデータ構造
直交領域探索
文字列検索のいろいろ
ServiceとRepository
プログラミングコンテストでの乱択アルゴリズム
Ad

More from Masahiro Sakai (20)

PDF
DeepXplore: Automated Whitebox Testing of Deep Learning
PDF
Towards formal verification of neural networks
PDF
関数プログラマから見たPythonと機械学習
PDF
Writing a SAT solver as a hobby project
PDF
RClassify: Classifying Race Conditions in Web Applications via Deterministic ...
PDF
ゼロピッチ: MOOC
PDF
SAT/SMT solving in Haskell
PDF
Introduction to Max-SAT and Max-SAT Evaluation
PDF
Aluminum: Principled Scenario Exploration through Minimality
PDF
代数的実数とCADの実装紹介
PDF
Omega test and beyond
PDF
萩野服部研究室 スキー合宿 2012 自己紹介(酒井)
PDF
“Adoption and Focus: Practical Linear Types for Imperative Programming”他の紹介@P...
PDF
“Design and Implementation of Generics for the .NET Common Language Runtime”他...
PDF
Relaxed Dependency Analysis
PDF
“Symbolic bounds analysis of pointers, array indices, and accessed memory reg...
PDF
自然言語をラムダ式で解釈する体系PTQのHaskell実装
PDF
Whole Program Paths 等の紹介@PLDIr#3
PDF
Run-time Code Generation and Modal-ML の紹介@PLDIr#2
PDF
Introduction to Categorical Programming (Revised)
DeepXplore: Automated Whitebox Testing of Deep Learning
Towards formal verification of neural networks
関数プログラマから見たPythonと機械学習
Writing a SAT solver as a hobby project
RClassify: Classifying Race Conditions in Web Applications via Deterministic ...
ゼロピッチ: MOOC
SAT/SMT solving in Haskell
Introduction to Max-SAT and Max-SAT Evaluation
Aluminum: Principled Scenario Exploration through Minimality
代数的実数とCADの実装紹介
Omega test and beyond
萩野服部研究室 スキー合宿 2012 自己紹介(酒井)
“Adoption and Focus: Practical Linear Types for Imperative Programming”他の紹介@P...
“Design and Implementation of Generics for the .NET Common Language Runtime”他...
Relaxed Dependency Analysis
“Symbolic bounds analysis of pointers, array indices, and accessed memory reg...
自然言語をラムダ式で解釈する体系PTQのHaskell実装
Whole Program Paths 等の紹介@PLDIr#3
Run-time Code Generation and Modal-ML の紹介@PLDIr#2
Introduction to Categorical Programming (Revised)
Ad

Recently uploaded (20)

PPTX
A Presentation on Artificial Intelligence
PDF
project resource management chapter-09.pdf
PDF
Hybrid model detection and classification of lung cancer
PPTX
Chapter 5: Probability Theory and Statistics
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
TLE Review Electricity (Electricity).pptx
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Mushroom cultivation and it's methods.pdf
PDF
1 - Historical Antecedents, Social Consideration.pdf
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
A Presentation on Artificial Intelligence
project resource management chapter-09.pdf
Hybrid model detection and classification of lung cancer
Chapter 5: Probability Theory and Statistics
Unlocking AI with Model Context Protocol (MCP)
Programs and apps: productivity, graphics, security and other tools
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Digital-Transformation-Roadmap-for-Companies.pptx
TLE Review Electricity (Electricity).pptx
Assigned Numbers - 2025 - Bluetooth® Document
Mushroom cultivation and it's methods.pdf
1 - Historical Antecedents, Social Consideration.pdf
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Group 1 Presentation -Planning and Decision Making .pptx
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Encapsulation_ Review paper, used for researhc scholars
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11

How a CDCL SAT solver works

  • 1. How a CDCL SAT Solver works Masahiro Sakai Twitter: @masahiro_sakai
  • 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. 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. Decide Implication Graph 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
  • 5. Decide Implication Graph x1 x1@1 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
  • 6. Decide Implication Graph x1 x2 x2@2 x1@1 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
  • 7. Decide Implication Graph x1 x3@3 x2 x2@2 x1@1 x3 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
  • 8. Decide Implication Graph x1 x3@3 x2 x2@2 x1@1 x3 x4@4 x4 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
  • 9. Deduce Implication Graph x1 x3@3 x2 x2@2 x1@1 x3 x4@4 x4 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
  • 10. Deduce Implication Graph x1 x3@3 x2 ω1 x2@2 x1@1 x5@4 x3 ω1 x4@4 x4 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
  • 11. Deduce Implication Graph x1 x3@3 x2 ω1 x2@2 x1@1 x5@4 x3 ω1 x4@4 x4 ω2 x6@4 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
  • 12. Deduce Implication Graph x1 x3@3 x2 ω1 x2@2 x1@1 x5@4 x3 ω3 ω1 x4@4 x7@4 x4 ω2 ω3 x6@4 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
  • 13. Deduce Implication Graph x1 x3@3 x2 ω1 x2@2 x1@1 x5@4 x3 ω3 ω1 x4@4 x7@4 x4 ω2 ω3 ω4 x6@4 x8@4 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
  • 14. Deduce Implication Graph x1 x3@3 x2 ω1 x2@2 ω5 x1@1 x5@4 x9@4 x3 ω3 ω5 ω1 x4@4 x7@4 x4 ω2 ω3 ω4 x6@4 x8@4 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
  • 15. Deduce Implication Graph x1 x3@3 x2 ω1 x2@2 ω5 x1@1 x5@4 x9@4 x3 ω3 ω5 ω6 ω1 x4@4 x7@4 x4 ω2 ω3 ω4 ω6 x6@4 x8@4 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
  • 16. Deduce Implication Graph x1 x3@3 x2 ω1 x2@2 ω5 x1@1 x5@4 x9@4 x3 ω3 ω5 ω6 ω1 x4@4 x7@4 x4 ω2 ω3 ω4 ω6 x6@4 x8@4 Clause 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. 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@4 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
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Backtrack Implication Graph Learnt clause: ¬x2 ¬x7 x3@3 ω1 x2@2 ω5 x2 was set at level 2 x1@1 x7 was set at level 4 x5@4 x9@4 ω3 ω5 ω6 Assertion level of this clause (which is the ω1 second highest level) x4@4 x7@4 is 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. Backtrack Implication Graph x1 x3@3 x2 ω1 x2@2 ω5 x1@1 x5@4 x9@4 x3 ω3 ω5 ω6 ω1 x4@4 x7@4 x4 ω2 ω3 ω4 ω6 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
  • 29. Backtrack Implication Graph x1 x3@3 x2 ω1 x2@2 ω5 x1@1 x5@4 x9@4 x3 ω3 ω5 ω1 x4@4 x7@4 x4 ω2 ω3 ω4 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
  • 30. Backtrack Implication Graph x1 x3@3 x2 ω1 x2@2 x1@1 x5@4 x3 ω3 ω1 x4@4 x7@4 x4 ω2 ω3 ω4 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
  • 31. Backtrack Implication Graph x1 x3@3 x2 ω1 x2@2 x1@1 x5@4 x3 ω3 ω1 x4@4 x7@4 x4 ω2 ω3 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 • ω5: ¬x2 ¬x7 x9
  • 32. Backtrack Implication Graph x1 x3@3 x2 ω1 x2@2 x1@1 x5@4 x3 ω1 x4@4 x4 ω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 • ω5: ¬x2 ¬x7 x9
  • 33. Backtrack Implication Graph x1 x3@3 x2 ω1 x2@2 x1@1 x5@4 x3 ω1 x4@4 x4 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
  • 34. Backtrack Implication Graph x1 x3@3 x2 x2@2 x1@1 x3 x4@4 x4 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
  • 35. Backtrack Implication Graph x1 x3@3 x2 x2@2 x1@1 x3 x4 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
  • 36. Backtrack Implication Graph x1 x2 x2@2 x1@1 x3 x4 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
  • 37. Deduce Implication Graph x1 x2 x2@2 x1@1 x3 x4 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
  • 38. Deduce Implication Graph x1 ω8 x2 x2@2 ¬x7@2 x1@1 x3 x4 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
  • 39. Decide Implication Graph x1 ω8 x2 x2@2 ¬x7@2 x1@1 x3 x4 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
  • 40. Decide Implication Graph x1 x3@3 ω8 x2 x2@2 ¬x7@2 x1@1 x3 x3 x4 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
  • 41. Decide Implication Graph x1 x3@3 ω8 x2 x2@2 ¬x7@2 x1@1 x3 x3 x4@4 x4 x4 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
  • 42. Deduce Implication Graph x1 x3@3 ω8 x2 x2@2 ¬x7@2 x1@1 x3 x3 x4@4 x4 x4 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
  • 43. Deduce Implication Graph x1 x3@3 ω8 x2 ω1 x2@2 ¬x7@2 x1@1 x5@4 x3 x3 ω1 x4@4 x4 x4 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
  • 44. Deduce Implication Graph x1 x3@3 ω8 x2 ω1 x2@2 ¬x7@2 x1@1 x5@4 x3 x3 ω1 x4@4 x4 x4 ω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 • ω5: ¬x2 ¬x7 x9
  • 45. Deduce Implication Graph x1 x3@3 ω8 x2 ω1 x2@2 ¬x7@2 x1@1 x5@4 x3 x3 ω3 ω3 ω1 x4@4 x4 x4 ω2 ω3 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 • ω5: ¬x2 ¬x7 x9
  • 46. Deduce Implication Graph x1 x3@3 ω8 x2 ω1 x2@2 ¬x7@2 x1@1 x5@4 x3 x3 ω3 ω3 ω1 x4@4 x4 x4 ω2 ω3 x6@4 Clause 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. Diagnose Implication Graph x3@3 ω8 ω1 x2@2 ¬x7@2 x1@1 x5@4 ω3 ω3 ω1 x4@4 ω2 ω3 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 • ω5: ¬x2 ¬x7 x9
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Backtrack Implication Graph Learnt clause: ¬x1 ¬x4 x7 x3@3 ω8 ω1 x2@2 ¬x7@2 x1 was set at level 1 x1@1 x4 was set at level 4 x5@4 x7 was set at level 2 ω3 ω3 ω1 Assertion level of this x4@4 clause 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. Backtrack Implication Graph x1 x3@3 ω8 x2 ω1 x2@2 ¬x7@2 x1@1 x5@4 x3 x3 ω3 ω3 ω1 x4@4 x4 x4 ω2 ω3 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
  • 59. Backtrack Implication Graph x1 ω8 x2 x2@2 ¬x7@2 x1@1 x3 x3 x4 x4 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
  • 60. Deduce Implication Graph x1 ω8 x2 x2@2 ¬x7@2 x1@1 x3 x3 x4 x4 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
  • 61. Deduce Implication Graph x1 ω8 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 x3 x3 ¬x4@2 x4 x4 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
  • 62. Decide Implication Graph x1 ω8 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 x3 x3 ¬x4@2 x4 x4 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
  • 63. Decide Implication Graph x1 x3@3 ω8 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 x3 x3 x3 ¬x4@2 x4 x4 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
  • 64. Decide Implication Graph x1 x3@3 ω8 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 x3 x3 x3 ¬x4@2 x4 x4 x5 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
  • 65. Deduce Implication Graph x1 x3@3 ω8 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 x3 x3 x3 ¬x4@2 x4 x4 x5 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
  • 66. Deduce Implication Graph x1 x3@3 ω8 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3 x3 x3 x3 ¬x4@2 ¬x6@4 x4 x4 x5 ω3 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
  • 67. Decide Implication Graph x1 x3@3 ω8 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3 x3 x3 x3 ¬x4@2 ¬x6@4 x4 x4 x5 ω3 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
  • 68. Decide Implication Graph x1 x3@3 ω8 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3 x3 x3 x3 ¬x4@2 ¬x6@4 x4 x4 x5 x8@5 ω3 x8 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
  • 69. Deduce Implication Graph x1 x3@3 ω8 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3 x3 x3 x3 ¬x4@2 ¬x6@4 x4 x4 x5 x8@5 ω3 x8 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
  • 70. Deduce Implication Graph x1 x3@3 ω8 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3 x3 x3 x3 ¬x4@2 ω6 ¬x6@4 x4 x4 x5 x8@5 ¬x9@5 ω3 x8 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
  • 71. Deduce Implication Graph x1 x3@3 ω8 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3 x3 x3 x3 ¬x4@2 ω6 ¬x6@4 x4 x4 x5 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4 x8 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
  • 72. Deduce Implication Graph x1 x3@3 ω8 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3 x3 x3 x3 ¬x4@2 ω6 ¬x6@4 x4 x4 x5 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4 x8 Clause 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. 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@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
  • 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. 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. 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. 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. 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 It 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. 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 It 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. Backtrack Implication Graph Learnt clause: ¬x8 x3@3 ω8 x2@2 ¬x7@2 x8 was set at level 5 x1@1 ω9 ω9 ω3 Assertion level of this ¬x4@2 clause (which is the second highest level) ω6 ¬x6@4 is 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. Backtrack Implication Graph x1 x3@3 ω8 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3 x3 x3 x3 ¬x4@2 ω6 ¬x6@4 x4 x4 x5 x8@5 ¬x9@5 ω3 ω7 ω7 x5@4 x8 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
  • 82. Backtrack Implication Graph x1 x2 x3 x3 x3 x4 x4 x5 x8 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
  • 83. Deduce Implication Graph x1 x2 x3 x3 x3 x4 x4 x5 x8 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
  • 84. Deduce Implication Graph x1 x2 x3 x3 x3 x4 x4 x5 ¬x8@0 x8 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
  • 85. Decide Implication Graph x1 x2 x3 x3 x3 x4 x4 x5 ¬x8@0 x8 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
  • 86. Decide Implication Graph x1 x1 x2 x1@1 x3 x3 x3 x4 x4 x5 ¬x8@0 x8 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
  • 87. Decide Implication Graph x1 x1 x2 x2 x2@2 x1@1 x3 x3 x3 x4 x4 x5 ¬x8@0 x8 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
  • 88. Deduce Implication Graph x1 x1 x2 x2 x2@2 x1@1 x3 x3 x3 x4 x4 x5 ¬x8@0 x8 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
  • 89. Deduce Implication Graph x1 x1 ω8 x2 x2 x2@2 ¬x7@2 x1@1 x3 x3 x3 x4 x4 x5 ¬x8@0 x8 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
  • 90. Deduce Implication Graph x1 x1 ω8 x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 x3 x3 x3 ¬x4@2 x4 x4 x5 ¬x8@0 x8 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
  • 91. Decide Implication Graph x1 x1 ω8 x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 x3 x3 x3 ¬x4@2 x4 x4 x5 ¬x8@0 x8 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
  • 92. Decide Implication Graph x1 x1 x3@3 ω8 x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 x3 x3 x3 x3 ¬x4@2 x4 x4 x5 ¬x8@0 x8 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
  • 93. Decide Implication Graph x1 x1 x3@3 ω8 x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 x3 x3 x3 x3 ¬x4@2 x4 x4 x5 x5 ¬x8@0 x8 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
  • 94. Deduce Implication Graph x1 x1 x3@3 ω8 x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 x3 x3 x3 x3 ¬x4@2 x4 x4 x5 x5 ¬x8@0 x8 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
  • 95. Deduce Implication Graph x1 x1 x3@3 ω8 x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3 x3 x3 x3 x3 ¬x4@2 ¬x6@4 x4 x4 x5 x5 ¬x8@0 ω3 x8 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
  • 96. Decide Implication Graph x1 x1 x3@3 ω8 x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3 x3 x3 x3 x3 ¬x4@2 ¬x6@4 x4 x4 x5 x5 ¬x8@0 ω3 x8 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
  • 97. Decide Implication Graph x1 x1 x3@3 ω8 x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3 x3 x3 x3 x3 ¬x4@2 ¬x6@4 x4 x4 x5 x5 ¬x8@0 ω3 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
  • 98. Implication Graph x1 x1 x3@3 ω8 x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3 x3 x3 x3 x3 ¬x4@2 ¬x6@4 x4 x4 x5 x5 ¬x8@0 ω3 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
  • 99. Implication Graph x1 x1 x3@3 ω8 x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3 x3 x3 x3 x3 All variables are ¬x4@2 ¬x6@4 x4 x4 x5 x5 ¬x8@0 ω3 x8 x9 x9@5 x5@4 assigned without Clause 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. Implication Graph x1 x1 x3@3 ω8 x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3 x3 x3 x3 x3 ¬x4@2 ¬x6@4 x4 x4 x5 x5 ¬x8@0 ω3 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
  • 101. Implication Graph x1 x1 x3@3 ω8 x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3 x3 x3 x3 x3 ¬x4@2 ¬x6@4 x4 x4 x5 x5 ¬x8@0 ω3 x8 x9 x9@5 x5@4 Clause 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. Implication Graph x1 x1 x3@3 ω8 x2 x2 x2@2 ¬x7@2 x1@1 ω9 ω9 ω3 x3 x3 x3 x3 ¬x4@2 ¬x6@4 x4 x4 x5 x5 ¬x8@0 ω3 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
  • 103. Implication Graph Found 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. fin.
  • 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.

Editor's Notes