• Non ci sono risultati.

Formal Methods Module II: Model Checking Ch. 08: Abstraction in Model Checking

N/A
N/A
Protected

Academic year: 2021

Condividi "Formal Methods Module II: Model Checking Ch. 08: Abstraction in Model Checking"

Copied!
126
0
0

Testo completo

(1)

Formal Methods Module II: Model Checking

Ch. 08: Abstraction in Model Checking

Roberto Sebastiani

DISI, Università di Trento, Italy – roberto.sebastiani@unitn.it URL: http://disi.unitn.it/rseba/DIDATTICA/fm2021/

Teaching assistant: Giuseppe Spallitta – giuseppe.spallitta@unitn.it

M.S. in Computer Science, Mathematics, & Artificial Intelligence Systems Academic year 2020-2021

last update: Tuesday 11thMay, 2021, 11:47

Copyright notice: some material (text, figures) displayed in these slides is courtesy of R. Alur, M. Benerecetti, A. Cimatti, M. Di Natale, P. Pandya, M. Pistore, M. Roveri, C. Tinelli, and S.Tonetta, who detain its copyright. Some exampes displayed in these slides are taken from [Clarke, Grunberg & Peled, “Model Checking”, MIT Press], and their copyright is

detained by the authors. All the other material is copyrighted by Roberto Sebastiani. Every commercial use of this material is strictly forbidden by the copyright laws without the authorization of the authors. No copy of these slides can be

displayed in public without containing this copyright notice.

(2)

Outline

1 Abstraction

2 Abstraction-Based Symbolic Model Cheching Abstraction

Checking the counter-examples Refinement

3 Exercises

(3)

Outline

1 Abstraction

2 Abstraction-Based Symbolic Model Cheching Abstraction

Checking the counter-examples Refinement

3 Exercises

(4)

Model Checking Safety Properties: M |= G¬BAD

Add reachable states until reaching a fixed-point or a “bad” state

S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

(5)

Model Checking Safety Properties: M |= G¬BAD

Add reachable states until reaching a fixed-point or a “bad” state

S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

(6)

Model Checking Safety Properties: M |= G¬BAD

Add reachable states until reaching a fixed-point or a “bad” state

S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

(7)

Model Checking Safety Properties: M |= G¬BAD

Add reachable states until reaching a fixed-point or a “bad” state

S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

(8)

Model Checking Safety Properties: M |= G¬BAD

Add reachable states until reaching a fixed-point or a “bad” state

S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

(9)

Model Checking Safety Properties: M |= G¬BAD

Add reachable states until reaching a fixed-point or a “bad” state

S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

(10)

Model Checking Safety Properties: M |= G¬BAD

Add reachable states until reaching a fixed-point or a “bad” state

S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

(11)

Model Checking Safety Properties: M |= G¬BAD

Add reachable states until reaching a fixed-point or a “bad” state

S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

Problem: too many states to handle! (even for symbolic MC)

(12)

Model Checking Safety Properties: M |= G¬BAD

Add reachable states until reaching a fixed-point or a “bad” state

S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

Problem: too many states to handle! (even for symbolic MC)

(13)

Idea: Abstraction

Apply a (non-injective) Abstraction Function h to M

=⇒ Build an abstract (and much smaller) system M’

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

h h h h h h

(14)

Abstraction & Refinement

Abstraction & Refinement

Let S be the ground (concrete) state space Let S 0 be the abstract state space

Abstraction: a (typically non-injective) map h : S 7−→ S 0 h typically a many-to-one function

Refinement: a map r : S 0 7−→ 2 S s.t. r (s 0 )

def

= {s ∈ S | s 0 = h(s)}

(15)

Simulation and Bisimulation

Simulation

Let M 1

def

= hS 1 , I 1 , R 1 , AP 1 , L 1 i and M 2

def

= hS 2 , I 2 , R 2 , AP 2 , L 2 i. Then p ⊆ S 1 × S 2 is a simulation between M 1 and M 2 (M 1 simulates M 2 ) iff

for every s 2 ∈ I 2 exists s 1 ∈ I 1 s.t. hs 1 , s 2 i ∈ p for every hs 1 , s 2 i ∈ p:

for every hs 2 , t 2 i ∈ R 2 , exists hs 1 , t 1 i ∈ R 1 s.t. ht 1 , t 2 i ∈ p (Intuitively, for every transition in M 2 there is a corresponding transition in M 1 .)

Example of p (spy game): “follower M 1 keeps escaper M 2 at eyesight”

Bisimulation

P is a bisimulation between M and M 0 iff it is both a simulation between M and M 0 and between M 0 and M.

We say that M and M 0 bisimulate each other.

(16)

Simulation and Bisimulation

Simulation

Let M 1

def

= hS 1 , I 1 , R 1 , AP 1 , L 1 i and M 2

def

= hS 2 , I 2 , R 2 , AP 2 , L 2 i. Then p ⊆ S 1 × S 2 is a simulation between M 1 and M 2 (M 1 simulates M 2 ) iff

for every s 2 ∈ I 2 exists s 1 ∈ I 1 s.t. hs 1 , s 2 i ∈ p for every hs 1 , s 2 i ∈ p:

for every hs 2 , t 2 i ∈ R 2 , exists hs 1 , t 1 i ∈ R 1 s.t. ht 1 , t 2 i ∈ p (Intuitively, for every transition in M 2 there is a corresponding transition in M 1 .)

Example of p (spy game): “follower M 1 keeps escaper M 2 at eyesight”

Bisimulation

P is a bisimulation between M and M 0 iff it is both a simulation between M and M 0 and between M 0 and M.

We say that M and M 0 bisimulate each other.

(17)

Simulation and Bisimulation

Simulation

Let M 1

def

= hS 1 , I 1 , R 1 , AP 1 , L 1 i and M 2

def

= hS 2 , I 2 , R 2 , AP 2 , L 2 i. Then p ⊆ S 1 × S 2 is a simulation between M 1 and M 2 (M 1 simulates M 2 ) iff

for every s 2 ∈ I 2 exists s 1 ∈ I 1 s.t. hs 1 , s 2 i ∈ p for every hs 1 , s 2 i ∈ p:

for every hs 2 , t 2 i ∈ R 2 , exists hs 1 , t 1 i ∈ R 1 s.t. ht 1 , t 2 i ∈ p (Intuitively, for every transition in M 2 there is a corresponding transition in M 1 .)

Example of p (spy game): “follower M 1 keeps escaper M 2 at eyesight”

Bisimulation

P is a bisimulation between M and M 0 iff it is both a simulation between M and M 0 and between M 0 and M.

We say that M and M 0 bisimulate each other.

(18)

Simulation and Bisimulation

Simulation

Let M 1

def

= hS 1 , I 1 , R 1 , AP 1 , L 1 i and M 2

def

= hS 2 , I 2 , R 2 , AP 2 , L 2 i. Then p ⊆ S 1 × S 2 is a simulation between M 1 and M 2 (M 1 simulates M 2 ) iff

for every s 2 ∈ I 2 exists s 1 ∈ I 1 s.t. hs 1 , s 2 i ∈ p for every hs 1 , s 2 i ∈ p:

for every hs 2 , t 2 i ∈ R 2 , exists hs 1 , t 1 i ∈ R 1 s.t. ht 1 , t 2 i ∈ p (Intuitively, for every transition in M 2 there is a corresponding transition in M 1 .)

Example of p (spy game): “follower M 1 keeps escaper M 2 at eyesight”

Bisimulation

P is a bisimulation between M and M 0 iff it is both a simulation between M and M 0 and between M 0 and M.

We say that M and M 0 bisimulate each other.

(19)

Simulation and Bisimulation

Simulation

Let M 1

def

= hS 1 , I 1 , R 1 , AP 1 , L 1 i and M 2

def

= hS 2 , I 2 , R 2 , AP 2 , L 2 i. Then p ⊆ S 1 × S 2 is a simulation between M 1 and M 2 (M 1 simulates M 2 ) iff

for every s 2 ∈ I 2 exists s 1 ∈ I 1 s.t. hs 1 , s 2 i ∈ p for every hs 1 , s 2 i ∈ p:

for every hs 2 , t 2 i ∈ R 2 , exists hs 1 , t 1 i ∈ R 1 s.t. ht 1 , t 2 i ∈ p (Intuitively, for every transition in M 2 there is a corresponding transition in M 1 .)

Example of p (spy game): “follower M 1 keeps escaper M 2 at eyesight”

Bisimulation

P is a bisimulation between M and M 0 iff it is both a simulation between M and M 0 and between M 0 and M.

We say that M and M 0 bisimulate each other.

(20)

Example I

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

Does M simulate M’?

No: e.g., no arc from S23 to any S3i.

Does M’ simulate M?

Yes

(21)

Example I

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

Does M simulate M’?

No: e.g., no arc from S23 to any S3i. Does M’ simulate M?

Yes

(22)

Example I

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

Does M simulate M’? No: e.g., no arc from S23 to any S3i.

Does M’ simulate M?

Yes

(23)

Example I

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

Does M simulate M’? No: e.g., no arc from S23 to any S3i.

Does M’ simulate M?

Yes

(24)

Example I

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

Does M simulate M’? No: e.g., no arc from S23 to any S3i.

Does M’ simulate M? Yes

(25)

Example II

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

h h h h h h

Does M simulate M’?

Yes

Does M’ simulate M?

No: e.g., no arc from T 4 to T 3.

(26)

Example II

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

h h h h h h

Does M simulate M’?

Yes Does M’ simulate M?

No: e.g., no arc from T 4 to T 3.

(27)

Example II

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

h h h h h h

Does M simulate M’? Yes

Does M’ simulate M?

No: e.g., no arc from T 4 to T 3.

(28)

Example II

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

h h h h h h

Does M simulate M’? Yes Does M’ simulate M?

No: e.g., no arc from T 4 to T 3.

(29)

Example II

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

h h h h h h

Does M simulate M’? Yes

Does M’ simulate M? No: e.g., no arc from T 4 to T 3.

(30)

Example III

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

h h h h h h

Does M simulate M’?

Yes

Does M’ simulate M?

Yes

(31)

Example III

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

h h h h h h

Does M simulate M’?

Yes Does M’ simulate M?

Yes

(32)

Example III

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

h h h h h h

Does M simulate M’? Yes

Does M’ simulate M?

Yes

(33)

Example III

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

h h h h h h

Does M simulate M’? Yes Does M’ simulate M?

Yes

(34)

Example III

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

h h h h h h

Does M simulate M’? Yes

Does M’ simulate M? Yes

(35)

Existential Abstraction (Over-Approximation)

An Abstraction from M to M’ is an Existential Abstraction (aka Over-Approximation) iff M 0 simulates M

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

(36)

Model Checking with Existential Abstractions

Preservation Theorem

Let ϕ be a universally-quantified property (e.g., in LTL or ACTL) Let M 0 simulate M

Then we have that

M 0 |= ϕ =⇒ M |= ϕ

Intuition: if M has a countermodel, then M’ simulates it The converse does not hold

M |= ϕ 6=⇒ M 0 |= ϕ

=⇒ The abstract counter-example may be spurious

(e.g., in previous figure, T 1 → T 2 → T 3 → T 4 → T 5 → T 6)

(37)

Model Checking with Existential Abstractions

Preservation Theorem

Let ϕ be a universally-quantified property (e.g., in LTL or ACTL) Let M 0 simulate M

Then we have that

M 0 |= ϕ =⇒ M |= ϕ

Intuition: if M has a countermodel, then M’ simulates it The converse does not hold

M |= ϕ 6=⇒ M 0 |= ϕ

=⇒ The abstract counter-example may be spurious

(e.g., in previous figure, T 1 → T 2 → T 3 → T 4 → T 5 → T 6)

(38)

Model Checking with Existential Abstractions

Preservation Theorem

Let ϕ be a universally-quantified property (e.g., in LTL or ACTL) Let M 0 simulate M

Then we have that

M 0 |= ϕ =⇒ M |= ϕ

Intuition: if M has a countermodel, then M’ simulates it The converse does not hold

M |= ϕ 6=⇒ M 0 |= ϕ

=⇒ The abstract counter-example may be spurious

(e.g., in previous figure, T 1 → T 2 → T 3 → T 4 → T 5 → T 6)

(39)

Model Checking with Existential Abstractions

Preservation Theorem

Let ϕ be a universally-quantified property (e.g., in LTL or ACTL) Let M 0 simulate M

Then we have that

M 0 |= ϕ =⇒ M |= ϕ

Intuition: if M has a countermodel, then M’ simulates it The converse does not hold

M |= ϕ 6=⇒ M 0 |= ϕ

=⇒ The abstract counter-example may be spurious

(e.g., in previous figure, T 1 → T 2 → T 3 → T 4 → T 5 → T 6)

(40)

Bisimulation Abstraction

An Abstraction from M to M’ is a Bisimulation Abstraction iff M simulates M 0 and M 0 simulates M

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

h h h h h h

(41)

Model Checking with Bisimulation Abstractions

Preservation Theorem

Let ϕ be any ACTL/LTL property Let M simulate M 0 and M 0 simulate M Then we have that

M 0 |= ϕ ⇐⇒ M |= ϕ

(42)

Outline

1 Abstraction

2 Abstraction-Based Symbolic Model Cheching Abstraction

Checking the counter-examples Refinement

3 Exercises

(43)

Counter-Example Guided Abstraction Refinement - CEGAR

General Schema:

Model Checking

M,p,h

M’,p Spurious

No

counter example

h’

M 6|= p M |= p

Yes: Real:

Check

Abstraction Refinement

Counterex.

(44)

Outline

1 Abstraction

2 Abstraction-Based Symbolic Model Cheching Abstraction

Checking the counter-examples Refinement

3 Exercises

(45)

Counter-Example Guided Abstraction Refinement

General Schema:

Model Checking

M,p,h

M’,p Spurious

No

counter example

h’

M 6|= p M |= p

Yes: Real:

Check

Abstraction Refinement

Counterex.

(46)

Counter-Example Guided Abstraction Refinement

General Schema:

Model Checking

M,p,h

M’,p Spurious

No

counter example

h’

M 6|= p M |= p

Yes: Real:

Check

Abstraction Refinement

Counterex.

(47)

A Popular Abstraction for Symbolic MC of G¬BAD I

A.k.a. “Localization Reduction”

Partition Boolean variables into visible (V) and invisible (I) ones The abstract model built on visible variables only.

Invisible variables are made inputs (no updates in the transition relation)

All variables occurring in “¬BAD” must be visible

The abstraction function maps each state to its projection over V.

=⇒ Group ground states with same visible part to a single abstract state.

visible invisible x 1 x 2 x 3 x 4 S 11 : 0 0 0 0 S 12 : 0 0 0 1 S 13 : 0 0 1 0 S 14 : 0 0 1 1

=⇒ 

T 1 : 0 0 

(48)

A Popular Abstraction for Symbolic MC of G¬BAD I

A.k.a. “Localization Reduction”

Partition Boolean variables into visible (V) and invisible (I) ones The abstract model built on visible variables only.

Invisible variables are made inputs (no updates in the transition relation)

All variables occurring in “¬BAD” must be visible

The abstraction function maps each state to its projection over V.

=⇒ Group ground states with same visible part to a single abstract state.

visible invisible x 1 x 2 x 3 x 4 S 11 : 0 0 0 0 S 12 : 0 0 0 1 S 13 : 0 0 1 0 S 14 : 0 0 1 1

=⇒ 

T 1 : 0 0 

(49)

A Popular Abstraction for Symbolic MC of G¬BAD I

A.k.a. “Localization Reduction”

Partition Boolean variables into visible (V) and invisible (I) ones The abstract model built on visible variables only.

Invisible variables are made inputs (no updates in the transition relation)

All variables occurring in “¬BAD” must be visible

The abstraction function maps each state to its projection over V.

=⇒ Group ground states with same visible part to a single abstract state.

visible invisible x 1 x 2 x 3 x 4 S 11 : 0 0 0 0 S 12 : 0 0 0 1 S 13 : 0 0 1 0 S 14 : 0 0 1 1

=⇒ 

T 1 : 0 0 

(50)

A Popular Abstraction for Symbolic MC of G¬BAD II

M’ can be computed efficiently if M is in functional form (e.g. sequential circuits).

next(x 1 ) := f 1 (x 1 , x 2 , x 3 , x 4 ) next(x 2 ) := f 2 (x 1 , x 2 , x 3 , x 4 ) next(x 3 ) := f 3 (x 1 , x 2 , x 3 , x 4 ) next(x 4 ) := f 4 (x 1 , x 2 , x 3 , x 4 )

=⇒

 next(x 1 ) := f 1 (x 1 , x 2 , x 3 , x 4 ) next(x 2 ) := f 2 (x 1 , x 2 , x 3 , x 4 )



Note: The next values of invisible variables, next(x 3 ) and next(x 4 ), can assume every value nondeterministically

=⇒ do not constrain the transition relation

Since M 0 obviously simulates M, this is an Existential Abstraction M 0 |= ϕ =⇒ M |= ϕ

may produce spurious counter-examples

(51)

A Popular Abstraction for Symbolic MC of G¬BAD II

M’ can be computed efficiently if M is in functional form (e.g. sequential circuits).

next(x 1 ) := f 1 (x 1 , x 2 , x 3 , x 4 ) next(x 2 ) := f 2 (x 1 , x 2 , x 3 , x 4 ) next(x 3 ) := f 3 (x 1 , x 2 , x 3 , x 4 ) next(x 4 ) := f 4 (x 1 , x 2 , x 3 , x 4 )

=⇒

 next(x 1 ) := f 1 (x 1 , x 2 , x 3 , x 4 ) next(x 2 ) := f 2 (x 1 , x 2 , x 3 , x 4 )



Note: The next values of invisible variables, next(x 3 ) and next(x 4 ), can assume every value nondeterministically

=⇒ do not constrain the transition relation

Since M 0 obviously simulates M, this is an Existential Abstraction M 0 |= ϕ =⇒ M |= ϕ

may produce spurious counter-examples

(52)

A Popular Abstraction for Symbolic MC of G¬BAD II

M’ can be computed efficiently if M is in functional form (e.g. sequential circuits).

next(x 1 ) := f 1 (x 1 , x 2 , x 3 , x 4 ) next(x 2 ) := f 2 (x 1 , x 2 , x 3 , x 4 ) next(x 3 ) := f 3 (x 1 , x 2 , x 3 , x 4 ) next(x 4 ) := f 4 (x 1 , x 2 , x 3 , x 4 )

=⇒

 next(x 1 ) := f 1 (x 1 , x 2 , x 3 , x 4 ) next(x 2 ) := f 2 (x 1 , x 2 , x 3 , x 4 )



Note: The next values of invisible variables, next(x 3 ) and next(x 4 ), can assume every value nondeterministically

=⇒ do not constrain the transition relation

Since M 0 obviously simulates M, this is an Existential Abstraction M 0 |= ϕ =⇒ M |= ϕ

may produce spurious counter-examples

(53)

A Popular Abstraction for Symbolic MC of G¬BAD II

M’ can be computed efficiently if M is in functional form (e.g. sequential circuits).

next(x 1 ) := f 1 (x 1 , x 2 , x 3 , x 4 ) next(x 2 ) := f 2 (x 1 , x 2 , x 3 , x 4 ) next(x 3 ) := f 3 (x 1 , x 2 , x 3 , x 4 ) next(x 4 ) := f 4 (x 1 , x 2 , x 3 , x 4 )

=⇒

 next(x 1 ) := f 1 (x 1 , x 2 , x 3 , x 4 ) next(x 2 ) := f 2 (x 1 , x 2 , x 3 , x 4 )



Note: The next values of invisible variables, next(x 3 ) and next(x 4 ), can assume every value nondeterministically

=⇒ do not constrain the transition relation

Since M 0 obviously simulates M, this is an Existential Abstraction M 0 |= ϕ =⇒ M |= ϕ

may produce spurious counter-examples

(54)

Outline

1 Abstraction

2 Abstraction-Based Symbolic Model Cheching Abstraction

Checking the counter-examples Refinement

3 Exercises

(55)

Counter-Example Guided Abstraction Refinement

General Schema:

Model Checking

M,p,h

M’,p Spurious

No

counter example

h’

M 6|= p M |= p

Yes: Real:

Check

Abstraction Refinement

Counterex.

(56)

Counter-Example Guided Abstraction Refinement

General Schema:

Model Checking

M,p,h

M’,p Spurious

No

counter example

h’

M 6|= p M |= p

Yes: Real:

Check

Abstraction Refinement

Counterex.

(57)

Checking the Abstract Counter-Example I

The problem

Let c 0 , ..., c m counter-example in the abstract space

Note: each c i is a truth assignment on the visible variables

Problem: check if there exist a corresponding ground

counterexample s 0 , ..., s m s.t. c i = h(s i ), for every i

(58)

Checking the Abstract Counter-Example I

The problem

Let c 0 , ..., c m counter-example in the abstract space

Note: each c i is a truth assignment on the visible variables

Problem: check if there exist a corresponding ground

counterexample s 0 , ..., s m s.t. c i = h(s i ), for every i

(59)

Checking the Abstract Counter-Example II

Idea

Simulate the counterexample on the concrete model Use Bounded Model Checking:

Φ

def

= I(s 0 ) ∧

m−1

^

i=0

R(s i , s i+1 ) ∧

m

^

i=0

visible(s i ) = c i

If satisfiable, the counter example is real, otherwise it is spurious Note: much more efficient than the direct BMC problem:

Φ

def

= I(s 0 ) ∧

m−1

^

i=0

R(s i , s i+1 ) ∧

m

_

i=0

¬BAD i

=⇒ cuts a 2 (m+1)·|V | factor from the Boolean search space.

(60)

Checking the Abstract Counter-Example II

Idea

Simulate the counterexample on the concrete model Use Bounded Model Checking:

Φ

def

= I(s 0 ) ∧

m−1

^

i=0

R(s i , s i+1 ) ∧

m

^

i=0

visible(s i ) = c i

If satisfiable, the counter example is real, otherwise it is spurious Note: much more efficient than the direct BMC problem:

Φ

def

= I(s 0 ) ∧

m−1

^

i=0

R(s i , s i+1 ) ∧

m

_

i=0

¬BAD i

=⇒ cuts a 2 (m+1)·|V | factor from the Boolean search space.

(61)

Outline

1 Abstraction

2 Abstraction-Based Symbolic Model Cheching Abstraction

Checking the counter-examples Refinement

3 Exercises

(62)

Counter-Example Guided Abstraction Refinement

Model Checking

M,p,h

M’,p Spurious

No

counter example

h’

M 6|= p M |= p

Yes: Real:

Check

Abstraction Refinement

Counterex.

(63)

Counter-Example Guided Abstraction Refinement

Model Checking

M,p,h

M’,p Spurious

No

counter example

h’

M 6|= p M |= p

Yes: Real:

Check

Abstraction Refinement

Counterex.

(64)

The cause of spurious counter-examples I

Problem

There is a state in the abstract counter-example (failure state) s.t. two different and un-connected kinds of ground states are mapped into it:

Deadend states: reachable states which do not allow to proceed along a refinement of the abstract counter-example

Bad states: un-reachable states which allow to proceed along a

refinement of the abstract counter-example

(65)

The cause of spurious counter-examples II

For the spurious counter-example:

T 1 → T 2 → T 3 → T 4 → T 5 → T 6

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

(66)

The cause of spurious counter-examples II

For the spurious counter-example:

T 1 → T 2 → T 3 → T 4 → T 5 → T 6

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

failure state

(67)

The cause of spurious counter-examples II

For the spurious counter-example:

T 1 → T 2 → T 3 → T 4 → T 5 → T 6

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

deadend states

failure state

(68)

The cause of spurious counter-examples II

For the spurious counter-example:

T 1 → T 2 → T 3 → T 4 → T 5 → T 6

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

bad states deadend states

failure state

(69)

The cause of spurious counter-examples III

Problem

There is a state in the abstract counter-example (failure state) s.t. two different and un-connected kinds of ground states are mapped into it:

Deadend states: reachable states which do not allow to proceed along a refinement of the abstract counter-example

Bad states: un-reachable states which allow to proceed along a refinement of the abstract counter-example

Solution: Refine the abstraction function.

1. identify the failure state and its deadend and bad states 2. refine the abstraction function s.t. deadend and bad states are

mapped into different abstract state

(70)

The cause of spurious counter-examples III

Problem

There is a state in the abstract counter-example (failure state) s.t. two different and un-connected kinds of ground states are mapped into it:

Deadend states: reachable states which do not allow to proceed along a refinement of the abstract counter-example

Bad states: un-reachable states which allow to proceed along a refinement of the abstract counter-example

Solution: Refine the abstraction function.

1. identify the failure state and its deadend and bad states 2. refine the abstraction function s.t. deadend and bad states are

mapped into different abstract state

(71)

Identify the failure state and its deadend & bad states

The failure state is the state of maximum index f in the abstract counter-example s.t. the following formula is satisfiable:

Φ D =

def

I(s 0 ) ∧

f −1

^

i=0

R(s i , s i+1 ) ∧

f

^

i=0

visible(s i ) = c i

The (restriction on index f of the) models of Φ D identify the deadend states {d 1 , ..., d k }

The bad states {b 1 , ..., b n } are identified by the (restriction on index f of the) models of the following formula:

Φ B

def

= R(s f , s f +1 ) ∧ visible(s f ) = c f ∧ visible(s f +1 ) = c f +1

(72)

Identify the failure state and its deadend & bad states

The failure state is the state of maximum index f in the abstract counter-example s.t. the following formula is satisfiable:

Φ D =

def

I(s 0 ) ∧

f −1

^

i=0

R(s i , s i+1 ) ∧

f

^

i=0

visible(s i ) = c i

The (restriction on index f of the) models of Φ D identify the deadend states {d 1 , ..., d k }

The bad states {b 1 , ..., b n } are identified by the (restriction on index f of the) models of the following formula:

Φ B

def

= R(s f , s f +1 ) ∧ visible(s f ) = c f ∧ visible(s f +1 ) = c f +1

(73)

Identify the failure state and its deadend & bad states

The failure state is the state of maximum index f in the abstract counter-example s.t. the following formula is satisfiable:

Φ D =

def

I(s 0 ) ∧

f −1

^

i=0

R(s i , s i+1 ) ∧

f

^

i=0

visible(s i ) = c i

The (restriction on index f of the) models of Φ D identify the deadend states {d 1 , ..., d k }

The bad states {b 1 , ..., b n } are identified by the (restriction on index f of the) models of the following formula:

Φ B

def

= R(s f , s f +1 ) ∧ visible(s f ) = c f ∧ visible(s f +1 ) = c f +1

(74)

Identify the failure state and its deadend & bad states

For the spurious counter-example:

T 1 → T 2 → T 3 → T 4 → T 5 → T 6

Ground System

Abstract System S11

S12

S13

S21

S22

S23

S31

S32

S33

S41

S42

S43

S51

S52

S53

S61

S62

S63

T1 T2 T3 T4 T5 T6

M

M’

bad states deadend states

failure state

(75)

Refinement: Separate deadend & bad states

The state separation problem

Input: sets D

def

= {d 1 , ..., d k } and B

def

= {b 1 , ..., b n } of states Output: (possibly smallest) set U ∈ I of invisible variables s.t.

∀d i ∈ D, ∀b j ∈ B, ∃u ∈ U s.t. d i (u) 6= b j (u)

=⇒ the truth values of U allow for separating each pair hd i , b j i

=⇒ The refinement h 0 is obtained by adding U to V.

(76)

Refinement: Separate deadend & bad states

The state separation problem

Input: sets D

def

= {d 1 , ..., d k } and B

def

= {b 1 , ..., b n } of states Output: (possibly smallest) set U ∈ I of invisible variables s.t.

∀d i ∈ D, ∀b j ∈ B, ∃u ∈ U s.t. d i (u) 6= b j (u)

=⇒ the truth values of U allow for separating each pair hd i , b j i

=⇒ The refinement h 0 is obtained by adding U to V.

(77)

Refinement: Separate deadend & bad states

The state separation problem

Input: sets D

def

= {d 1 , ..., d k } and B

def

= {b 1 , ..., b n } of states Output: (possibly smallest) set U ∈ I of invisible variables s.t.

∀d i ∈ D, ∀b j ∈ B, ∃u ∈ U s.t. d i (u) 6= b j (u)

=⇒ the truth values of U allow for separating each pair hd i , b j i

=⇒ The refinement h 0 is obtained by adding U to V.

(78)

Refinement: Separate deadend & bad states

The state separation problem

Input: sets D

def

= {d 1 , ..., d k } and B

def

= {b 1 , ..., b n } of states Output: (possibly smallest) set U ∈ I of invisible variables s.t.

∀d i ∈ D, ∀b j ∈ B, ∃u ∈ U s.t. d i (u) 6= b j (u)

=⇒ the truth values of U allow for separating each pair hd i , b j i

=⇒ The refinement h 0 is obtained by adding U to V.

(79)

Example

visible, invisible

x 1 x 2 x 3 x 4 x 5 x 6 x 7

d 1 0 1 0 0 1 0 1

d 2 0 1 0 1 1 1 0

b 1 0 1 0 1 1 1 1

b 2 0 1 0 0 0 0 1

differentiating d 1 , b 1 : make x 4 visible differentiating d 1 , b 2 : make x 5 visible differentiating d 2 , b 1 : make x 7 visible differentiating d 2 , b 2 : already different

=⇒ U = {x 4 , x 5 , x 7 }, h 0 keeps only x 6 invisible

Goal: Keep U as small as possible!

(80)

Example

visible, invisible

x 1 x 2 x 3 x 4 x 5 x 6 x 7

d 1 0 1 0 0 1 0 1

d 2 0 1 0 1 1 1 0

b 1 0 1 0 1 1 1 1

b 2 0 1 0 0 0 0 1

differentiating d 1 , b 1 : make x 4 visible differentiating d 1 , b 2 : make x 5 visible differentiating d 2 , b 1 : make x 7 visible differentiating d 2 , b 2 : already different

=⇒ U = {x 4 , x 5 , x 7 }, h 0 keeps only x 6 invisible

Goal: Keep U as small as possible!

(81)

Example

visible, invisible

x 1 x 2 x 3 x 4 x 5 x 6 x 7

d 1 0 1 0 0 1 0 1

d 2 0 1 0 1 1 1 0

b 1 0 1 0 1 1 1 1

b 2 0 1 0 0 0 0 1

differentiating d 1 , b 1 : make x 4 visible differentiating d 1 , b 2 : make x 5 visible differentiating d 2 , b 1 : make x 7 visible differentiating d 2 , b 2 : already different

=⇒ U = {x 4 , x 5 , x 7 }, h 0 keeps only x 6 invisible

Goal: Keep U as small as possible!

(82)

Example

visible, invisible

x 1 x 2 x 3 x 4 x 5 x 6 x 7

d 1 0 1 0 0 1 0 1

d 2 0 1 0 1 1 1 0

b 1 0 1 0 1 1 1 1

b 2 0 1 0 0 0 0 1

differentiating d 1 , b 1 : make x 4 visible differentiating d 1 , b 2 : make x 5 visible differentiating d 2 , b 1 : make x 7 visible differentiating d 2 , b 2 : already different

=⇒ U = {x 4 , x 5 , x 7 }, h 0 keeps only x 6 invisible

Goal: Keep U as small as possible!

(83)

Example

visible, invisible

x 1 x 2 x 3 x 4 x 5 x 6 x 7

d 1 0 1 0 0 1 0 1

d 2 0 1 0 1 1 1 0

b 1 0 1 0 1 1 1 1

b 2 0 1 0 0 0 0 1

differentiating d 1 , b 1 : make x 4 visible differentiating d 1 , b 2 : make x 5 visible differentiating d 2 , b 1 : make x 7 visible differentiating d 2 , b 2 : already different

=⇒ U = {x 4 , x 5 , x 7 }, h 0 keeps only x 6 invisible

Goal: Keep U as small as possible!

(84)

Example

visible, invisible

x 1 x 2 x 3 x 4 x 5 x 6 x 7

d 1 0 1 0 0 1 0 1

d 2 0 1 0 1 1 1 0

b 1 0 1 0 1 1 1 1

b 2 0 1 0 0 0 0 1

differentiating d 1 , b 1 : make x 4 visible differentiating d 1 , b 2 : make x 5 visible differentiating d 2 , b 1 : make x 7 visible differentiating d 2 , b 2 : already different

=⇒ U = {x 4 , x 5 , x 7 }, h 0 keeps only x 6 invisible

Goal: Keep U as small as possible!

(85)

Example

visible, invisible

x 1 x 2 x 3 x 4 x 5 x 6 x 7

d 1 0 1 0 0 1 0 1

d 2 0 1 0 1 1 1 0

b 1 0 1 0 1 1 1 1

b 2 0 1 0 0 0 0 1

differentiating d 1 , b 1 : make x 4 visible differentiating d 1 , b 2 : make x 5 visible differentiating d 2 , b 1 : make x 7 visible differentiating d 2 , b 2 : already different

=⇒ U = {x 4 , x 5 , x 7 }, h 0 keeps only x 6 invisible

Goal: Keep U as small as possible!

(86)

Two Separation Methods

Separation based on Decision-Tree Learning Not optimal.

Polynomial.

ILP-based separation Minimal separating set.

Computationally expensive.

(87)

Separation with decision tree (Example)

Idea: expand the decision tree until no hd i , b j i pair belongs to set.

x 1 x 2 x 3 x 4 x 5 x 6 x 7

d 1 0 1 0 0 1 0 1

d 2 0 1 0 1 1 1 0

b 1 0 1 0 1 1 1 1

b 2 0 1 0 0 0 0 1

{d 1 , d 2 , b 1 , b 2 }

differentiating d 1 , b 1 : x 4 differentiating d 1 , b 2 : x 5 differentiating d 2 , b 1 : x 7

=⇒ U = {x 4 , x 5 , x 7 }

(88)

Separation with decision tree (Example)

Idea: expand the decision tree until no hd i , b j i pair belongs to set.

x 1 x 2 x 3 x 4 x 5 x 6 x 7

d 1 0 1 0 0 1 0 1

d 2 0 1 0 1 1 1 0

b 1 0 1 0 1 1 1 1

b 2 0 1 0 0 0 0 1

0 x 4 1

{d 1 , b 2 } {d 2 , b 1 } {d 1 , d 2 , b 1 , b 2 }

differentiating d 1 , b 1 : x 4 differentiating d 1 , b 2 : x 5 differentiating d 2 , b 1 : x 7

=⇒ U = {x 4 , x 5 , x 7 }

(89)

Separation with decision tree (Example)

Idea: expand the decision tree until no hd i , b j i pair belongs to set.

x 1 x 2 x 3 x 4 x 5 x 6 x 7

d 1 0 1 0 0 1 0 1

d 2 0 1 0 1 1 1 0

b 1 0 1 0 1 1 1 1

b 2 0 1 0 0 0 0 1

0 1

0 1

x 5

B

{b 2 } {d 1 } D

x 4

{d 1 , b 2 } {d 2 , b 1 } {d 1 , d 2 , b 1 , b 2 }

differentiating d 1 , b 1 : x 4 differentiating d 1 , b 2 : x 5 differentiating d 2 , b 1 : x 7

=⇒ U = {x 4 , x 5 , x 7 }

(90)

Separation with decision tree (Example)

Idea: expand the decision tree until no hd i , b j i pair belongs to set.

x 1 x 2 x 3 x 4 x 5 x 6 x 7

d 1 0 1 0 0 1 0 1

d 2 0 1 0 1 1 1 0

b 1 0 1 0 1 1 1 1

b 2 0 1 0 0 0 0 1

0 1

0 1

0 1

x 7

D {d 2 }

B {b 1 } x 5

B

{b 2 } {d 1 } D

x 4

{d 1 , b 2 } {d 2 , b 1 } {d 1 , d 2 , b 1 , b 2 }

differentiating d 1 , b 1 : x 4 differentiating d 1 , b 2 : x 5 differentiating d 2 , b 1 : x 7

=⇒ U = {x 4 , x 5 , x 7 }

(91)

Separation with 0-1 ILP

Idea

Encode the problem as a 0-1 ILP problem min X

x

k

∈I

v k , subject to :

X

xk ∈I

d (x

k

)6=b(x

k

)

v k ≥ 1 ∀d ∈ D, ∀b ∈ B,

intuition: v k = > iff x k must me made visible

one constraint for every pair hd i , b j i

(92)

Separation with 0-1 ILP

Idea

Encode the problem as a 0-1 ILP problem min X

x

k

∈I

v k , subject to :

X

xk ∈I

d (x

k

)6=b(x

k

)

v k ≥ 1 ∀d ∈ D, ∀b ∈ B,

intuition: v k = > iff x k must me made visible

one constraint for every pair hd i , b j i

(93)

Separation with 0-1 ILP: Example

x 1 x 2 x 3 x 4 x 5 x 6 x 7

d 1 0 1 0 0 1 0 1

d 2 0 1 0 1 1 1 0

b 1 0 1 0 1 1 1 1

b 2 0 1 0 0 0 0 1

min {v 4 + v 5 + v 6 + v 7 } subject to :

 

 

v 4 + v 6 ≥ 1 // separating d 1 , b 1 v 5 ≥ 1 // separating d 1 , b 2 v 7 ≥ 1 // separating d 2 , b 1 v 4 + v 5 + v 6 + v 7 ≥ 1 // separating d 2 , b 2

=⇒ return {v 4 , v 5 , v 7 } =⇒ U = {x 4 , x 5 , x 7 }

or return {v 5 , v 6 , v 7 } =⇒ U = {x 5 , x 6 , x 7 }

(94)

Separation with 0-1 ILP: Example

x 1 x 2 x 3 x 4 x 5 x 6 x 7

d 1 0 1 0 0 1 0 1

d 2 0 1 0 1 1 1 0

b 1 0 1 0 1 1 1 1

b 2 0 1 0 0 0 0 1

min {v 4 + v 5 + v 6 + v 7 } subject to :

 

 

v 4 + v 6 ≥ 1 // separating d 1 , b 1 v 5 ≥ 1 // separating d 1 , b 2 v 7 ≥ 1 // separating d 2 , b 1 v 4 + v 5 + v 6 + v 7 ≥ 1 // separating d 2 , b 2

=⇒ return {v 4 , v 5 , v 7 } =⇒ U = {x 4 , x 5 , x 7 }

or return {v 5 , v 6 , v 7 } =⇒ U = {x 5 , x 6 , x 7 }

(95)

Separation with 0-1 ILP: Example

x 1 x 2 x 3 x 4 x 5 x 6 x 7

d 1 0 1 0 0 1 0 1

d 2 0 1 0 1 1 1 0

b 1 0 1 0 1 1 1 1

b 2 0 1 0 0 0 0 1

min {v 4 + v 5 + v 6 + v 7 } subject to :

 

 

v 4 + v 6 ≥ 1 // separating d 1 , b 1 v 5 ≥ 1 // separating d 1 , b 2 v 7 ≥ 1 // separating d 2 , b 1 v 4 + v 5 + v 6 + v 7 ≥ 1 // separating d 2 , b 2

=⇒ return {v 4 , v 5 , v 7 } =⇒ U = {x 4 , x 5 , x 7 }

or return {v 5 , v 6 , v 7 } =⇒ U = {x 5 , x 6 , x 7 }

(96)

Outline

1 Abstraction

2 Abstraction-Based Symbolic Model Cheching Abstraction

Checking the counter-examples Refinement

3 Exercises

Riferimenti

Documenti correlati

Some exampes displayed in these slides are taken from [Clarke, Grunberg & Peled, “Model Checking”, MIT Press], and their copyright is detained by the authors?. All the

for a restricted number of students, in turn, it will be possible to follow the class physically in the classroom following the safety access protocols. for everybody else it will

If a student willingly refuses to comply to the rules (e.g., to wear a mask) the teacher is supposed to take his/her data and to call the DISI COVID19-safety responsible, who

=⇒ Substantially, add one initial state, move labels from states to incoming edges, set fair states as accepting states.. The Main Problem of M.C.: State

=⇒ It is reasonable enough to assume the protocol suitable under the condition that each user is infinitely often outside the restroom.. Such a condition is called

Various techniques: Bounded Model Checking (BMC), K-induction, Interpolant-based, IC3/PDR,..... SAT-based Bounded Model Checking

satisfiability of the Boolean formulas is checked by a SAT solver can manage complex formulae on several 100K variables returns satisfying assignment (i.e., a counter-example)

Deadend states: reachable states which do not allow to proceed along a refinement of the abstract counter-example. Bad states: un-reachable states which allow to proceed along