Exploiting Resolution Proofs to Speed Up LTL Vacuity Detection for - - PowerPoint PPT Presentation

exploiting resolution proofs to speed up ltl vacuity
SMART_READER_LITE
LIVE PREVIEW

Exploiting Resolution Proofs to Speed Up LTL Vacuity Detection for - - PowerPoint PPT Presentation

Exploiting Resolution Proofs to Speed Up LTL Vacuity Detection for BMC Jocelyn Simmonds Jessica Davies Marsha Chechik Department of Computer Science, University of Toronto Arie Gurfinkel Software Engineering Institute at Carnegie Mellon


slide-1
SLIDE 1

Exploiting Resolution Proofs to Speed Up LTL Vacuity Detection for BMC

Jocelyn Simmonds Jessica Davies Marsha Chechik

Department of Computer Science, University of Toronto

Arie Gurfinkel

Software Engineering Institute at Carnegie Mellon University

Nov 12, 2007 - FMCAD ’07

1 / 25

slide-2
SLIDE 2

Model Checking

System Model Model Checker Temporal Property false + counterexample true

2 / 25

slide-3
SLIDE 3

Model Checking

System Model Model Checker Temporal Property false + counterexample true Can we trust this result?

2 / 25

slide-4
SLIDE 4

Sanity Checks

Errors in Model Errors in Environ- ment Errors in Property Debugging Overcon- strained Declarative Models Finding Environmental Guarantees Vacuity Detection

[Shlyakhter et al. ’03] [Chechik et al. ’07] [Beer et al. ’99] [Kupferman, Vardi ’99] . . .

3 / 25

slide-5
SLIDE 5

Sanity Checks

Errors in Model Errors in Environ- ment Errors in Property Debugging Overcon- strained Declarative Models Finding Environmental Guarantees Vacuity Detection

[Shlyakhter et al. ’03] [Chechik et al. ’07] [Beer et al. ’99] [Kupferman, Vardi ’99] . . .

Vacuity Dectection

3 / 25

slide-6
SLIDE 6

Sanity Checks

Errors in Model Errors in Environ- ment Errors in Property Debugging Overcon- strained Declarative Models Finding Environmental Guarantees Vacuity Detection

[Shlyakhter et al. ’03] [Chechik et al. ’07] [Beer et al. ’99] [Kupferman, Vardi ’99] . . .

Vacuity Dectection

GOAL: determine what parts of a property are not relevant

3 / 25

slide-7
SLIDE 7

Sanity Checks

Errors in Model Errors in Environ- ment Errors in Property Debugging Overcon- strained Declarative Models Finding Environmental Guarantees Vacuity Detection

[Shlyakhter et al. ’03] [Chechik et al. ’07] [Beer et al. ’99] [Kupferman, Vardi ’99] . . .

Vacuity Dectection

GOAL: determine what parts of a property are not relevant . . . anything that can be substituted without changing the value of the property

3 / 25

slide-8
SLIDE 8

Sanity Checks

Errors in Model Errors in Environ- ment Errors in Property Debugging Overcon- strained Declarative Models Finding Environmental Guarantees Vacuity Detection

[Shlyakhter et al. ’03] [Chechik et al. ’07] [Beer et al. ’99] [Kupferman, Vardi ’99] . . .

Vacuity Dectection

GOAL: determine what parts of a property are not relevant . . . anything that can be substituted without changing the value of the property Example: “all requests are eventually serviced”

3 / 25

slide-9
SLIDE 9

Sanity Checks

Errors in Model Errors in Environ- ment Errors in Property Debugging Overcon- strained Declarative Models Finding Environmental Guarantees Vacuity Detection

[Shlyakhter et al. ’03] [Chechik et al. ’07] [Beer et al. ’99] [Kupferman, Vardi ’99] . . .

Vacuity Dectection

GOAL: determine what parts of a property are not relevant . . . anything that can be substituted without changing the value of the property Example: “all requests are eventually serviced” LTL: p = G(request ⇒ F serviced)

3 / 25

slide-10
SLIDE 10

Sanity Checks

Errors in Model Errors in Environ- ment Errors in Property Debugging Overcon- strained Declarative Models Finding Environmental Guarantees Vacuity Detection

[Shlyakhter et al. ’03] [Chechik et al. ’07] [Beer et al. ’99] [Kupferman, Vardi ’99] . . .

Vacuity Dectection

GOAL: determine what parts of a property are not relevant . . . anything that can be substituted without changing the value of the property Example: “all requests are eventually serviced” LTL: p = G(request ⇒ F serviced) holds in a model that does not produce any requests!

3 / 25

slide-11
SLIDE 11

Naive Vacuity Detection [Beer et al. ’97, Kupferman and Vardi ’99]

Test by substituting each subformula to check which ones are vacuous EXAMPLE: “all requests are eventually serviced” formalized as p = G ( request ⇒ F serviced ) SOLUTION: four model checking runs p1 = G ( true ⇒ F serviced ) p2 = G ( false ⇒ F serviced )

4 / 25

slide-12
SLIDE 12

Naive Vacuity Detection [Beer et al. ’97, Kupferman and Vardi ’99]

Test by substituting each subformula to check which ones are vacuous EXAMPLE: “all requests are eventually serviced” formalized as p = G ( request ⇒ F serviced ) SOLUTION: four model checking runs p1 = G ( true ⇒ F serviced ) p2 = G ( false ⇒ F serviced ) p is vacuous w.r.t. “request” iff M | = p1 = M | = p2

4 / 25

slide-13
SLIDE 13

Naive Vacuity Detection [Beer et al. ’97, Kupferman and Vardi ’99]

Test by substituting each subformula to check which ones are vacuous EXAMPLE: “all requests are eventually serviced” formalized as p = G ( request ⇒ F serviced ) SOLUTION: four model checking runs p1 = G ( true ⇒ F serviced ) p2 = G ( false ⇒ F serviced ) p is vacuous w.r.t. “request” iff M | = p1 = M | = p2 p3 = G ( request ⇒ F true ) p4 = G ( request ⇒ F false )

4 / 25

slide-14
SLIDE 14

Naive Vacuity Detection [Beer et al. ’97, Kupferman and Vardi ’99]

Test by substituting each subformula to check which ones are vacuous EXAMPLE: “all requests are eventually serviced” formalized as p = G ( request ⇒ F serviced ) SOLUTION: four model checking runs p1 = G ( true ⇒ F serviced ) p2 = G ( false ⇒ F serviced ) p is vacuous w.r.t. “request” iff M | = p1 = M | = p2 p3 = G ( request ⇒ F true ) p4 = G ( request ⇒ F false ) p is vacuous w.r.t. “serviced” iff M | = p3 = M | = p4

4 / 25

slide-15
SLIDE 15

Naive Vacuity Detection [Beer et al. ’97, Kupferman and Vardi ’99]

Test by substituting each subformula to check which ones are vacuous EXAMPLE: “all requests are eventually serviced” formalized as p = G ( request ⇒ F serviced ) SOLUTION: four model checking runs p1 = G ( true ⇒ F serviced ) p2 = G ( false ⇒ F serviced ) p is vacuous w.r.t. “request” iff M | = p1 = M | = p2 p3 = G ( request ⇒ F true ) p4 = G ( request ⇒ F false ) p is vacuous w.r.t. “serviced” iff M | = p3 = M | = p4 Complete

4 / 25

slide-16
SLIDE 16

Naive Vacuity Detection [Beer et al. ’97, Kupferman and Vardi ’99]

Test by substituting each subformula to check which ones are vacuous EXAMPLE: “all requests are eventually serviced” formalized as p = G ( request ⇒ F serviced ) SOLUTION: four model checking runs p1 = G ( true ⇒ F serviced ) p2 = G ( false ⇒ F serviced ) p is vacuous w.r.t. “request” iff M | = p1 = M | = p2 p3 = G ( request ⇒ F true ) p4 = G ( request ⇒ F false ) p is vacuous w.r.t. “serviced” iff M | = p3 = M | = p4 Complete Can be done without any special purpose tools

4 / 25

slide-17
SLIDE 17

Naive Vacuity Detection [Beer et al. ’97, Kupferman and Vardi ’99]

Test by substituting each subformula to check which ones are vacuous EXAMPLE: “all requests are eventually serviced” formalized as p = G ( request ⇒ F serviced ) SOLUTION: four model checking runs p1 = G ( true ⇒ F serviced ) p2 = G ( false ⇒ F serviced ) p is vacuous w.r.t. “request” iff M | = p1 = M | = p2 p3 = G ( request ⇒ F true ) p4 = G ( request ⇒ F false ) p is vacuous w.r.t. “serviced” iff M | = p3 = M | = p4 Complete Can be done without any special purpose tools # of extra model checking runs grows with size of property

4 / 25

slide-18
SLIDE 18

Brief Overview of Vacuity Detection

Main Idea Logic Tool

[Beer et al. ’97]

Replace single occurrence of a subformula with true, false w-ACTL RuleBase

[Kupferman and Vardi ’99]

Generalized Beer’s definition CTL* –

[Purandare and Somenzi ’02]

Parse tree analysis to speed up vacuity detection CTL VIS

[Armoni et al. ’03]

Introduced trace vacuity LTL Forecast Thunder

[Gurfinkel and Chechik ’04]

Extended trace vacuity to CTL* CTL* Any model checker

[Gheorghiu and Gurfinkel ’06]

Introduced concept of “vacuity” lattice CTL VaqUoT

5 / 25

slide-19
SLIDE 19

Brief Overview of Vacuity Detection

Main Idea Logic Tool

[Beer et al. ’97]

Replace single occurrence of a subformula with true, false w-ACTL RuleBase

[Kupferman and Vardi ’99]

Generalized Beer’s definition CTL* –

[Purandare and Somenzi ’02]

Parse tree analysis to speed up vacuity detection CTL VIS

[Armoni et al. ’03]

Introduced trace vacuity LTL Forecast Thunder

[Gurfinkel and Chechik ’04]

Extended trace vacuity to CTL* CTL* Any model checker

[Gheorghiu and Gurfinkel ’06]

Introduced concept of “vacuity” lattice CTL VaqUoT

Definition of vacuity used in this work [Gurfinkel and Chechik ’04]

Property p is vacuous w.r.t. variable v iff M | = p[v ← x], where x is an unconstrained model variable

5 / 25

slide-20
SLIDE 20

Bounded Model Checking (BMC)

Check if property p holds up to k steps on model M: M | =k p i.e., can we reach a state in k steps that satisfies ¬ p?

SAT solver Model M p

k

M p

k

example Output: counter− Output: resolution proof "unroll" transition relation p holds at some step UNSAT SAT Property

6 / 25

slide-21
SLIDE 21

Bounded Model Checking (BMC)

Check if property p holds up to k steps on model M: M | =k p i.e., can we reach a state in k steps that satisfies ¬ p?

SAT solver Model M p

k

M p

k

example Output: counter− Output: resolution proof "unroll" transition relation p holds at some step UNSAT SAT Property

{b,c} {a,b} {c}

b c SAT solver Model M p

k

M p

k

example Output: counter− Output: resolution proof "unroll" transition relation p holds at some step UNSAT SAT Property

k = 0

6 / 25

slide-22
SLIDE 22

Bounded Model Checking (BMC)

Check if property p holds up to k steps on model M: M | =k p i.e., can we reach a state in k steps that satisfies ¬ p?

SAT solver Model M p

k

M p

k

example Output: counter− Output: resolution proof "unroll" transition relation p holds at some step UNSAT SAT Property

{b,c} {a,b} {c}

b c SAT solver Model M p

k

M p

k

example Output: counter− Output: resolution proof "unroll" transition relation p holds at some step UNSAT SAT Property

{b,c} {a,b} {c}

b c ( a ), ( b ), ( c ) ( b ), ( c ) SAT solver Model M p

k

M p

k

example Output: counter− Output: resolution proof "unroll" transition relation p holds at some step UNSAT SAT Property

k = 0

6 / 25

slide-23
SLIDE 23

Bounded Model Checking (BMC)

Check if property p holds up to k steps on model M: M | =k p i.e., can we reach a state in k steps that satisfies ¬ p?

SAT solver Model M p

k

M p

k

example Output: counter− Output: resolution proof "unroll" transition relation p holds at some step UNSAT SAT Property

{b,c} {a,b} {c}

b c SAT solver Model M p

k

M p

k

example Output: counter− Output: resolution proof "unroll" transition relation p holds at some step UNSAT SAT Property

{b,c} {a,b} {c}

b c ( a ), ( b ), ( c ) ( b ), ( c ) SAT solver Model M p

k

M p

k

example Output: counter− Output: resolution proof "unroll" transition relation p holds at some step UNSAT SAT Property ( c ) ( c ) ( )

{b,c} {a,b} {c}

b c ( a ), ( b ), ( c ) ( b ), ( c ) SAT solver Model M p

k

M p

k

example Output: counter− Output: resolution proof "unroll" transition relation p holds at some step UNSAT SAT Property

k = 0

6 / 25

slide-24
SLIDE 24

Bounded Model Checking (BMC)

Check if property p holds up to k steps on model M: M | =k p i.e., can we reach a state in k steps that satisfies ¬ p?

SAT solver Model M p

k

M p

k

example Output: counter− Output: resolution proof "unroll" transition relation p holds at some step UNSAT SAT Property

{b,c} {a,b} {c}

b c SAT solver Model M p

k

M p

k

example Output: counter− Output: resolution proof "unroll" transition relation p holds at some step UNSAT SAT Property

{b,c} {a,b} {c}

b c ( a ), ( b ), ( c ) ( b ), ( c ) SAT solver Model M p

k

M p

k

example Output: counter− Output: resolution proof "unroll" transition relation p holds at some step UNSAT SAT Property ( c ) ( c ) ( )

{b,c} {a,b} {c}

b c ( a ), ( b ), ( c ) ( b ), ( c ) SAT solver Model M p

k

M p

k

example Output: counter− Output: resolution proof "unroll" transition relation p holds at some step UNSAT SAT Property

k = 0 GOAL: use resolution proof for vacuity detection focus on variable vacuity use naive detection as baseline for comparison

6 / 25

slide-25
SLIDE 25

Outline

Model Checking Sanity Checks Naive Vacuity Detection Brief Overview of Vacuity Detection Bounded Model Checking New methods:

Irrelevance Local Irrelevance Peripherality

Implementation: VAQTREE Experiments Conclusions and Future Work

7 / 25

slide-26
SLIDE 26

Algorithm 1 - Irrelevance

Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d)

8 / 25

slide-27
SLIDE 27

Algorithm 1 - Irrelevance

Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d)

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) ()

8 / 25

slide-28
SLIDE 28

Algorithm 1 - Irrelevance

Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d)

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) ()

Variables in the property but not in the UNSAT core are irrelevant

8 / 25

slide-29
SLIDE 29

Algorithm 1 - Irrelevance

Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d)

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) ()

Variables in the property but not in the UNSAT core are irrelevant

8 / 25

slide-30
SLIDE 30

Algorithm 1 - Irrelevance

Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d)

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) ()

Variables in the property but not in the UNSAT core are irrelevant

8 / 25

slide-31
SLIDE 31

Algorithm 1 - Irrelevance

Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d)

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) ()

Variables in the property but not in the UNSAT core are irrelevant

8 / 25

slide-32
SLIDE 32

Algorithm 1 - Irrelevance

Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d)

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) ()

Variables in the property but not in the UNSAT core are irrelevant

8 / 25

slide-33
SLIDE 33

Algorithm 1 - Irrelevance

Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d)

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) ()

Variables in the property but not in the UNSAT core are irrelevant VACUITY: d, e, f not in UNSAT core ⇒ irrelevant ⇒ vacuous

8 / 25

slide-34
SLIDE 34

Algorithm 1 - Irrelevance

Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d)

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) ()

Variables in the property but not in the UNSAT core are irrelevant VACUITY: d, e, f not in UNSAT core ⇒ irrelevant ⇒ vacuous Linear in size of UNSAT core

8 / 25

slide-35
SLIDE 35

Algorithm 1 - Irrelevance

Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d)

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) ()

Variables in the property but not in the UNSAT core are irrelevant VACUITY: d, e, f not in UNSAT core ⇒ irrelevant ⇒ vacuous Linear in size of UNSAT core Very incomplete

8 / 25

slide-36
SLIDE 36

Algorithm 2 - Local Irrelevance

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) () Property Model

9 / 25

slide-37
SLIDE 37

Algorithm 2 - Local Irrelevance

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) () Property Model

Variables that only appear in the property part of the UNSAT core are locally irrelevant

9 / 25

slide-38
SLIDE 38

Algorithm 2 - Local Irrelevance

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) () s Property Model

Variables that only appear in the property part of the UNSAT core are locally irrelevant

9 / 25

slide-39
SLIDE 39

Algorithm 2 - Local Irrelevance

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) () ss Property Model

Variables that only appear in the property part of the UNSAT core are locally irrelevant

9 / 25

slide-40
SLIDE 40

Algorithm 2 - Local Irrelevance

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) () sss Property Model

Variables that only appear in the property part of the UNSAT core are locally irrelevant

9 / 25

slide-41
SLIDE 41

Algorithm 2 - Local Irrelevance

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) () sss Property Model

Variables that only appear in the property part of the UNSAT core are locally irrelevant VACUITY: a only in Property part of the UNSAT core ⇒ locally irrelevant ⇒ vacuous

9 / 25

slide-42
SLIDE 42

Algorithm 2 - Local Irrelevance

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) () sss Property Model

Variables that only appear in the property part of the UNSAT core are locally irrelevant VACUITY: a only in Property part of the UNSAT core ⇒ locally irrelevant ⇒ vacuous Linear in size of UNSAT core

9 / 25

slide-43
SLIDE 43

Algorithm 2 - Local Irrelevance

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) () sss Property Model

Variables that only appear in the property part of the UNSAT core are locally irrelevant VACUITY: a only in Property part of the UNSAT core ⇒ locally irrelevant ⇒ vacuous Linear in size of UNSAT core More precise than Irrelevance

9 / 25

slide-44
SLIDE 44

Algorithm 2 - Local Irrelevance

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) () sss Property Model

Variables that only appear in the property part of the UNSAT core are locally irrelevant VACUITY: a only in Property part of the UNSAT core ⇒ locally irrelevant ⇒ vacuous Linear in size of UNSAT core More precise than Irrelevance Still very incomplete

9 / 25

slide-45
SLIDE 45

Algorithm 3 - Peripherality

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) Property Model

Variables that are not central to the proof are peripheral

slide-46
SLIDE 46

Algorithm 3 - Peripherality

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) Property Model

Variables that are not central to the proof are peripheral

slide-47
SLIDE 47

Algorithm 3 - Peripherality

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) Property Model

Variables that are not central to the proof are peripheral

slide-48
SLIDE 48

Algorithm 3 - Peripherality

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) Property Model

Variables that are not central to the proof are peripheral

slide-49
SLIDE 49

Algorithm 3 - Peripherality

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) () Property Model

Variables that are not central to the proof are peripheral

slide-50
SLIDE 50

Algorithm 3 - Peripherality

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) () Property Model

Variables that are not central to the proof are peripheral

slide-51
SLIDE 51

Algorithm 3 - Peripherality

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) () Property Model

Variables that are not central to the proof are peripheral

slide-52
SLIDE 52

Algorithm 3 - Peripherality

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) () Property Model Resolution on b

  • ccurs in Property

Variables that are not central to the proof are peripheral

slide-53
SLIDE 53

Algorithm 3 - Peripherality

(¬a) (a ∨ b) (¬b ∨ c) (¬b ∨ ¬c) (b) (b) (c) (¬b) () Property Model Resolution on b

  • ccurs in Property

Variables that are not central to the proof are peripheral

slide-54
SLIDE 54

Algorithm 3 - Peripherality

(¬a) (a ∨ x) (¬x ∨ c) (¬b ∨ ¬c) (b) (x) (c) (¬b) () Property Model Resolution on b

  • ccurs in Property

Can replace b by x in Property

Variables that are not central to the proof are peripheral

slide-55
SLIDE 55

Algorithm 3 - Peripherality

(¬a) (a ∨ x) (¬x ∨ c) (¬b ∨ ¬c) (b) (x) (c) (¬b) () Property Model

Variables that are not central to the proof are peripheral

slide-56
SLIDE 56

Algorithm 3 - Peripherality

(¬a) (a ∨ x) (¬x ∨ y) (¬b ∨ ¬c) (b) (x) (y) (¬b) () Property Model Cannot replace c by y in this proof

Variables that are not central to the proof are peripheral

10 / 25

slide-57
SLIDE 57

Algorithm 3 - Peripherality

(¬a) (a ∨ x) (¬x ∨ y) (¬b ∨ ¬c) (b) (x) (y) (¬b) () Property Model Cannot replace c by y in this proof

Variables that are not central to the proof are peripheral

10 / 25

slide-58
SLIDE 58

Algorithm 3 - Peripherality

(¬a) (a ∨ x) (¬x ∨ y) (¬b ∨ ¬c) (b) (x) (y) (¬b) () Property Model Cannot replace c by y in this proof

Variables that are not central to the proof are peripheral VACUITY: replaced b by x in Property without changing proof ⇒ peripheral ⇒ vacuous

10 / 25

slide-59
SLIDE 59

Algorithm 3 - Peripherality

(¬a) (a ∨ x) (¬x ∨ y) (¬b ∨ ¬c) (b) (x) (y) (¬b) () Property Model Cannot replace c by y in this proof

Variables that are not central to the proof are peripheral VACUITY: replaced b by x in Property without changing proof ⇒ peripheral ⇒ vacuous Linear in size of resolution proof

10 / 25

slide-60
SLIDE 60

Algorithm 3 - Peripherality

(¬a) (a ∨ x) (¬x ∨ y) (¬b ∨ ¬c) (b) (x) (y) (¬b) () Property Model Cannot replace c by y in this proof

Variables that are not central to the proof are peripheral VACUITY: replaced b by x in Property without changing proof ⇒ peripheral ⇒ vacuous Linear in size of resolution proof If p is vacuous, there exists a resolution proof s.t. p is peripheral

10 / 25

slide-61
SLIDE 61

Complete Analysis

GOAL: complete analysis using Naive Detection for leftover variables EXAMPLE: Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d)

11 / 25

slide-62
SLIDE 62

Complete Analysis

GOAL: complete analysis using Naive Detection for leftover variables EXAMPLE: Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d) IRRELEVANCE ALGORITHM

11 / 25

slide-63
SLIDE 63

Complete Analysis

GOAL: complete analysis using Naive Detection for leftover variables EXAMPLE: Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d) IRRELEVANCE ALGORITHM d,e,f are vacuous

11 / 25

slide-64
SLIDE 64

Complete Analysis

GOAL: complete analysis using Naive Detection for leftover variables EXAMPLE: Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d) IRRELEVANCE ALGORITHM d,e,f are vacuous COMPLETING STEP

11 / 25

slide-65
SLIDE 65

Complete Analysis

GOAL: complete analysis using Naive Detection for leftover variables EXAMPLE: Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d) IRRELEVANCE ALGORITHM d,e,f are vacuous COMPLETING STEP 6 extra model checking runs

11 / 25

slide-66
SLIDE 66

Complete Analysis

GOAL: complete analysis using Naive Detection for leftover variables EXAMPLE: Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d) IRRELEVANCE ALGORITHM d,e,f are vacuous COMPLETING STEP 6 extra model checking runs M | = p[a ← true]? M | = p[a ← false]?

11 / 25

slide-67
SLIDE 67

Complete Analysis

GOAL: complete analysis using Naive Detection for leftover variables EXAMPLE: Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d) IRRELEVANCE ALGORITHM d,e,f are vacuous COMPLETING STEP 6 extra model checking runs M | = p[a ← true]? p is vacuous w.r.t. a iff M | = p[a ← false]? M | = p[a ← true] = M | = p[a ← false]

11 / 25

slide-68
SLIDE 68

Complete Analysis

GOAL: complete analysis using Naive Detection for leftover variables EXAMPLE: Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d) IRRELEVANCE ALGORITHM d,e,f are vacuous COMPLETING STEP 6 extra model checking runs M | = p[a ← true]? p is vacuous w.r.t. a iff M | = p[a ← false]? M | = p[a ← true] = M | = p[a ← false] Similar for b,c

11 / 25

slide-69
SLIDE 69

Complete Analysis

GOAL: complete analysis using Naive Detection for leftover variables EXAMPLE: Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d) IRRELEVANCE ALGORITHM d,e,f are vacuous COMPLETING STEP 6 extra model checking runs M | = p[a ← true]? p is vacuous w.r.t. a iff M | = p[a ← false]? M | = p[a ← true] = M | = p[a ← false] Similar for b,c IRRELEVANCE METHOD: Irrelevance algorithm + completing step

11 / 25

slide-70
SLIDE 70

Complete Analysis

GOAL: complete analysis using Naive Detection for leftover variables EXAMPLE: Model (¬b ∨ ¬c), (b), (¬e), (d ∨ f) Property (¬a), (a ∨ b), (¬b ∨ c), (d ∨ e ∨ f), (a ∨ ¬c ∨ d) IRRELEVANCE ALGORITHM d,e,f are vacuous COMPLETING STEP 6 extra model checking runs M | = p[a ← true]? p is vacuous w.r.t. a iff M | = p[a ← false]? M | = p[a ← true] = M | = p[a ← false] Similar for b,c IRRELEVANCE METHOD: Irrelevance algorithm + completing step Local Irrelevance and Peripherality are also extended in this manner

11 / 25

slide-71
SLIDE 71

VAQTREE: Vacuity Detection Framework

A: SMV −> CNF Translator B: Proof−outputting SAT solver C: Proof Analyzer D: Completing Step Vacuity Results Model property

VaqTree

To our knowledge, VAQTREE is the first vacuity detection tool for BMC [A] NUSMV v. 2.3.1, modified to identify model/property clauses [B] MINISAT-p v. 1.14, modified to

  • utput XML proof

[C] New component (Java) proof analysis done in memory 700 MB of RAM ≈ 2.5 million resolutions [D] New component (Perl)

12 / 25

slide-72
SLIDE 72

Evaluation

GOALS: Compare effectiveness of the three algorithms

how many vacuous variables can each algorithm detect?

Evaluate the performance of the three methods, using Naive Detection as a baseline

are any of our methods faster than Naive Detection?

BENCHMARKS: Models and properties from the NUSMV distribution Models and properties from the IBM Formal Verification Benchmarks Library

13 / 25

slide-73
SLIDE 73

Benchmark 1

SETUP Models and properties: NUSMV distribution 121 properties:

99 present vacuity 2 - 4 temporal operators per property, from {G, F , U, X} 6 variables on average, 26 max., 1 min.

Largest proof: 2.5 million resolutions

14 / 25

slide-74
SLIDE 74

Interpreting Performance Graphs

Naive detection (s) "Algorithm" (s)

15 / 25

slide-75
SLIDE 75

Interpreting Performance Graphs

Plotting execution times Naive detection (s) "Algorithm" (s)

  • 15 / 25
slide-76
SLIDE 76

Interpreting Performance Graphs

Naive Detection is faster here Naive detection (s) "Algorithm" (s)

  • Naive detection (s)

"Algorithm" (s)

15 / 25

slide-77
SLIDE 77

Interpreting Performance Graphs

Naive detection (s) "Algorithm" (s)

  • Naive detection (s)

"Algorithm" (s)

  • Naive detection (s)

"Algorithm" (s) “Method” is faster here

15 / 25

slide-78
SLIDE 78

Interpreting Performance Graphs

Naive detection (s) "Algorithm" (s)

  • Naive detection (s)

"Algorithm" (s)

  • Naive detection (s)

"Algorithm" (s)

  • Naive detection (s)

"Algorithm" (s) “Method” is faster by an

  • rder of

magnitude here

15 / 25

slide-79
SLIDE 79

Benchmark 1: Performance

A

Irrelevance (s) Naive detection (s) Irrelevance (s) Naive detection (s)

Execution times measured for complete methods B

Local Irrelevance (s) Naive detection (s) Local Irrelevance (s) Naive detection (s)

C

Peripherality (s) Naive detection (s) Peripherality (s) Naive detection (s) 16 / 25

slide-80
SLIDE 80

Benchmark 1: Performance

A

Irrelevance (s) Naive detection (s) Irrelevance (s) Naive detection (s)

Execution times measured for complete methods Peripherality is much slower in some cases B

Local Irrelevance (s) Naive detection (s) Local Irrelevance (s) Naive detection (s)

C

Peripherality (s) Naive detection (s) Peripherality (s) Naive detection (s) 16 / 25

slide-81
SLIDE 81

Why is Peripherality much slower in some cases?

Naive Detection Peripherality Φ1= M | = p1 Φ = M | = p Φ2= M | = p2 . . . Φn= M | = pn

slide-82
SLIDE 82

Why is Peripherality much slower in some cases?

Low clause/variable ratio No vacuous variables Large resolution proofs

Peripherality (s) Naive detection (s) Peripherality (s) Naive detection (s)

Naive Detection Peripherality Φ1= M | = p1 Φ = M | = p Φ2= M | = p2 . . . Φn= M | = pn

slide-83
SLIDE 83

Why is Peripherality much slower in some cases?

Low clause/variable ratio No vacuous variables Large resolution proofs

Peripherality (s) Naive detection (s) Peripherality (s) Naive detection (s)

Naive Detection Peripherality Φ1= M | = p1 Φ = M | = p UNSAT SAT Φ2= M | = p2 . . . Φn= M | = pn

17 / 25

slide-84
SLIDE 84

Why is Peripherality much slower in some cases?

Low clause/variable ratio No vacuous variables Large resolution proofs

Peripherality (s) Naive detection (s) Peripherality (s) Naive detection (s)

Naive Detection Peripherality Φ1= M | = p1 Φ = M | = p UNSAT SAT Φ2= M | = p2 . . . Φn= M | = pn time: τ1, τ2, . . . τn T to find sat. assignment

  • periph. analysis

17 / 25

slide-85
SLIDE 85

Why is Peripherality much slower in some cases?

Low clause/variable ratio No vacuous variables Large resolution proofs

Peripherality (s) Naive detection (s) Peripherality (s) Naive detection (s)

Naive Detection Peripherality Φ1= M | = p1 Φ = M | = p UNSAT SAT Φ2= M | = p2 . . . Φn= M | = pn time: τ1, τ2, . . . τn T to find sat. assignment

  • periph. analysis

τi <<< T

17 / 25

slide-86
SLIDE 86

Why is Peripherality much slower in some cases?

Low clause/variable ratio No vacuous variables Large resolution proofs

Peripherality (s) Naive detection (s) Peripherality (s) Naive detection (s)

Naive Detection Peripherality Φ1= M | = p1 Φ = M | = p UNSAT SAT Φ2= M | = p2 . . . Φn= M | = pn time: τ1, τ2, . . . τn T to find sat. assignment

  • periph. analysis

τi <<< T τi <<< T

17 / 25

slide-87
SLIDE 87

Interpreting Effectiveness Graphs

  • More precise algorithm

Less precise algorithm

18 / 25

slide-88
SLIDE 88

Interpreting Effectiveness Graphs

# vacuous variables found: (x, y) x = found by X-axis algorithm y = found by Y-axis algorithm

  • More precise algorithm

Less precise algorithm

18 / 25

slide-89
SLIDE 89

Interpreting Effectiveness Graphs

# vacuous variables found: (x, y) x = found by X-axis algorithm y = found by Y-axis algorithm X-axis algorithm is more precise, so x ≥ y always

  • More precise algorithm

Less precise algorithm

18 / 25

slide-90
SLIDE 90

Interpreting Effectiveness Graphs

# vacuous variables found: (x, y) x = found by X-axis algorithm y = found by Y-axis algorithm X-axis algorithm is more precise, so x ≥ y always Larger point = more test cases

  • More precise algorithm

Less precise algorithm

18 / 25

slide-91
SLIDE 91

Benchmark 1: Effectiveness

A

Irrelevance Local Irrelevance Irrelevance Local Irrelevance Irrelevance Local Irrelevance Irrelevance Local Irrelevance Irrelevance Local Irrelevance Irrelevance Local Irrelevance Irrelevance Local Irrelevance Irrelevance Local Irrelevance

B

Local Irrelevance Peripherality Local Irrelevance Peripherality Local Irrelevance Peripherality Local Irrelevance Peripherality Local Irrelevance Peripherality Local Irrelevance Peripherality Local Irrelevance Peripherality Local Irrelevance Peripherality

C

Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40%

19 / 25

slide-92
SLIDE 92

Benchmark 1: Effectiveness

A

Irrelevance Local Irrelevance Irrelevance Local Irrelevance Irrelevance Local Irrelevance Irrelevance Local Irrelevance Irrelevance Local Irrelevance Irrelevance Local Irrelevance Irrelevance Local Irrelevance Irrelevance Local Irrelevance

B

Local Irrelevance Peripherality Local Irrelevance Peripherality Local Irrelevance Peripherality Local Irrelevance Peripherality Local Irrelevance Peripherality Local Irrelevance Peripherality Local Irrelevance Peripherality Local Irrelevance Peripherality

C

Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40%

Reduced # of extra model checking runs: ≥ 40% reduction in 54% of cases with vacuity

19 / 25

slide-93
SLIDE 93

Benchmark 1: Effectiveness

A

Irrelevance Local Irrelevance Irrelevance Local Irrelevance Irrelevance Local Irrelevance Irrelevance Local Irrelevance Irrelevance Local Irrelevance Irrelevance Local Irrelevance Irrelevance Local Irrelevance Irrelevance Local Irrelevance

B

Local Irrelevance Peripherality Local Irrelevance Peripherality Local Irrelevance Peripherality Local Irrelevance Peripherality Local Irrelevance Peripherality Local Irrelevance Peripherality Local Irrelevance Peripherality Local Irrelevance Peripherality

C

Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40% Peripherality Naive detection ≥ 40%

Reduced # of extra model checking runs: ≥ 40% reduction in 54% of cases with vacuity Local Irrelevance is faster than Naive Detection in 70 cases (59%): Twice as fast in 40% of these cases Order of magnitud faster in 30% of these cases

Local Irrelevance (s) Naive detection (s) Local Irrelevance (s) Naive detection (s)

19 / 25

slide-94
SLIDE 94

Benchmark 2

GOAL: evaluate scalability of our tool to industrial models SETUP Models and properties: IBM Formal Verification Benchmarks Library 18 properties:

12 present vacuity 1 temporal operator, from {G, F} 4 variables on average, 17 max., 1 min.

Picked k-depth in line with bounds used in Benchmark 1 Largest proof: 500k resolutions

20 / 25

slide-95
SLIDE 95

Benchmark 2

GOAL: evaluate scalability of our tool to industrial models SETUP Models and properties: IBM Formal Verification Benchmarks Library 18 properties:

12 present vacuity 1 temporal operator, from {G, F} 4 variables on average, 17 max., 1 min.

Picked k-depth in line with bounds used in Benchmark 1 Largest proof: 500k resolutions Proof sizes are in same range as those for Benchmark 1 new models are more complex but properties are simpler

20 / 25

slide-96
SLIDE 96

Benchmark 2: Scalability

A

Irrelevance (s) Naive detection (s) Irrelevance (s) Naive detection (s)

B

Local Irrelevance (s) Naive detection (s) Local Irrelevance (s) Naive detection (s)

C

Peripherality (s) Naive detection (s) Peripherality (s) Naive detection (s)

Reasonable execution times No noticeable spike in peripherality execution times

models with low clause/variable ratio present vacuity proofs for these models are medium-sized

Little vacuity in this suite, yet algorithms detect some vacuity

21 / 25

slide-97
SLIDE 97

Experimental Conclusions

Benchmark 1 Benchmark 2 Models Simple Complex Properties Complex Simple Irrelevance Very fast Very fast Local Irrelevance Fastest Fastest Peripherality Slow in certain cases Very fast Our algorithms: discover vacuous variables . . . via relatively inexpensive analyses of BMC artifacts Our methods are complete and generally faster than Naive Detection

22 / 25

slide-98
SLIDE 98

Summary

Vacuity detection for BMC

we analyze BMC artifacts like UNSAT cores and resolution proofs

Proposed and implemented a vacuity detection tool, VAQTREE

23 / 25

slide-99
SLIDE 99

Summary

Vacuity detection for BMC

we analyze BMC artifacts like UNSAT cores and resolution proofs

Proposed and implemented a vacuity detection tool, VAQTREE Step towards making vacuity detection part of complete process

23 / 25

slide-100
SLIDE 100

Future Work

When do our algorithms apply?

heuristics based on clause/variable ratio and proof size

Increase scalability of our tool

implement on-the-fly proof analysis

Use interpolants for vacuity detection Use results of previous depths for vacuity detection

24 / 25

slide-101
SLIDE 101

Thanks for your attention Questions?