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.

How a CDCL SAT solver works

  • 1.
    How a CDCLSAT Solver works Masahiro Sakai Twitter: @masahiro_sakai
  • 2.
    Abstract • Demonstrating howa 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 amodel 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.
  • 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