Combining SAT solving with Integer Programming for Inductive - - PowerPoint PPT Presentation

combining sat solving with integer programming for
SMART_READER_LITE
LIVE PREVIEW

Combining SAT solving with Integer Programming for Inductive - - PowerPoint PPT Presentation

Introduction Verification Analysis Summary Combining SAT solving with Integer Programming for Inductive Verification of Lustre Programs 3rd December 2004 Anders Franz en Combining SAT and ILP Introduction Verification Analysis


slide-1
SLIDE 1

Introduction Verification Analysis Summary

Combining SAT solving with Integer Programming for Inductive Verification of Lustre Programs

3rd December 2004

Anders Franz´ en Combining SAT and ILP

slide-2
SLIDE 2

Introduction Verification Analysis Summary

Outline

1

Introduction The Lustre programming language Temporal induction Propositional logic

2

Verification The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

3

Analysis Test plan Comparison with Luke

Anders Franz´ en Combining SAT and ILP

slide-3
SLIDE 3

Introduction Verification Analysis Summary

Outline

1

Introduction The Lustre programming language Temporal induction Propositional logic

2

Verification The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

3

Analysis Test plan Comparison with Luke

Anders Franz´ en Combining SAT and ILP

slide-4
SLIDE 4

Introduction Verification Analysis Summary

Outline

1

Introduction The Lustre programming language Temporal induction Propositional logic

2

Verification The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

3

Analysis Test plan Comparison with Luke

Anders Franz´ en Combining SAT and ILP

slide-5
SLIDE 5

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

Lustre

node Counter ( X : bool ) returns ( C : int ); var PC : int; let PC = 0 → pre C; C = if X then PC + 1 else PC; tel node Prop( X : bool ) returns ( OK : bool ); let OK = Counter( X ) ≥ 0; tel

Anders Franz´ en Combining SAT and ILP

slide-6
SLIDE 6

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

Verification by induction

Prove property valid in initial time point

T

✲ ✲ ❄ ❄

X1 OK1 PC1 PC0

Assume property valid at time n, prove property valid at time n + 1

T T

❄ ❄ ✲ ❄ ❄ ✲ ✲

Xn+1 OKn+1? PCn+1 Xn OKn! PCn−1 PCn

Induction incomplete for unbounded integers Lustre with unbounded integers Turing-complete

Anders Franz´ en Combining SAT and ILP

slide-7
SLIDE 7

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

Verification by induction

Prove property valid in initial time point

T

✲ ✲ ❄ ❄

X1 OK1 PC1 PC0

Assume property valid at time n, prove property valid at time n + 1

T T

❄ ❄ ✲ ❄ ❄ ✲ ✲

Xn+1 OKn+1? PCn+1 Xn OKn! PCn−1 PCn

Induction incomplete for unbounded integers Lustre with unbounded integers Turing-complete

Anders Franz´ en Combining SAT and ILP

slide-8
SLIDE 8

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

Verification by induction

Prove property valid in initial time point

T

✲ ✲ ❄ ❄

X1 OK1 PC1 PC0

Assume property valid at time n, prove property valid at time n + 1

T T

❄ ❄ ✲ ❄ ❄ ✲ ✲

Xn+1 OKn+1? PCn+1 Xn OKn! PCn−1 PCn

Induction incomplete for unbounded integers Lustre with unbounded integers Turing-complete

Anders Franz´ en Combining SAT and ILP

slide-9
SLIDE 9

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

Verification by induction

Prove property valid in initial time point

T

✲ ✲ ❄ ❄

X1 OK1 PC1 PC0

Assume property valid at time n, prove property valid at time n + 1

T T

❄ ❄ ✲ ❄ ❄ ✲ ✲

Xn+1 OKn+1? PCn+1 Xn OKn! PCn−1 PCn

Induction incomplete for unbounded integers Lustre with unbounded integers Turing-complete

Anders Franz´ en Combining SAT and ILP

slide-10
SLIDE 10

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

Verification by induction

Prove property valid in initial time point

T

✲ ✲ ❄ ❄

X1 OK1 PC1 PC0

Assume property valid at time n, prove property valid at time n + 1

T T

❄ ❄ ✲ ❄ ❄ ✲ ✲

Xn+1 OKn+1? PCn+1 Xn OKn! PCn−1 PCn

Induction incomplete for unbounded integers Lustre with unbounded integers Turing-complete

Anders Franz´ en Combining SAT and ILP

slide-11
SLIDE 11

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

Propositional logic

Example {p, q} Short introduction A clause is a set of literals. At least one literal must be true. A formula is a set of clauses. All clauses must be true.

Anders Franz´ en Combining SAT and ILP

slide-12
SLIDE 12

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

Propositional logic

Example {p, q} {p, ¬q, r} {¬q, ¬r} Short introduction A clause is a set of literals. At least one literal must be true. A formula is a set of clauses. All clauses must be true.

Anders Franz´ en Combining SAT and ILP

slide-13
SLIDE 13

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

SAT solving

Example {p, q} {p, ¬q, r} {¬q, ¬r} Search for a satisfying variable assignment Choose a variable, and assign at value to it Infer consequences Repeat until all variables assigned, or a conflict found

Anders Franz´ en Combining SAT and ILP

slide-14
SLIDE 14

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

SAT solving

Example {p, q} {p, ¬q, r} {¬q, ¬r} p = ⊥ Search for a satisfying variable assignment Choose a variable, and assign at value to it Infer consequences Repeat until all variables assigned, or a conflict found

Anders Franz´ en Combining SAT and ILP

slide-15
SLIDE 15

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

SAT solving

Example {p, q} {p, ¬q, r} {¬q, ¬r} p = ⊥ Search for a satisfying variable assignment Choose a variable, and assign at value to it Infer consequences Repeat until all variables assigned, or a conflict found

Anders Franz´ en Combining SAT and ILP

slide-16
SLIDE 16

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

SAT solving

Example {p, q} {p, ¬q, r} {¬q, ¬r} p = ⊥ q = ⊤ Search for a satisfying variable assignment Choose a variable, and assign at value to it Infer consequences Repeat until all variables assigned, or a conflict found

Anders Franz´ en Combining SAT and ILP

slide-17
SLIDE 17

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

SAT solving

Example {p, q} {p, ¬q, r} {¬q, ¬r} p = ⊥ q = ⊤ r = ⊤ and ⊥?? Search for a satisfying variable assignment Choose a variable, and assign at value to it Infer consequences Repeat until all variables assigned, or a conflict found

Anders Franz´ en Combining SAT and ILP

slide-18
SLIDE 18

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

SAT solving

Example {p, q} {p, ¬q, r} {¬q, ¬r} p = ⊥ q = ⊤ r = ⊤ and ⊥?? Search for a satisfying variable assignment Analyze reason for conflict Add conflict clause Backtrack and continue

Anders Franz´ en Combining SAT and ILP

slide-19
SLIDE 19

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

SAT solving

Example {p, q} {p, ¬q, r} {¬q, ¬r} p = ⊥ q = ⊤ r = ⊤ and ⊥?? Search for a satisfying variable assignment Analyze reason for conflict Add conflict clause Backtrack and continue

Anders Franz´ en Combining SAT and ILP

slide-20
SLIDE 20

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

SAT solving

Example {p, q} {p, ¬q, r} {¬q, ¬r} {p} p = ⊥ q = ⊤ r = ⊤ and ⊥?? Search for a satisfying variable assignment Analyze reason for conflict Add conflict clause Backtrack and continue

Anders Franz´ en Combining SAT and ILP

slide-21
SLIDE 21

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

SAT solving

Example {p, q} {p, ¬q, r} {¬q, ¬r} {p} Search for a satisfying variable assignment Analyze reason for conflict Add conflict clause Backtrack and continue

Anders Franz´ en Combining SAT and ILP

slide-22
SLIDE 22

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

SAT solving

Example {p, q} {p, ¬q, r} {¬q, ¬r} {p} p = ⊤ Search for a satisfying variable assignment Analyze reason for conflict Add conflict clause Backtrack and continue

Anders Franz´ en Combining SAT and ILP

slide-23
SLIDE 23

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

SAT solving

Example {p, q} {p, ¬q, r} {¬q, ¬r} {p} p = ⊤ q = ⊥ Search for a satisfying variable assignment Analyze reason for conflict Add conflict clause Backtrack and continue

Anders Franz´ en Combining SAT and ILP

slide-24
SLIDE 24

Introduction Verification Analysis Summary The Lustre programming language Temporal induction SAT

SAT solving

Example {p, q} {p, ¬q, r} {¬q, ¬r} {p} p = ⊤ q = ⊥ r = ⊥ Search for a satisfying variable assignment Analyze reason for conflict Add conflict clause Backtrack and continue

Anders Franz´ en Combining SAT and ILP

slide-25
SLIDE 25

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

A small example

The formula in CNF A simple counter node Counter() returns ( OK : bool ); var C : int; let C = 0 → pre C + 1; OK = C ≥ 0; tel Translate to logic Assume property invalid Is there a variable assignment satisfying the formula?

Anders Franz´ en Combining SAT and ILP

slide-26
SLIDE 26

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

A small example

The formula in CNF { C1 ≤ 0 } { C1 ≥ 0 } { ¬OK1, C1 ≥ 0 } { OK1, C1 ≤ −1 } A simple counter node Counter() returns ( OK : bool ); var C : int; let C = 0 → pre C + 1; OK = C ≥ 0; tel Translate to logic Assume property invalid Is there a variable assignment satisfying the formula?

Anders Franz´ en Combining SAT and ILP

slide-27
SLIDE 27

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

A small example

The formula in CNF { C1 ≤ 0 } { C1 ≥ 0 } { ¬OK1, C1 ≥ 0 } { OK1, C1 ≤ −1 } { ¬OK1} A simple counter node Counter() returns ( OK : bool ); var C : int; let C = 0 → pre C + 1; OK = C ≥ 0; tel Translate to logic Assume property invalid Is there a variable assignment satisfying the formula?

Anders Franz´ en Combining SAT and ILP

slide-28
SLIDE 28

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

A small example

The formula in CNF { C1 ≤ 0 } { C1 ≥ 0 } { ¬OK1, C1 ≥ 0 } { OK1, C1 ≤ −1 } { ¬OK1} A simple counter node Counter() returns ( OK : bool ); var C : int; let C = 0 → pre C + 1; OK = C ≥ 0; tel Translate to logic Assume property invalid Is there a variable assignment satisfying the formula?

Anders Franz´ en Combining SAT and ILP

slide-29
SLIDE 29

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

The basic algorithm

The formula in CNF { C1 ≤ 0 } { C1 ≥ 0 } { ¬OK1, C1 ≥ 0 } { OK1, C1 ≤ −1 } { ¬OK1} Step 1: Create in-place variables Create a fresh propositional variable for each constraint p1 → C1 ≤ 0 p2 → C1 ≥ 0 p3 → C1 ≥ 0 p4 → C1 ≤ −1 And replace all constraints with their in-place variable.

Anders Franz´ en Combining SAT and ILP

slide-30
SLIDE 30

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

The basic algorithm

The formula in CNF { C1 ≤ 0 } { C1 ≥ 0 } { ¬OK1, C1 ≥ 0 } { OK1, C1 ≤ −1 } { ¬OK1} Step 1: Create in-place variables Create a fresh propositional variable for each constraint p1 → C1 ≤ 0 p2 → C1 ≥ 0 p3 → C1 ≥ 0 p4 → C1 ≤ −1 And replace all constraints with their in-place variable.

Anders Franz´ en Combining SAT and ILP

slide-31
SLIDE 31

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

The basic algorithm

The formula in CNF { C1 ≤ 0 } { C1 ≥ 0 } { ¬OK1, C1 ≥ 0 } { OK1, C1 ≤ −1 } { ¬OK1} Step 1: Create in-place variables Create a fresh propositional variable for each constraint p1 → C1 ≤ 0 p2 → C1 ≥ 0 p3 → C1 ≥ 0 p4 → C1 ≤ −1 And replace all constraints with their in-place variable.

Anders Franz´ en Combining SAT and ILP

slide-32
SLIDE 32

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

The basic algorithm

The formula in CNF { p1 } { p2 } { ¬OK1, p3 } { OK1, p4 } { ¬OK1} p1 → C1 ≤ 1 p2 → C1 ≥ 0 p3 → C1 ≥ 0 p4 → C1 ≤ −1 Step 1: Create in-place variables Create a fresh propositional variable for each constraint p1 → C1 ≤ 0 p2 → C1 ≥ 0 p3 → C1 ≥ 0 p4 → C1 ≤ −1 And replace all constraints with their in-place variable.

Anders Franz´ en Combining SAT and ILP

slide-33
SLIDE 33

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

The basic algorithm

The formula in CNF { p1 } { p2 } { ¬OK1, p3 } { OK1, p4 } { ¬OK1} p1 → C1 ≤ 0 p2 → C1 ≥ 0 p3 → C1 ≥ 0 p4 → C1 ≤ −1 Step 2: Run through SAT solver A SAT model is returned p1 =⊤ p2 =⊤ p3 =⊥ p4 =⊤ OK1=⊥ Create a constraint problem based on the in-place variables.

Anders Franz´ en Combining SAT and ILP

slide-34
SLIDE 34

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

The basic algorithm

The formula in CNF { p1 } { p2 } { ¬OK1, p3 } { OK1, p4 } { ¬OK1} p1 → C1 ≤ 0 p2 → C1 ≥ 0 p3 → C1 ≥ 0 p4 → C1 ≤ −1 Step 2: Run through SAT solver A SAT model is returned p1 =⊤ p2 =⊤ p3 =⊥ p4 =⊤ OK1=⊥ Create a constraint problem based on the in-place variables.

Anders Franz´ en Combining SAT and ILP

slide-35
SLIDE 35

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

The basic algorithm

The formula in CNF { p1 } { p2 } { ¬OK1, p3 } { OK1, p4 } { ¬OK1} p1 → C1 ≤ 0 p2 → C1 ≥ 0 p3 → C1 ≥ 0 p4 → C1 ≤ −1 Step 2: Run through SAT solver A SAT model is returned p1 =⊤ p2 =⊤ p3 =⊥ p4 =⊤ OK1=⊥ Create a constraint problem based on the in-place variables.

Anders Franz´ en Combining SAT and ILP

slide-36
SLIDE 36

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

The basic algorithm

The formula in CNF { p1 } { p2 } { ¬OK1, p3 } { OK1, p4 } { ¬OK1} p1 → C1 ≤ 0 p2 → C1 ≥ 0 p3 → C1 ≥ 0 p4 → C1 ≤ −1 Step 2: Run through SAT solver A SAT model is returned p1 =⊤ p2 =⊤ p3 =⊥ p4 =⊤ OK1=⊥ Create a constraint problem based on the in-place variables.

Anders Franz´ en Combining SAT and ILP

slide-37
SLIDE 37

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

The basic algorithm

The formula in CNF { p1 } { p2 } { ¬OK1, p3 } { OK1, p4 } { ¬OK1} p1 → C1 ≤ 0 p2 → C1 ≥ 0 p3 → C1 ≥ 0 p4 → C1 ≤ −1 Step 3: Solve constraint problem Run constraint problem trough ILP solver (1) C1 ≤ 0 (2) C1 ≥ 0 (3) C1 < 0 (4) C1 ≤ −1 Constraint 2 and 4 contradict each other. Add explanation to SAT problem. Goto step 2.

Anders Franz´ en Combining SAT and ILP

slide-38
SLIDE 38

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

The basic algorithm

The formula in CNF { p1 } { p2 } { ¬OK1, p3 } { OK1, p4 } { ¬OK1} p1 → C1 ≤ 0 p2 → C1 ≥ 0 p3 → C1 ≥ 0 p4 → C1 ≤ −1 Step 3: Solve constraint problem Run constraint problem trough ILP solver (1) C1 ≤ 0 (2) C1 ≥ 0 (3) C1 < 0 (4) C1 ≤ −1 Constraint 2 and 4 contradict each other. Add explanation to SAT problem. Goto step 2.

Anders Franz´ en Combining SAT and ILP

slide-39
SLIDE 39

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

The basic algorithm

The formula in CNF { p1 } { p2 } { ¬OK1, p3 } { OK1, p4 } { ¬OK1} {¬p2, ¬p4} p1 → C1 ≤ 0 p2 → C1 ≥ 0 p3 → C1 < 0 p4 → C1 ≤ −1 Step 3: Solve constraint problem Run constraint problem trough ILP solver (1) C1 ≤ 0 (2) C1 ≥ 0 (3) C1 < 0 (4) C1 ≤ −1 Constraint 2 and 4 contradict each other. Add explanation to SAT problem. Goto step 2.

Anders Franz´ en Combining SAT and ILP

slide-40
SLIDE 40

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

The basic algorithm

The formula in CNF { p1 } { p2 } { ¬OK1, p3 } { OK1, p4 } { ¬OK1} {¬p2, ¬p4} p1 → C1 ≤ 0 p2 → C1 ≥ 0 p3 → C1 ≥ 0 p4 → C1 ≤ −1 Step 2: Run through SAT solver The formula is unsatisfiable ⇒ The original formula is unsatisfiable. The property is valid in first time point

Anders Franz´ en Combining SAT and ILP

slide-41
SLIDE 41

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

The basic algorithm

The formula in CNF { p1 } { p2 } { ¬OK1, p3 } { OK1, p4 } { ¬OK1} {¬p2, ¬p4} p1 → C1 ≤ 0 p2 → C1 ≥ 0 p3 → C1 ≥ 0 p4 → C1 ≤ −1 Step 2: Run through SAT solver The formula is unsatisfiable ⇒ The original formula is unsatisfiable. The property is valid in first time point

Anders Franz´ en Combining SAT and ILP

slide-42
SLIDE 42

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

The basic algorithm

The formula in CNF { p1 } { p2 } { ¬OK1, p3 } { OK1, p4 } { ¬OK1} {¬p2, ¬p4} p1 → C1 ≤ 0 p2 → C1 ≥ 0 p3 → C1 ≥ 0 p4 → C1 ≤ −1 Step 2: Run through SAT solver The formula is unsatisfiable ⇒ The original formula is unsatisfiable. The property is valid in first time point

Anders Franz´ en Combining SAT and ILP

slide-43
SLIDE 43

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

The basic algorithm

The formula in CNF { p1 } { p2 } { ¬OK1, p3 } { OK1, p4 } { ¬OK1} {¬p2, ¬p4} p1 → C1 ≤ 0 p2 → C1 ≥ 0 p3 → C1 ≥ 0 p4 → C1 ≤ −1 Step 2: Run through SAT solver The formula is unsatisfiable ⇒ The original formula is unsatisfiable. The property is valid in first time point

Anders Franz´ en Combining SAT and ILP

slide-44
SLIDE 44

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

The algorithm

ϕ is a propositional + constraints formula loop Ip ← Psat(ϕ) if Ip = ∅ then return unsatisfiable else C ← generate(ϕ, Ip) if Csat(C) then return satisfiable else ϕ ← ϕ ∪ explain(C) end if end if end loop

Anders Franz´ en Combining SAT and ILP

slide-45
SLIDE 45

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

Other ideas

Check partial SAT models Everytime the SAT solver assigns an in-place variable, check the constraint problem generated by the set of assigned in-place variables. Several methods of creating explanations Several algorithms exist. Finding multiple explanations. Preprocessing Find contradictions in the set of constraints before the decision procedure starts. Faster (incomplete) integer programming procedure Use a cheap procedure that can find the most commonly

  • ccuring contradictions in constraint problems.

Anders Franz´ en Combining SAT and ILP

slide-46
SLIDE 46

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

Other ideas

Check partial SAT models Everytime the SAT solver assigns an in-place variable, check the constraint problem generated by the set of assigned in-place variables. Several methods of creating explanations Several algorithms exist. Finding multiple explanations. Preprocessing Find contradictions in the set of constraints before the decision procedure starts. Faster (incomplete) integer programming procedure Use a cheap procedure that can find the most commonly

  • ccuring contradictions in constraint problems.

Anders Franz´ en Combining SAT and ILP

slide-47
SLIDE 47

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

Other ideas

Check partial SAT models Everytime the SAT solver assigns an in-place variable, check the constraint problem generated by the set of assigned in-place variables. Several methods of creating explanations Several algorithms exist. Finding multiple explanations. Preprocessing Find contradictions in the set of constraints before the decision procedure starts. Faster (incomplete) integer programming procedure Use a cheap procedure that can find the most commonly

  • ccuring contradictions in constraint problems.

Anders Franz´ en Combining SAT and ILP

slide-48
SLIDE 48

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

Other ideas

Check partial SAT models Everytime the SAT solver assigns an in-place variable, check the constraint problem generated by the set of assigned in-place variables. Several methods of creating explanations Several algorithms exist. Finding multiple explanations. Preprocessing Find contradictions in the set of constraints before the decision procedure starts. Faster (incomplete) integer programming procedure Use a cheap procedure that can find the most commonly

  • ccuring contradictions in constraint problems.

Anders Franz´ en Combining SAT and ILP

slide-49
SLIDE 49

Introduction Verification Analysis Summary The decision procedure (SAT + Integer Programming) Variants of the basic algorithm

Rantanplan

Implements all ideas outlined here Based on Luke SAT solver changed to MiniSat Integer programming package GLPK

Anders Franz´ en Combining SAT and ILP

slide-50
SLIDE 50

Introduction Verification Analysis Summary Test plan Comparison with Luke

Test plan

Aim What combinations of ideas work well? How do these ideas compare to Luke and NBAC? Find “good” combinations of ideas Compare these to Luke & NBAC

Anders Franz´ en Combining SAT and ILP

slide-51
SLIDE 51

Introduction Verification Analysis Summary Test plan Comparison with Luke

Test plan

Aim What combinations of ideas work well? How do these ideas compare to Luke and NBAC? Find “good” combinations of ideas Compare these to Luke & NBAC

Anders Franz´ en Combining SAT and ILP

slide-52
SLIDE 52

Introduction Verification Analysis Summary Test plan Comparison with Luke

Test plan

Aim What combinations of ideas work well? How do these ideas compare to Luke and NBAC? Find “good” combinations of ideas Compare these to Luke & NBAC

Anders Franz´ en Combining SAT and ILP

slide-53
SLIDE 53

Introduction Verification Analysis Summary Test plan Comparison with Luke

Test suite

Every test should be verifyable by every tool in the tests. The test suite consists of 137 tests. Some of these are invalid properties. Can not be verified in NBAC. Some have too weak properties. Can not be verified in Rantanplan. Some used unbounded integers. Can not be verified in Luke. Some uses modulo. Can not be verified in NBAC. Some generates constraint problems where branch-and-bound does not terminate. Can not be verified in Rantanplan. We are left with 72 tests.

Anders Franz´ en Combining SAT and ILP

slide-54
SLIDE 54

Introduction Verification Analysis Summary Test plan Comparison with Luke

Test suite

Every test should be verifyable by every tool in the tests. The test suite consists of 137 tests. Some of these are invalid properties. Can not be verified in NBAC. Some have too weak properties. Can not be verified in Rantanplan. Some used unbounded integers. Can not be verified in Luke. Some uses modulo. Can not be verified in NBAC. Some generates constraint problems where branch-and-bound does not terminate. Can not be verified in Rantanplan. We are left with 72 tests.

Anders Franz´ en Combining SAT and ILP

slide-55
SLIDE 55

Introduction Verification Analysis Summary Test plan Comparison with Luke

Comparisons

Tests of the 11 best variants against Luke and NBAC

Anders Franz´ en Combining SAT and ILP

slide-56
SLIDE 56

Introduction Verification Analysis Summary Test plan Comparison with Luke

Comparison with Luke

Tests with execution time > 10s in Luke removed (58 remaining)

Anders Franz´ en Combining SAT and ILP

slide-57
SLIDE 57

Introduction Verification Analysis Summary Test plan Comparison with Luke

Comparison with NBAC

Tests with execution time > 10s in NBAC removed (63 remaining)

Anders Franz´ en Combining SAT and ILP

slide-58
SLIDE 58

Introduction Verification Analysis Summary

Summary

Rantanplan competitive on the test suite used here The branch-and-bound algorithm is incomplete For longer induction depth (e.g. invalid properties w. long counter-examples), Luke outperforms Rantanplan Outlook

Complete integer programming procedure Improvements for larger induction depths Invariant strengthening

Anders Franz´ en Combining SAT and ILP