Introduction to Formal Methods Chapter 04: CTL Model Checking

160
Introduction to Formal Methods Chapter 04: CTL Model Checking Roberto Sebastiani DISI, Università di Trento, Italy – [email protected] URL: http://disi.unitn.it/rseba/DIDATTICA/fm2020/ Teaching assistant: Enrico Magnago [email protected] CDLM in Informatica, academic year 2019-2020 last update: Monday 18 th May, 2020, 14:48 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, 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. Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18 th May, 2020 1 / 72

Transcript of Introduction to Formal Methods Chapter 04: CTL Model Checking

Page 1: Introduction to Formal Methods Chapter 04: CTL Model Checking

Introduction to Formal MethodsChapter 04: CTL Model Checking

Roberto Sebastiani

DISI, Università di Trento, Italy – [email protected]: http://disi.unitn.it/rseba/DIDATTICA/fm2020/

Teaching assistant: Enrico Magnago – [email protected]

CDLM in Informatica, academic year 2019-2020

last update: Monday 18th May, 2020, 14:48

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, and S.Tonetta, who detain its copyright. Some exampes displayed in theseslides are taken from [Clarke, Grunberg & Peled, “Model Checking”, MIT Press], and their copyright is detained by theauthors. 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 publicwithout containing this copyright notice.

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 1 / 72

Page 2: Introduction to Formal Methods Chapter 04: CTL Model Checking

Outline

1 CTL Model Checking: general ideas

2 CTL Model Checking: a simple example

3 Some theoretical issues

4 CTL Model Checking: algorithms

5 CTL Model Checking: some examples

6 A relevant subcase: invariants

7 Exercises

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 2 / 72

Page 3: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

Outline

1 CTL Model Checking: general ideas

2 CTL Model Checking: a simple example

3 Some theoretical issues

4 CTL Model Checking: algorithms

5 CTL Model Checking: some examples

6 A relevant subcase: invariants

7 Exercises

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 3 / 72

Page 4: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking

CTL Model Checking is a formal verification technique where......the system is represented as a Finite State Machine M:

...the property is expressed a CTL formula ϕ:

AG(p → AFq)

...the model checking algorithm checks whether in all initial statesof M all the executions of the model satisfy the formula (M |= ϕ).

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 4 / 72

Page 5: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking

CTL Model Checking is a formal verification technique where......the system is represented as a Finite State Machine M:

p

q

1

2

3

4

p

...the property is expressed a CTL formula ϕ:

AG(p → AFq)

...the model checking algorithm checks whether in all initial statesof M all the executions of the model satisfy the formula (M |= ϕ).

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 4 / 72

Page 6: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking

CTL Model Checking is a formal verification technique where......the system is represented as a Finite State Machine M:

p

q

1

2

3

4

p

...the property is expressed a CTL formula ϕ:

AG(p → AFq)

...the model checking algorithm checks whether in all initial statesof M all the executions of the model satisfy the formula (M |= ϕ).

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 4 / 72

Page 7: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking

CTL Model Checking is a formal verification technique where......the system is represented as a Finite State Machine M:

p

q

1

2

3

4

p

...the property is expressed a CTL formula ϕ:

AG(p → AFq)

...the model checking algorithm checks whether in all initial statesof M all the executions of the model satisfy the formula (M |= ϕ).

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 4 / 72

Page 8: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking: General Idea

Two macro-steps:1 construct the set of states where the formula holds:

[ϕ] := {s ∈ S : M, s |= ϕ}([ϕ] is called the denotation of ϕ)

2 then compare with the set of initial states:I ⊆ [ϕ] ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 5 / 72

Page 9: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking: General Idea

Two macro-steps:1 construct the set of states where the formula holds:

[ϕ] := {s ∈ S : M, s |= ϕ}([ϕ] is called the denotation of ϕ)

2 then compare with the set of initial states:I ⊆ [ϕ] ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 5 / 72

Page 10: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking: General Idea

Two macro-steps:1 construct the set of states where the formula holds:

[ϕ] := {s ∈ S : M, s |= ϕ}([ϕ] is called the denotation of ϕ)

2 then compare with the set of initial states:I ⊆ [ϕ] ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 5 / 72

Page 11: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking: General Idea [cont.]

In order to compute [ϕ]:

proceed “bottom-up” on the structure of the formula, computing[ϕi ] for each subformula ϕi of AG(p → AFq):

[q],[AFq],[p],[p → AFq],[AG(p → AFq)]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 6 / 72

Page 12: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking: General Idea [cont.]

In order to compute [ϕ]:

proceed “bottom-up” on the structure of the formula, computing[ϕi ] for each subformula ϕi of AG(p → AFq):

[q],[AFq],[p],[p → AFq],[AG(p → AFq)]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 6 / 72

Page 13: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking: General Idea [cont.]

In order to compute [ϕ]:

proceed “bottom-up” on the structure of the formula, computing[ϕi ] for each subformula ϕi of AG(p → AFq):

[q],[AFq],[p],[p → AFq],[AG(p → AFq)]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 6 / 72

Page 14: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking: General Idea [cont.]

In order to compute [ϕ]:

proceed “bottom-up” on the structure of the formula, computing[ϕi ] for each subformula ϕi of AG(p → AFq):

[q],[AFq],[p],[p → AFq],[AG(p → AFq)]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 6 / 72

Page 15: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking: General Idea [cont.]

In order to compute [ϕ]:

proceed “bottom-up” on the structure of the formula, computing[ϕi ] for each subformula ϕi of AG(p → AFq):

[q],[AFq],[p],[p → AFq],[AG(p → AFq)]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 6 / 72

Page 16: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking: General Idea [cont.]

In order to compute [ϕ]:

proceed “bottom-up” on the structure of the formula, computing[ϕi ] for each subformula ϕi of AG(p → AFq):

[q],[AFq],[p],[p → AFq],[AG(p → AFq)]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 6 / 72

Page 17: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking: General Idea [cont.]

In order to compute [ϕ]:

proceed “bottom-up” on the structure of the formula, computing[ϕi ] for each subformula ϕi of AG(p → AFq):

[q],[AFq],[p],[p → AFq],[AG(p → AFq)]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 6 / 72

Page 18: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking: General Idea [cont.]

In order to compute each [ϕi ]:assign Propositional atoms by labeling functionhandle Boolean operators by standard set operationshandle temporal operators AX, EX by computing pre-imageshandle temporal operators AG, EG, AF, EF, AU, EU, by (implicitly)applying tableaux rules, until a fixpoint is reached

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 7 / 72

Page 19: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking: General Idea [cont.]

In order to compute each [ϕi ]:assign Propositional atoms by labeling functionhandle Boolean operators by standard set operationshandle temporal operators AX, EX by computing pre-imageshandle temporal operators AG, EG, AF, EF, AU, EU, by (implicitly)applying tableaux rules, until a fixpoint is reached

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 7 / 72

Page 20: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking: General Idea [cont.]

In order to compute each [ϕi ]:assign Propositional atoms by labeling functionhandle Boolean operators by standard set operationshandle temporal operators AX, EX by computing pre-imageshandle temporal operators AG, EG, AF, EF, AU, EU, by (implicitly)applying tableaux rules, until a fixpoint is reached

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 7 / 72

Page 21: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking: General Idea [cont.]

In order to compute each [ϕi ]:assign Propositional atoms by labeling functionhandle Boolean operators by standard set operationshandle temporal operators AX, EX by computing pre-imageshandle temporal operators AG, EG, AF, EF, AU, EU, by (implicitly)applying tableaux rules, until a fixpoint is reached

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 7 / 72

Page 22: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

CTL Model Checking: General Idea [cont.]

In order to compute each [ϕi ]:assign Propositional atoms by labeling functionhandle Boolean operators by standard set operationshandle temporal operators AX, EX by computing pre-imageshandle temporal operators AG, EG, AF, EF, AU, EU, by (implicitly)applying tableaux rules, until a fixpoint is reached

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 7 / 72

Page 23: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: general ideas

Tableaux rules: a quote

“After all... tomorrow is another day."[Scarlett O’Hara, “Gone with the Wind”]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 8 / 72

Page 24: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

Outline

1 CTL Model Checking: general ideas

2 CTL Model Checking: a simple example

3 Some theoretical issues

4 CTL Model Checking: algorithms

5 CTL Model Checking: some examples

6 A relevant subcase: invariants

7 Exercises

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 9 / 72

Page 25: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq)

p

q

1

2

3

4

p

p

q

1

2

3

4

p

"q" "AF q"

Recall the AF tableau rule: AFq ↔ (q ∨ AXAFq)Iteration: [AFq](1) = [q]; [AFq](i+1) = [q] ∪ AX[AFq](i)

[AFq](1) = [q] = {2}[AFq](2) = [q ∨ AXq] = {2} ∪ {1} = {1,2}[AFq](3) = [q ∨ AX(q ∨ AXq)] = {2} ∪ {1} = {1,2}=⇒ (fix point reached)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 10 / 72

Page 26: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq)

p

q

1

2

3

4

p

p

q

1

2

3

4

p

"q" "AF q"

Recall the AF tableau rule: AFq ↔ (q ∨ AXAFq)Iteration: [AFq](1) = [q]; [AFq](i+1) = [q] ∪ AX[AFq](i)

[AFq](1) = [q] = {2}[AFq](2) = [q ∨ AXq] = {2} ∪ {1} = {1,2}[AFq](3) = [q ∨ AX(q ∨ AXq)] = {2} ∪ {1} = {1,2}=⇒ (fix point reached)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 10 / 72

Page 27: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq)

p

q

1

2

3

4

p

p

q

1

2

3

4

p

"q" "AF q"

Recall the AF tableau rule: AFq ↔ (q ∨ AXAFq)Iteration: [AFq](1) = [q]; [AFq](i+1) = [q] ∪ AX[AFq](i)

[AFq](1) = [q] = {2}[AFq](2) = [q ∨ AXq] = {2} ∪ {1} = {1,2}[AFq](3) = [q ∨ AX(q ∨ AXq)] = {2} ∪ {1} = {1,2}=⇒ (fix point reached)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 10 / 72

Page 28: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq)

p

q

1

2

3

4

p

p

q

1

2

3

4

p

"q" "AF q"

Recall the AF tableau rule: AFq ↔ (q ∨ AXAFq)Iteration: [AFq](1) = [q]; [AFq](i+1) = [q] ∪ AX[AFq](i)

[AFq](1) = [q] = {2}[AFq](2) = [q ∨ AXq] = {2} ∪ {1} = {1,2}[AFq](3) = [q ∨ AX(q ∨ AXq)] = {2} ∪ {1} = {1,2}=⇒ (fix point reached)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 10 / 72

Page 29: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq)

p

q

1

2

3

4

p

p

q

1

2

3

4

p

"q" "AF q"

Recall the AF tableau rule: AFq ↔ (q ∨ AXAFq)Iteration: [AFq](1) = [q]; [AFq](i+1) = [q] ∪ AX[AFq](i)

[AFq](1) = [q] = {2}[AFq](2) = [q ∨ AXq] = {2} ∪ {1} = {1,2}[AFq](3) = [q ∨ AX(q ∨ AXq)] = {2} ∪ {1} = {1,2}=⇒ (fix point reached)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 10 / 72

Page 30: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq)

p

q

1

2

3

4

p

p

q

1

2

3

4

p

"q" "AF q"

Recall the AF tableau rule: AFq ↔ (q ∨ AXAFq)Iteration: [AFq](1) = [q]; [AFq](i+1) = [q] ∪ AX[AFq](i)

[AFq](1) = [q] = {2}[AFq](2) = [q ∨ AXq] = {2} ∪ {1} = {1,2}[AFq](3) = [q ∨ AX(q ∨ AXq)] = {2} ∪ {1} = {1,2}=⇒ (fix point reached)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 10 / 72

Page 31: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq)

p

q

1

2

3

4

p

p

q

1

2

3

4

p

"q" "AF q"

Recall the AF tableau rule: AFq ↔ (q ∨ AXAFq)Iteration: [AFq](1) = [q]; [AFq](i+1) = [q] ∪ AX[AFq](i)

[AFq](1) = [q] = {2}[AFq](2) = [q ∨ AXq] = {2} ∪ {1} = {1,2}[AFq](3) = [q ∨ AX(q ∨ AXq)] = {2} ∪ {1} = {1,2}=⇒ (fix point reached)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 10 / 72

Page 32: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq) [cont.]

p

q

1

2

3

4

p

p

q

1

2

3

4

pp

q

1

2

3

4

p

"p"

"AF q"

"p −> AF q"

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 11 / 72

Page 33: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq) [cont.]

p

q

1

2

3

4

p

p

q

1

2

3

4

p

"p −> AF q" "AG(p −> AF q)"

Recall the AG tableau rule: AGϕ↔ (ϕ ∧ AXAGϕ)Iteration: [AGϕ(1)] = [ϕ]; [AGϕ](i+1) = [ϕ] ∩ AX[AGϕ](i)

1 [AGϕ](1) = [ϕ] = {1,2,4}2 [AGϕ](2) = [ϕ] ∩ AX[AGϕ](1) = {1,2,4} ∩ {1,3} = {1}3 [AGϕ](3) = [ϕ] ∩ AX[AGϕ](2) = {1,2,4} ∩ {} = {}

=⇒ (fix point reached)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 12 / 72

Page 34: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq) [cont.]

p

q

1

2

3

4

p

p

q

1

2

3

4

p

"p −> AF q" "AG(p −> AF q)"

Recall the AG tableau rule: AGϕ↔ (ϕ ∧ AXAGϕ)Iteration: [AGϕ(1)] = [ϕ]; [AGϕ](i+1) = [ϕ] ∩ AX[AGϕ](i)

1 [AGϕ](1) = [ϕ] = {1,2,4}2 [AGϕ](2) = [ϕ] ∩ AX[AGϕ](1) = {1,2,4} ∩ {1,3} = {1}3 [AGϕ](3) = [ϕ] ∩ AX[AGϕ](2) = {1,2,4} ∩ {} = {}

=⇒ (fix point reached)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 12 / 72

Page 35: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq) [cont.]

p

q

1

2

3

4

p

p

q

1

2

3

4

p

"p −> AF q" "AG(p −> AF q)"

Recall the AG tableau rule: AGϕ↔ (ϕ ∧ AXAGϕ)Iteration: [AGϕ(1)] = [ϕ]; [AGϕ](i+1) = [ϕ] ∩ AX[AGϕ](i)

1 [AGϕ](1) = [ϕ] = {1,2,4}2 [AGϕ](2) = [ϕ] ∩ AX[AGϕ](1) = {1,2,4} ∩ {1,3} = {1}3 [AGϕ](3) = [ϕ] ∩ AX[AGϕ](2) = {1,2,4} ∩ {} = {}

=⇒ (fix point reached)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 12 / 72

Page 36: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq) [cont.]

p

q

1

2

3

4

p

p

q

1

2

3

4

p

"p −> AF q" "AG(p −> AF q)"

Recall the AG tableau rule: AGϕ↔ (ϕ ∧ AXAGϕ)Iteration: [AGϕ(1)] = [ϕ]; [AGϕ](i+1) = [ϕ] ∩ AX[AGϕ](i)

1 [AGϕ](1) = [ϕ] = {1,2,4}2 [AGϕ](2) = [ϕ] ∩ AX[AGϕ](1) = {1,2,4} ∩ {1,3} = {1}3 [AGϕ](3) = [ϕ] ∩ AX[AGϕ](2) = {1,2,4} ∩ {} = {}

=⇒ (fix point reached)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 12 / 72

Page 37: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq) [cont.]

p

q

1

2

3

4

p

p

q

1

2

3

4

p

"p −> AF q" "AG(p −> AF q)"

Recall the AG tableau rule: AGϕ↔ (ϕ ∧ AXAGϕ)Iteration: [AGϕ(1)] = [ϕ]; [AGϕ](i+1) = [ϕ] ∩ AX[AGϕ](i)

1 [AGϕ](1) = [ϕ] = {1,2,4}2 [AGϕ](2) = [ϕ] ∩ AX[AGϕ](1) = {1,2,4} ∩ {1,3} = {1}3 [AGϕ](3) = [ϕ] ∩ AX[AGϕ](2) = {1,2,4} ∩ {} = {}

=⇒ (fix point reached)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 12 / 72

Page 38: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq) [cont.]

p

q

1

2

3

4

p

p

q

1

2

3

4

p

"p −> AF q" "AG(p −> AF q)"

Recall the AG tableau rule: AGϕ↔ (ϕ ∧ AXAGϕ)Iteration: [AGϕ(1)] = [ϕ]; [AGϕ](i+1) = [ϕ] ∩ AX[AGϕ](i)

1 [AGϕ](1) = [ϕ] = {1,2,4}2 [AGϕ](2) = [ϕ] ∩ AX[AGϕ](1) = {1,2,4} ∩ {1,3} = {1}3 [AGϕ](3) = [ϕ] ∩ AX[AGϕ](2) = {1,2,4} ∩ {} = {}

=⇒ (fix point reached)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 12 / 72

Page 39: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq) [cont.]

p

q

1

2

3

4

p

p

q

1

2

3

4

p

"p −> AF q" "AG(p −> AF q)"

Recall the AG tableau rule: AGϕ↔ (ϕ ∧ AXAGϕ)Iteration: [AGϕ(1)] = [ϕ]; [AGϕ](i+1) = [ϕ] ∩ AX[AGϕ](i)

1 [AGϕ](1) = [ϕ] = {1,2,4}2 [AGϕ](2) = [ϕ] ∩ AX[AGϕ](1) = {1,2,4} ∩ {1,3} = {1}3 [AGϕ](3) = [ϕ] ∩ AX[AGϕ](2) = {1,2,4} ∩ {} = {}

=⇒ (fix point reached)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 12 / 72

Page 40: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq) [cont.]

The set of states where the formula holds is empty=⇒ the initial state does not satisfy the property=⇒ M 6|= AG(p → AFq)Counterexample: a lazo-shaped path: 1,2, {3,4}ω (satisfyingEF(p ∧ EG¬q))

NoteCounter-example reconstruction in general is not trivial, based onintermediate sets.

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 13 / 72

Page 41: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq) [cont.]

The set of states where the formula holds is empty=⇒ the initial state does not satisfy the property=⇒ M 6|= AG(p → AFq)Counterexample: a lazo-shaped path: 1,2, {3,4}ω (satisfyingEF(p ∧ EG¬q))

NoteCounter-example reconstruction in general is not trivial, based onintermediate sets.

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 13 / 72

Page 42: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq) [cont.]

The set of states where the formula holds is empty=⇒ the initial state does not satisfy the property=⇒ M 6|= AG(p → AFq)Counterexample: a lazo-shaped path: 1,2, {3,4}ω (satisfyingEF(p ∧ EG¬q))

NoteCounter-example reconstruction in general is not trivial, based onintermediate sets.

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 13 / 72

Page 43: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq) [cont.]

The set of states where the formula holds is empty=⇒ the initial state does not satisfy the property=⇒ M 6|= AG(p → AFq)Counterexample: a lazo-shaped path: 1,2, {3,4}ω (satisfyingEF(p ∧ EG¬q))

NoteCounter-example reconstruction in general is not trivial, based onintermediate sets.

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 13 / 72

Page 44: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: a simple example

CTL Model Checking: Example: AG(p → AFq) [cont.]

The set of states where the formula holds is empty=⇒ the initial state does not satisfy the property=⇒ M 6|= AG(p → AFq)Counterexample: a lazo-shaped path: 1,2, {3,4}ω (satisfyingEF(p ∧ EG¬q))

NoteCounter-example reconstruction in general is not trivial, based onintermediate sets.

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 13 / 72

Page 45: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Outline

1 CTL Model Checking: general ideas

2 CTL Model Checking: a simple example

3 Some theoretical issues

4 CTL Model Checking: algorithms

5 CTL Model Checking: some examples

6 A relevant subcase: invariants

7 Exercises

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 14 / 72

Page 46: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

The fixed-point theory of lattice of sets

Definition

For any finite set S, the structure (2S,⊆) forms a complete latticewith ∪ as join and ∩ as meet operations.A function F : 2S 7−→ 2S is monotonic providedS1 ⊆ S2 ⇒ F (S1) ⊆ F (S2).

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 15 / 72

Page 47: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

The fixed-point theory of lattice of sets

Definition

For any finite set S, the structure (2S,⊆) forms a complete latticewith ∪ as join and ∩ as meet operations.A function F : 2S 7−→ 2S is monotonic providedS1 ⊆ S2 ⇒ F (S1) ⊆ F (S2).

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 15 / 72

Page 48: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Fixed Points

Definition

Let 〈2S,⊆〉 be a complete lattice, S finite.Given a function F : 2S 7−→ 2S, a ⊆ S is a fixed point of F iff

F (a) = a

a is a least fixed point (LFP) of F , written µx .F (x), iff, for everyother fixed point a′ of F , a ⊆ a′

a is a greatest fixed point (GFP) of F , written νx .F (x), iff, for everyother fixed point a′ of F , a′ ⊆ a

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 16 / 72

Page 49: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Fixed Points

Definition

Let 〈2S,⊆〉 be a complete lattice, S finite.Given a function F : 2S 7−→ 2S, a ⊆ S is a fixed point of F iff

F (a) = a

a is a least fixed point (LFP) of F , written µx .F (x), iff, for everyother fixed point a′ of F , a ⊆ a′

a is a greatest fixed point (GFP) of F , written νx .F (x), iff, for everyother fixed point a′ of F , a′ ⊆ a

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 16 / 72

Page 50: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Fixed Points

Definition

Let 〈2S,⊆〉 be a complete lattice, S finite.Given a function F : 2S 7−→ 2S, a ⊆ S is a fixed point of F iff

F (a) = a

a is a least fixed point (LFP) of F , written µx .F (x), iff, for everyother fixed point a′ of F , a ⊆ a′

a is a greatest fixed point (GFP) of F , written νx .F (x), iff, for everyother fixed point a′ of F , a′ ⊆ a

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 16 / 72

Page 51: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Fixed Points

Definition

Let 〈2S,⊆〉 be a complete lattice, S finite.Given a function F : 2S 7−→ 2S, a ⊆ S is a fixed point of F iff

F (a) = a

a is a least fixed point (LFP) of F , written µx .F (x), iff, for everyother fixed point a′ of F , a ⊆ a′

a is a greatest fixed point (GFP) of F , written νx .F (x), iff, for everyother fixed point a′ of F , a′ ⊆ a

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 16 / 72

Page 52: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Iteratively computing fixed points

Tarski’s TheoremA monotonic function over a complete finite lattice has a least and agreatest fixed point.

(A corollary of) Kleene’s TheoremA monotonic function F over a complete finite lattice has a least and agreatest fixed point, which can be computed as follows:

the least fixed point of F is the limit of the chain∅ ⊆ F (∅) ⊆ F (F (∅)) . . . ,the greatest fixed point of F is the limit of chainS ⊇ F (S) ⊇ F (F (S)) . . .

Since 2S is finite, convergence is obtained in a finite number of steps.

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 17 / 72

Page 53: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Iteratively computing fixed points

Tarski’s TheoremA monotonic function over a complete finite lattice has a least and agreatest fixed point.

(A corollary of) Kleene’s TheoremA monotonic function F over a complete finite lattice has a least and agreatest fixed point, which can be computed as follows:

the least fixed point of F is the limit of the chain∅ ⊆ F (∅) ⊆ F (F (∅)) . . . ,the greatest fixed point of F is the limit of chainS ⊇ F (S) ⊇ F (F (S)) . . .

Since 2S is finite, convergence is obtained in a finite number of steps.

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 17 / 72

Page 54: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Iteratively computing fixed points

Tarski’s TheoremA monotonic function over a complete finite lattice has a least and agreatest fixed point.

(A corollary of) Kleene’s TheoremA monotonic function F over a complete finite lattice has a least and agreatest fixed point, which can be computed as follows:

the least fixed point of F is the limit of the chain∅ ⊆ F (∅) ⊆ F (F (∅)) . . . ,the greatest fixed point of F is the limit of chainS ⊇ F (S) ⊇ F (F (S)) . . .

Since 2S is finite, convergence is obtained in a finite number of steps.

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 17 / 72

Page 55: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Iteratively computing fixed points

Tarski’s TheoremA monotonic function over a complete finite lattice has a least and agreatest fixed point.

(A corollary of) Kleene’s TheoremA monotonic function F over a complete finite lattice has a least and agreatest fixed point, which can be computed as follows:

the least fixed point of F is the limit of the chain∅ ⊆ F (∅) ⊆ F (F (∅)) . . . ,the greatest fixed point of F is the limit of chainS ⊇ F (S) ⊇ F (F (S)) . . .

Since 2S is finite, convergence is obtained in a finite number of steps.

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 17 / 72

Page 56: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Iteratively computing fixed points

Tarski’s TheoremA monotonic function over a complete finite lattice has a least and agreatest fixed point.

(A corollary of) Kleene’s TheoremA monotonic function F over a complete finite lattice has a least and agreatest fixed point, which can be computed as follows:

the least fixed point of F is the limit of the chain∅ ⊆ F (∅) ⊆ F (F (∅)) . . . ,the greatest fixed point of F is the limit of chainS ⊇ F (S) ⊇ F (F (S)) . . .

Since 2S is finite, convergence is obtained in a finite number of steps.

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 17 / 72

Page 57: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

CTL Model Checking and Lattices

If M = 〈S, I,R,L,AP〉 is a Kripke structure, then 〈2S,⊆〉 is acomplete latticeWe identify ϕ with its denotation [ϕ]

=⇒ we can see logical operators as functions F : 2S 7−→ 2S on thecomplete lattice 〈2S,⊆〉

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 18 / 72

Page 58: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

CTL Model Checking and Lattices

If M = 〈S, I,R,L,AP〉 is a Kripke structure, then 〈2S,⊆〉 is acomplete latticeWe identify ϕ with its denotation [ϕ]

=⇒ we can see logical operators as functions F : 2S 7−→ 2S on thecomplete lattice 〈2S,⊆〉

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 18 / 72

Page 59: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

CTL Model Checking and Lattices

If M = 〈S, I,R,L,AP〉 is a Kripke structure, then 〈2S,⊆〉 is acomplete latticeWe identify ϕ with its denotation [ϕ]

=⇒ we can see logical operators as functions F : 2S 7−→ 2S on thecomplete lattice 〈2S,⊆〉

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 18 / 72

Page 60: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Denotation of a CTL formula ϕ: [ϕ]

Definition of [ϕ]

[ϕ] := {s ∈ S : M, s |= ϕ}

Recursive definition of [ϕ]

[true] = S[false] = {}[p] = {s|p ∈ L(s)}[¬ϕ1] = S/[ϕ1][ϕ1 ∧ ϕ2] = [ϕ1] ∩ [ϕ2][EXϕ] = {s | ∃s′ ∈ [ϕ] s.t . 〈s, s′〉 ∈ R}[EGβ] = νZ .( [β] ∩ [EXZ ] )[E(β1Uβ2)] = µZ .( [β2] ∪ ([β1] ∩ [EXZ ]) )

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 19 / 72

Page 61: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Denotation of a CTL formula ϕ: [ϕ]

Definition of [ϕ]

[ϕ] := {s ∈ S : M, s |= ϕ}

Recursive definition of [ϕ]

[true] = S[false] = {}[p] = {s|p ∈ L(s)}[¬ϕ1] = S/[ϕ1][ϕ1 ∧ ϕ2] = [ϕ1] ∩ [ϕ2][EXϕ] = {s | ∃s′ ∈ [ϕ] s.t . 〈s, s′〉 ∈ R}[EGβ] = νZ .( [β] ∩ [EXZ ] )[E(β1Uβ2)] = µZ .( [β2] ∪ ([β1] ∩ [EXZ ]) )

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 19 / 72

Page 62: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Case EXPPreImage(P)

[EXϕ] = {s | ∃s′ ∈ [ϕ] s.t . 〈s, s′〉 ∈ R}[EXϕ] is said to be the Pre-image of [ϕ] (Preimage([ϕ]))Key step of every CTL M.C. operation

NotePreimage() is monotonic: X ⊆ X ′ =⇒ Preimage(X ) ⊆ Preimage(X ′)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 20 / 72

Page 63: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Case EXPPreImage(P)

[EXϕ] = {s | ∃s′ ∈ [ϕ] s.t . 〈s, s′〉 ∈ R}[EXϕ] is said to be the Pre-image of [ϕ] (Preimage([ϕ]))Key step of every CTL M.C. operation

NotePreimage() is monotonic: X ⊆ X ′ =⇒ Preimage(X ) ⊆ Preimage(X ′)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 20 / 72

Page 64: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Case EXPPreImage(P)

[EXϕ] = {s | ∃s′ ∈ [ϕ] s.t . 〈s, s′〉 ∈ R}[EXϕ] is said to be the Pre-image of [ϕ] (Preimage([ϕ]))Key step of every CTL M.C. operation

NotePreimage() is monotonic: X ⊆ X ′ =⇒ Preimage(X ) ⊆ Preimage(X ′)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 20 / 72

Page 65: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Case EXPPreImage(P)

[EXϕ] = {s | ∃s′ ∈ [ϕ] s.t . 〈s, s′〉 ∈ R}[EXϕ] is said to be the Pre-image of [ϕ] (Preimage([ϕ]))Key step of every CTL M.C. operation

NotePreimage() is monotonic: X ⊆ X ′ =⇒ Preimage(X ) ⊆ Preimage(X ′)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 20 / 72

Page 66: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Case EG

νZ .( [β] ∩ [EXZ ] ): greatest fixed point of the functionFβ : 2S 7−→ 2S, s.t.Fβ([ϕ]) = ([β] ∩ Preimage([ϕ])

= ([β] ∩ {s | ∃s′ ∈ [ϕ] s.t . 〈s, s′〉 ∈ R})Fβ Monotonic: a ⊆ a′ =⇒ Fβ(a) ⊆ Fβ(a′)

(Tarski’s theorem): νx .Fβ(x) always exists(Kleene’s theorem): νx .Fβ(x) can be computed as the limitS ⊇ Fβ(S) ⊇ Fβ(Fβ(S)) ⊇ . . ., in a finite number of steps.

Theorem (Clarke & Emerson)

[EGβ] = νZ .( [β] ∩ [EXZ ] )

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 21 / 72

Page 67: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Case EG

νZ .( [β] ∩ [EXZ ] ): greatest fixed point of the functionFβ : 2S 7−→ 2S, s.t.Fβ([ϕ]) = ([β] ∩ Preimage([ϕ])

= ([β] ∩ {s | ∃s′ ∈ [ϕ] s.t . 〈s, s′〉 ∈ R})Fβ Monotonic: a ⊆ a′ =⇒ Fβ(a) ⊆ Fβ(a′)

(Tarski’s theorem): νx .Fβ(x) always exists(Kleene’s theorem): νx .Fβ(x) can be computed as the limitS ⊇ Fβ(S) ⊇ Fβ(Fβ(S)) ⊇ . . ., in a finite number of steps.

Theorem (Clarke & Emerson)

[EGβ] = νZ .( [β] ∩ [EXZ ] )

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 21 / 72

Page 68: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Case EG

νZ .( [β] ∩ [EXZ ] ): greatest fixed point of the functionFβ : 2S 7−→ 2S, s.t.Fβ([ϕ]) = ([β] ∩ Preimage([ϕ])

= ([β] ∩ {s | ∃s′ ∈ [ϕ] s.t . 〈s, s′〉 ∈ R})Fβ Monotonic: a ⊆ a′ =⇒ Fβ(a) ⊆ Fβ(a′)

(Tarski’s theorem): νx .Fβ(x) always exists(Kleene’s theorem): νx .Fβ(x) can be computed as the limitS ⊇ Fβ(S) ⊇ Fβ(Fβ(S)) ⊇ . . ., in a finite number of steps.

Theorem (Clarke & Emerson)

[EGβ] = νZ .( [β] ∩ [EXZ ] )

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 21 / 72

Page 69: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Case EG

νZ .( [β] ∩ [EXZ ] ): greatest fixed point of the functionFβ : 2S 7−→ 2S, s.t.Fβ([ϕ]) = ([β] ∩ Preimage([ϕ])

= ([β] ∩ {s | ∃s′ ∈ [ϕ] s.t . 〈s, s′〉 ∈ R})Fβ Monotonic: a ⊆ a′ =⇒ Fβ(a) ⊆ Fβ(a′)

(Tarski’s theorem): νx .Fβ(x) always exists(Kleene’s theorem): νx .Fβ(x) can be computed as the limitS ⊇ Fβ(S) ⊇ Fβ(Fβ(S)) ⊇ . . ., in a finite number of steps.

Theorem (Clarke & Emerson)

[EGβ] = νZ .( [β] ∩ [EXZ ] )

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 21 / 72

Page 70: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Case EG

νZ .( [β] ∩ [EXZ ] ): greatest fixed point of the functionFβ : 2S 7−→ 2S, s.t.Fβ([ϕ]) = ([β] ∩ Preimage([ϕ])

= ([β] ∩ {s | ∃s′ ∈ [ϕ] s.t . 〈s, s′〉 ∈ R})Fβ Monotonic: a ⊆ a′ =⇒ Fβ(a) ⊆ Fβ(a′)

(Tarski’s theorem): νx .Fβ(x) always exists(Kleene’s theorem): νx .Fβ(x) can be computed as the limitS ⊇ Fβ(S) ⊇ Fβ(Fβ(S)) ⊇ . . ., in a finite number of steps.

Theorem (Clarke & Emerson)

[EGβ] = νZ .( [β] ∩ [EXZ ] )

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 21 / 72

Page 71: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Case EG [cont.]

We can compute X := [EGβ] inductively asfollows:X0 := SX1 := Fβ(S) = [β]X2 := Fβ(Fβ(S)) = [β] ∩ Preimage(X1). . .

Xj+1 := F j+1β (S) = [β] ∩ Preimage(Xj)

Noticing that X1 = [β] and Xj+1 ⊆ Xj for everyj ≥ 0, and that([β] ∩ Y ) ⊆ Xj ⊆ [β] =⇒ ([β] ∩ Y ) = (Xj ∩ Y ),we can use instead the following inductiveschema:

X1 := [β]Xj+1 := Xj ∩ Preimage(Xj)

Xj

Y

[β]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 22 / 72

Page 72: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Case EG [cont.]

We can compute X := [EGβ] inductively asfollows:X0 := SX1 := Fβ(S) = [β]X2 := Fβ(Fβ(S)) = [β] ∩ Preimage(X1). . .

Xj+1 := F j+1β (S) = [β] ∩ Preimage(Xj)

Noticing that X1 = [β] and Xj+1 ⊆ Xj for everyj ≥ 0, and that([β] ∩ Y ) ⊆ Xj ⊆ [β] =⇒ ([β] ∩ Y ) = (Xj ∩ Y ),we can use instead the following inductiveschema:

X1 := [β]Xj+1 := Xj ∩ Preimage(Xj)

Xj

Y

[β]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 22 / 72

Page 73: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Case EU

µZ .( [β2] ∪ ([β1] ∩ [EXZ ]) ): least fixed point of the functionFβ1,β2 : 2S 7−→ 2S, s.t.Fβ1,β2([ϕ]) = [β2] ∪ ([β1] ∩ Preimage([ϕ]))

= [β2] ∪ ([β1] ∩ {s | ∃s′ ∈ [ϕ] s.t . 〈s, s′〉 ∈ R})Fβ1,β2 Monotonic: a ⊆ a′ =⇒ Fβ1,β2(a) ⊆ Fβ1,β2(a

′)

(Tarski’s theorem): µx .Fβ1,β2(x) always exists(Kleene’s theorem): µx .Fβ1,β2(x) can be computed as the limit∅ ⊆ Fβ1,β2(∅) ⊆ Fβ1,β2(Fβ1,β2(∅)) ⊆ . . ., in a finite number of steps.

Theorem (Clarke & Emerson)

[E(β1Uβ2)] = µZ .( [β2] ∪ ([β1] ∩ [EXZ ]) )

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 23 / 72

Page 74: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Case EU

µZ .( [β2] ∪ ([β1] ∩ [EXZ ]) ): least fixed point of the functionFβ1,β2 : 2S 7−→ 2S, s.t.Fβ1,β2([ϕ]) = [β2] ∪ ([β1] ∩ Preimage([ϕ]))

= [β2] ∪ ([β1] ∩ {s | ∃s′ ∈ [ϕ] s.t . 〈s, s′〉 ∈ R})Fβ1,β2 Monotonic: a ⊆ a′ =⇒ Fβ1,β2(a) ⊆ Fβ1,β2(a

′)

(Tarski’s theorem): µx .Fβ1,β2(x) always exists(Kleene’s theorem): µx .Fβ1,β2(x) can be computed as the limit∅ ⊆ Fβ1,β2(∅) ⊆ Fβ1,β2(Fβ1,β2(∅)) ⊆ . . ., in a finite number of steps.

Theorem (Clarke & Emerson)

[E(β1Uβ2)] = µZ .( [β2] ∪ ([β1] ∩ [EXZ ]) )

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 23 / 72

Page 75: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Case EU

µZ .( [β2] ∪ ([β1] ∩ [EXZ ]) ): least fixed point of the functionFβ1,β2 : 2S 7−→ 2S, s.t.Fβ1,β2([ϕ]) = [β2] ∪ ([β1] ∩ Preimage([ϕ]))

= [β2] ∪ ([β1] ∩ {s | ∃s′ ∈ [ϕ] s.t . 〈s, s′〉 ∈ R})Fβ1,β2 Monotonic: a ⊆ a′ =⇒ Fβ1,β2(a) ⊆ Fβ1,β2(a

′)

(Tarski’s theorem): µx .Fβ1,β2(x) always exists(Kleene’s theorem): µx .Fβ1,β2(x) can be computed as the limit∅ ⊆ Fβ1,β2(∅) ⊆ Fβ1,β2(Fβ1,β2(∅)) ⊆ . . ., in a finite number of steps.

Theorem (Clarke & Emerson)

[E(β1Uβ2)] = µZ .( [β2] ∪ ([β1] ∩ [EXZ ]) )

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 23 / 72

Page 76: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Case EU

µZ .( [β2] ∪ ([β1] ∩ [EXZ ]) ): least fixed point of the functionFβ1,β2 : 2S 7−→ 2S, s.t.Fβ1,β2([ϕ]) = [β2] ∪ ([β1] ∩ Preimage([ϕ]))

= [β2] ∪ ([β1] ∩ {s | ∃s′ ∈ [ϕ] s.t . 〈s, s′〉 ∈ R})Fβ1,β2 Monotonic: a ⊆ a′ =⇒ Fβ1,β2(a) ⊆ Fβ1,β2(a

′)

(Tarski’s theorem): µx .Fβ1,β2(x) always exists(Kleene’s theorem): µx .Fβ1,β2(x) can be computed as the limit∅ ⊆ Fβ1,β2(∅) ⊆ Fβ1,β2(Fβ1,β2(∅)) ⊆ . . ., in a finite number of steps.

Theorem (Clarke & Emerson)

[E(β1Uβ2)] = µZ .( [β2] ∪ ([β1] ∩ [EXZ ]) )

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 23 / 72

Page 77: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Case EU

µZ .( [β2] ∪ ([β1] ∩ [EXZ ]) ): least fixed point of the functionFβ1,β2 : 2S 7−→ 2S, s.t.Fβ1,β2([ϕ]) = [β2] ∪ ([β1] ∩ Preimage([ϕ]))

= [β2] ∪ ([β1] ∩ {s | ∃s′ ∈ [ϕ] s.t . 〈s, s′〉 ∈ R})Fβ1,β2 Monotonic: a ⊆ a′ =⇒ Fβ1,β2(a) ⊆ Fβ1,β2(a

′)

(Tarski’s theorem): µx .Fβ1,β2(x) always exists(Kleene’s theorem): µx .Fβ1,β2(x) can be computed as the limit∅ ⊆ Fβ1,β2(∅) ⊆ Fβ1,β2(Fβ1,β2(∅)) ⊆ . . ., in a finite number of steps.

Theorem (Clarke & Emerson)

[E(β1Uβ2)] = µZ .( [β2] ∪ ([β1] ∩ [EXZ ]) )

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 23 / 72

Page 78: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Case EU [cont.]

We can compute X := [E(β1Uβ2)] inductively asfollows:X0 := ∅X1 := Fβ1,β2(∅) = [β2]X2 := Fβ1,β2(Fβ1,β2(∅)) = [β2] ∪ ([β1] ∩ Preimage(X1)). . .

Xj+1 := F j+1β1,β2

(∅)) = [β2] ∪ ([β1] ∩ Preimage(Xj))

Noticing that X1 = [β2] and Xj+1 ⊇ Xj for everyj ≥ 0, and that([β2] ∪ Y ) ⊇ Xj ⊇ [β2] =⇒ ([β2] ∪ Y ) = (Xj ∪ Y ),we can use instead the following inductive schema:

X1 := [β2]Xj+1 := Xj ∪ ([β1] ∩ Preimage(Xj))

Y

Xj[β2]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 24 / 72

Page 79: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

Case EU [cont.]

We can compute X := [E(β1Uβ2)] inductively asfollows:X0 := ∅X1 := Fβ1,β2(∅) = [β2]X2 := Fβ1,β2(Fβ1,β2(∅)) = [β2] ∪ ([β1] ∩ Preimage(X1)). . .

Xj+1 := F j+1β1,β2

(∅)) = [β2] ∪ ([β1] ∩ Preimage(Xj))

Noticing that X1 = [β2] and Xj+1 ⊇ Xj for everyj ≥ 0, and that([β2] ∪ Y ) ⊇ Xj ⊇ [β2] =⇒ ([β2] ∪ Y ) = (Xj ∪ Y ),we can use instead the following inductive schema:

X1 := [β2]Xj+1 := Xj ∪ ([β1] ∩ Preimage(Xj))

Y

Xj[β2]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 24 / 72

Page 80: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

A relevant subcase: EF

EFβ = E(>Uβ)[>] = S =⇒ [>] ∩ Preimage(Xj) = Preimage(Xj)

We can compute X := [EFβ] inductively as follows:X1 := [β]Xj+1 := Xj ∪ Preimage(Xj)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 25 / 72

Page 81: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

A relevant subcase: EF

EFβ = E(>Uβ)[>] = S =⇒ [>] ∩ Preimage(Xj) = Preimage(Xj)

We can compute X := [EFβ] inductively as follows:X1 := [β]Xj+1 := Xj ∪ Preimage(Xj)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 25 / 72

Page 82: Introduction to Formal Methods Chapter 04: CTL Model Checking

Some theoretical issues

A relevant subcase: EF

EFβ = E(>Uβ)[>] = S =⇒ [>] ∩ Preimage(Xj) = Preimage(Xj)

We can compute X := [EFβ] inductively as follows:X1 := [β]Xj+1 := Xj ∪ Preimage(Xj)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 25 / 72

Page 83: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: algorithms

Outline

1 CTL Model Checking: general ideas

2 CTL Model Checking: a simple example

3 Some theoretical issues

4 CTL Model Checking: algorithms

5 CTL Model Checking: some examples

6 A relevant subcase: invariants

7 Exercises

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 26 / 72

Page 84: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: algorithms

General Schema

Assume ϕ written in terms of ¬, ∧, EX, EU, EGA general M.C. algorithm (fix-point):

1. for every ϕi ∈ Sub(ϕ), find [ϕi ]2. Check if I ⊆ [ϕ]

Subformulas Sub(ϕ) of ϕ are checked bottom-upTo compute each [ϕi ]: if the main operator of ϕi is a

Propositional atoms: apply labeling functionBoolean operator: apply standard set operationstemporal operator: appy recursively the tableaux rules, until afixpoint is reached

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 27 / 72

Page 85: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: algorithms

General Schema

Assume ϕ written in terms of ¬, ∧, EX, EU, EGA general M.C. algorithm (fix-point):

1. for every ϕi ∈ Sub(ϕ), find [ϕi ]2. Check if I ⊆ [ϕ]

Subformulas Sub(ϕ) of ϕ are checked bottom-upTo compute each [ϕi ]: if the main operator of ϕi is a

Propositional atoms: apply labeling functionBoolean operator: apply standard set operationstemporal operator: appy recursively the tableaux rules, until afixpoint is reached

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 27 / 72

Page 86: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: algorithms

General Schema

Assume ϕ written in terms of ¬, ∧, EX, EU, EGA general M.C. algorithm (fix-point):

1. for every ϕi ∈ Sub(ϕ), find [ϕi ]2. Check if I ⊆ [ϕ]

Subformulas Sub(ϕ) of ϕ are checked bottom-upTo compute each [ϕi ]: if the main operator of ϕi is a

Propositional atoms: apply labeling functionBoolean operator: apply standard set operationstemporal operator: appy recursively the tableaux rules, until afixpoint is reached

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 27 / 72

Page 87: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: algorithms

General Schema

Assume ϕ written in terms of ¬, ∧, EX, EU, EGA general M.C. algorithm (fix-point):

1. for every ϕi ∈ Sub(ϕ), find [ϕi ]2. Check if I ⊆ [ϕ]

Subformulas Sub(ϕ) of ϕ are checked bottom-upTo compute each [ϕi ]: if the main operator of ϕi is a

Propositional atoms: apply labeling functionBoolean operator: apply standard set operationstemporal operator: appy recursively the tableaux rules, until afixpoint is reached

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 27 / 72

Page 88: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: algorithms

General Schema

Assume ϕ written in terms of ¬, ∧, EX, EU, EGA general M.C. algorithm (fix-point):

1. for every ϕi ∈ Sub(ϕ), find [ϕi ]2. Check if I ⊆ [ϕ]

Subformulas Sub(ϕ) of ϕ are checked bottom-upTo compute each [ϕi ]: if the main operator of ϕi is a

Propositional atoms: apply labeling functionBoolean operator: apply standard set operationstemporal operator: appy recursively the tableaux rules, until afixpoint is reached

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 27 / 72

Page 89: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: algorithms

General Schema

Assume ϕ written in terms of ¬, ∧, EX, EU, EGA general M.C. algorithm (fix-point):

1. for every ϕi ∈ Sub(ϕ), find [ϕi ]2. Check if I ⊆ [ϕ]

Subformulas Sub(ϕ) of ϕ are checked bottom-upTo compute each [ϕi ]: if the main operator of ϕi is a

Propositional atoms: apply labeling functionBoolean operator: apply standard set operationstemporal operator: appy recursively the tableaux rules, until afixpoint is reached

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 27 / 72

Page 90: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: algorithms

General Schema

Assume ϕ written in terms of ¬, ∧, EX, EU, EGA general M.C. algorithm (fix-point):

1. for every ϕi ∈ Sub(ϕ), find [ϕi ]2. Check if I ⊆ [ϕ]

Subformulas Sub(ϕ) of ϕ are checked bottom-upTo compute each [ϕi ]: if the main operator of ϕi is a

Propositional atoms: apply labeling functionBoolean operator: apply standard set operationstemporal operator: appy recursively the tableaux rules, until afixpoint is reached

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 27 / 72

Page 91: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: algorithms

General Schema

Assume ϕ written in terms of ¬, ∧, EX, EU, EGA general M.C. algorithm (fix-point):

1. for every ϕi ∈ Sub(ϕ), find [ϕi ]2. Check if I ⊆ [ϕ]

Subformulas Sub(ϕ) of ϕ are checked bottom-upTo compute each [ϕi ]: if the main operator of ϕi is a

Propositional atoms: apply labeling functionBoolean operator: apply standard set operationstemporal operator: appy recursively the tableaux rules, until afixpoint is reached

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 27 / 72

Page 92: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: algorithms

General Schema

Assume ϕ written in terms of ¬, ∧, EX, EU, EGA general M.C. algorithm (fix-point):

1. for every ϕi ∈ Sub(ϕ), find [ϕi ]2. Check if I ⊆ [ϕ]

Subformulas Sub(ϕ) of ϕ are checked bottom-upTo compute each [ϕi ]: if the main operator of ϕi is a

Propositional atoms: apply labeling functionBoolean operator: apply standard set operationstemporal operator: appy recursively the tableaux rules, until afixpoint is reached

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 27 / 72

Page 93: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: algorithms

General M.C. Procedure

state_set Check(CTL_formula β) {case β oftrue: return S;false: return {};p: return {s | p ∈ L(s)};¬β1: return S / Check(β1);β1 ∧ β2: return Check(β1) ∩ Check(β2);EXβ1: return PreImage(Check(β1));EGβ1: return Check_EG(Check(β1));E(β1Uβ2): return Check_EU(Check(β1),Check(β2));

}

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 28 / 72

Page 94: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: algorithms

PreImage

state_set PreImage(state_set [β]) {X := {};for each s ∈ S do

for each s′ s.t . s′ ∈ [β] and 〈s, s′〉 ∈ R doX := X ∪ {s};

return X ;}

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 29 / 72

Page 95: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: algorithms

Check_EG

state_set Check_EG(state_set [β]) {X ′ := [β]; j := 1;repeat

X := X ′; j := j + 1;X ′ := X ∩ PreImage(X );

until (X ′ = X );return X ;}

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 30 / 72

Page 96: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: algorithms

Check_EU

state_set Check_EU(state_set [β1],[β2]) {X ′ := [β2]; j := 1;repeat

X := X ′; j := j + 1;X ′ := X ∪ ([β1] ∩ PreImage(X ));

until (X ′ = X );return X ;}

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 31 / 72

Page 97: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: algorithms

A relevant subcase: Check_EF

state_set Check_EF(state_set [β]) {X ′ := [β]; j := 1;repeat

X := X ′; j := j + 1;X ′ := X ∪ PreImage(X );

until (X ′ = X );return X ;}

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 32 / 72

Page 98: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Outline

1 CTL Model Checking: general ideas

2 CTL Model Checking: a simple example

3 Some theoretical issues

4 CTL Model Checking: algorithms

5 CTL Model Checking: some examples

6 A relevant subcase: invariants

7 Exercises

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 33 / 72

Page 99: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 1: fairness

N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AGAFC1 ? =⇒ M |= ¬EFEG¬C1 ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 34 / 72

Page 100: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 1: fairness

[¬C1]

N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AGAFC1 ? =⇒ M |= ¬EFEG¬C1 ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 35 / 72

Page 101: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 1: fairness

[EG¬C1], step 0:N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AGAFC1 ? =⇒ M |= ¬EFEG¬C1 ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 36 / 72

Page 102: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 1: fairness

[EG¬C1], step 1:N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AGAFC1 ? =⇒ M |= ¬EFEG¬C1 ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 37 / 72

Page 103: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 1: fairness

[EG¬C1], step 2:N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AGAFC1 ? =⇒ M |= ¬EFEG¬C1 ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 38 / 72

Page 104: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 1: fairness

[EG¬C1], step 3:N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AGAFC1 ? =⇒ M |= ¬EFEG¬C1 ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 39 / 72

Page 105: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 1: fairness

[EG¬C1], step 4:N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AGAFC1 ? =⇒ M |= ¬EFEG¬C1 ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 40 / 72

Page 106: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 1: fairness

[EG¬C1], FIXPOINT!N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AGAFC1 ? =⇒ M |= ¬EFEG¬C1 ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 41 / 72

Page 107: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 1: fairness

[EFEG¬C1], STEP 0N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AGAFC1 ? =⇒ M |= ¬EFEG¬C1 ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 42 / 72

Page 108: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 1: fairness

[EFEG¬C1], STEP 1N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AGAFC1 ? =⇒ M |= ¬EFEG¬C1 ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 43 / 72

Page 109: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 1: fairness

[EFEG¬C1], STEP 2N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AGAFC1 ? =⇒ M |= ¬EFEG¬C1 ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 44 / 72

Page 110: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 1: fairness

[EFEG¬C1], STEP 3N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AGAFC1 ? =⇒ M |= ¬EFEG¬C1 ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 45 / 72

Page 111: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 1: fairness

[EFEG¬C1], STEP 4N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AGAFC1 ? =⇒ M |= ¬EFEG¬C1 ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 46 / 72

Page 112: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 1: fairness

[EFEG¬C1], FIXPOINT!N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AGAFC1 ? =⇒ M |= ¬EFEG¬C1 ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 47 / 72

Page 113: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 1: fairness

[¬EFEG¬C1]

N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AGAFC1 ? =⇒ M |= ¬EFEG¬C1 ? =⇒ NO!

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 48 / 72

Page 114: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 2: liveness

N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AG(T1 → AFC1) ? =⇒ M |= ¬EF(T1 ∧ EG¬C1) ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 49 / 72

Page 115: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 2: liveness

[T1]:N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AG(T1 → AFC1) ? =⇒ M |= ¬EF(T1 ∧ EG¬C1) ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 50 / 72

Page 116: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 2: liveness

[EG¬C1], STEPS 0-4: (see previous example)N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AG(T1 → AFC1) ? =⇒ M |= ¬EF(T1 ∧ EG¬C1) ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 51 / 72

Page 117: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 2: liveness

[T1 ∧ EG¬C1] :N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AG(T1 → AFC1) ? =⇒ M |= ¬EF(T1 ∧ EG¬C1) ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 52 / 72

Page 118: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 2: liveness

[EF(T1 ∧ EG¬C1)] :N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AG(T1 → AFC1) ? =⇒ M |= ¬EF(T1 ∧ EG¬C1) ?

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 53 / 72

Page 119: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Example 2: liveness

[¬EF(T1 ∧ EG¬C1)] :N1, N2

turn=0

turn=1

turn=2

turn=2

turn=2turn=1 turn=1

turn=1

turn=2

T1, C2

N1, C2T1, T2T1, T2

N1, T2

C1, T2

C1, N2

T1, N2

N = noncritical, T = trying, C = critical User 1 User 2

M |= AG(T1 → AFC1) ? =⇒ M |= ¬EF(T1 ∧ EG¬C1) ? YES!

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 54 / 72

Page 120: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

The property verified is...Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 55 / 72

Page 121: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Homework

Apply the same process to all the CTL examples of Chapter 3.

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 56 / 72

Page 122: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Complexity of CTL Model Checking: M |= ϕ

Step 1: compute [ϕ]

Compute [ϕ] bottom-up on the O(|ϕ|) sub-formulas of ϕ:O(|ϕ|) steps...... each requiring at most exploring O(|M|) states

=⇒ O(|M| · |ϕ|) stepsStep 2: check I ⊆ [ϕ]: O(|M|)

=⇒ O(|M| · |ϕ|)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 57 / 72

Page 123: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Complexity of CTL Model Checking: M |= ϕ

Step 1: compute [ϕ]

Compute [ϕ] bottom-up on the O(|ϕ|) sub-formulas of ϕ:O(|ϕ|) steps...... each requiring at most exploring O(|M|) states

=⇒ O(|M| · |ϕ|) stepsStep 2: check I ⊆ [ϕ]: O(|M|)

=⇒ O(|M| · |ϕ|)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 57 / 72

Page 124: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Complexity of CTL Model Checking: M |= ϕ

Step 1: compute [ϕ]

Compute [ϕ] bottom-up on the O(|ϕ|) sub-formulas of ϕ:O(|ϕ|) steps...... each requiring at most exploring O(|M|) states

=⇒ O(|M| · |ϕ|) stepsStep 2: check I ⊆ [ϕ]: O(|M|)

=⇒ O(|M| · |ϕ|)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 57 / 72

Page 125: Introduction to Formal Methods Chapter 04: CTL Model Checking

CTL Model Checking: some examples

Complexity of CTL Model Checking: M |= ϕ

Step 1: compute [ϕ]

Compute [ϕ] bottom-up on the O(|ϕ|) sub-formulas of ϕ:O(|ϕ|) steps...... each requiring at most exploring O(|M|) states

=⇒ O(|M| · |ϕ|) stepsStep 2: check I ⊆ [ϕ]: O(|M|)

=⇒ O(|M| · |ϕ|)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 57 / 72

Page 126: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Outline

1 CTL Model Checking: general ideas

2 CTL Model Checking: a simple example

3 Some theoretical issues

4 CTL Model Checking: algorithms

5 CTL Model Checking: some examples

6 A relevant subcase: invariants

7 Exercises

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 58 / 72

Page 127: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Model Checking of Invariants

Invariant properties have the form AG p (e.g., AG¬bad)Checking invariants is the negation of a reachability problem:

is there a reachable state that is also a bad state?(AG¬bad = ¬EFbad)

Standard M.C. algorithm reasons backward from the bad byiteratively applying PreImage computations:

Y ′ := Y ∪ PreImage(Y )

until a fixed point is reached. Then the complement is computedand I is checked for inclusion in the resulting set.Better algorithm: reasons backward from the bad by iterativelyapplying PreImage computations:

Y ′ := Y ∪ PreImage(Y )

until (i) it intersect [I] or (ii) a fixed point is reached

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 59 / 72

Page 128: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Model Checking of Invariants

Invariant properties have the form AG p (e.g., AG¬bad)Checking invariants is the negation of a reachability problem:

is there a reachable state that is also a bad state?(AG¬bad = ¬EFbad)

Standard M.C. algorithm reasons backward from the bad byiteratively applying PreImage computations:

Y ′ := Y ∪ PreImage(Y )

until a fixed point is reached. Then the complement is computedand I is checked for inclusion in the resulting set.Better algorithm: reasons backward from the bad by iterativelyapplying PreImage computations:

Y ′ := Y ∪ PreImage(Y )

until (i) it intersect [I] or (ii) a fixed point is reached

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 59 / 72

Page 129: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Model Checking of Invariants

Invariant properties have the form AG p (e.g., AG¬bad)Checking invariants is the negation of a reachability problem:

is there a reachable state that is also a bad state?(AG¬bad = ¬EFbad)

Standard M.C. algorithm reasons backward from the bad byiteratively applying PreImage computations:

Y ′ := Y ∪ PreImage(Y )

until a fixed point is reached. Then the complement is computedand I is checked for inclusion in the resulting set.Better algorithm: reasons backward from the bad by iterativelyapplying PreImage computations:

Y ′ := Y ∪ PreImage(Y )

until (i) it intersect [I] or (ii) a fixed point is reached

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 59 / 72

Page 130: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Model Checking of Invariants

Invariant properties have the form AG p (e.g., AG¬bad)Checking invariants is the negation of a reachability problem:

is there a reachable state that is also a bad state?(AG¬bad = ¬EFbad)

Standard M.C. algorithm reasons backward from the bad byiteratively applying PreImage computations:

Y ′ := Y ∪ PreImage(Y )

until a fixed point is reached. Then the complement is computedand I is checked for inclusion in the resulting set.Better algorithm: reasons backward from the bad by iterativelyapplying PreImage computations:

Y ′ := Y ∪ PreImage(Y )

until (i) it intersect [I] or (ii) a fixed point is reached

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 59 / 72

Page 131: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Model Checking of Invariants [cont.]

I

ϕ

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 60 / 72

Page 132: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Symbolic Forward Model Checking of Invariants

Alternative algorithm (often more efficient): forward checkingCompute the set of bad states [bad ]Compute the set of initial states ICompute incrementally the set of reachable states from I until (i) itintersect [bad ] or (ii) a fixed point is reachedBasic step is the (Forward) Image:

Image(Y )def= {s′ | s ∈ Y and R(s, s′) holds}

Simplest form: compute the set of reachable states.

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 61 / 72

Page 133: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Symbolic Forward Model Checking of Invariants

Alternative algorithm (often more efficient): forward checkingCompute the set of bad states [bad ]Compute the set of initial states ICompute incrementally the set of reachable states from I until (i) itintersect [bad ] or (ii) a fixed point is reachedBasic step is the (Forward) Image:

Image(Y )def= {s′ | s ∈ Y and R(s, s′) holds}

Simplest form: compute the set of reachable states.

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 61 / 72

Page 134: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Symbolic Forward Model Checking of Invariants

Alternative algorithm (often more efficient): forward checkingCompute the set of bad states [bad ]Compute the set of initial states ICompute incrementally the set of reachable states from I until (i) itintersect [bad ] or (ii) a fixed point is reachedBasic step is the (Forward) Image:

Image(Y )def= {s′ | s ∈ Y and R(s, s′) holds}

Simplest form: compute the set of reachable states.

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 61 / 72

Page 135: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Symbolic Forward Model Checking of Invariants

Alternative algorithm (often more efficient): forward checkingCompute the set of bad states [bad ]Compute the set of initial states ICompute incrementally the set of reachable states from I until (i) itintersect [bad ] or (ii) a fixed point is reachedBasic step is the (Forward) Image:

Image(Y )def= {s′ | s ∈ Y and R(s, s′) holds}

Simplest form: compute the set of reachable states.

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 61 / 72

Page 136: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Symbolic Forward Model Checking of Invariants

Alternative algorithm (often more efficient): forward checkingCompute the set of bad states [bad ]Compute the set of initial states ICompute incrementally the set of reachable states from I until (i) itintersect [bad ] or (ii) a fixed point is reachedBasic step is the (Forward) Image:

Image(Y )def= {s′ | s ∈ Y and R(s, s′) holds}

Simplest form: compute the set of reachable states.

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 61 / 72

Page 137: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Symbolic Forward Model Checking of Invariants

Alternative algorithm (often more efficient): forward checkingCompute the set of bad states [bad ]Compute the set of initial states ICompute incrementally the set of reachable states from I until (i) itintersect [bad ] or (ii) a fixed point is reachedBasic step is the (Forward) Image:

Image(Y )def= {s′ | s ∈ Y and R(s, s′) holds}

Simplest form: compute the set of reachable states.

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 61 / 72

Page 138: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Computing Reachable states: basic

State_Set Compute_reachable() {Y ′ := I;Y := ∅; j := 1;while (Y ′ 6= Y )

j := j + 1;Y := Y ′;Y ′ := Y ∪ Image(Y );

}return Y;}

Y=reachable

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 62 / 72

Page 139: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Computing Reachable states: advanced

State_Set Compute_reachable() {Y := F := I; j := 1;while (F 6= ∅)

j := j + 1;F := Image(F ) \ Y ;Y := Y ∪ F ;

}return Y;}

Y=reachable;F=frontier (new)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 63 / 72

Page 140: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Computing Reachable states [cont.]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 64 / 72

Page 141: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Checking of Invariant Properties: basic

bool Forward_Check_EF(State_Set BAD) {Y := I; Y ′ := ∅; j := 1;while (Y ′ 6= Y ) and (Y ′ ∩ BAD) = ∅

j := j + 1;Y := Y ′;Y ′ := Y ∪ Image(Y );

}if (Y ′ ∩ BAD) 6= ∅ // counter-example

return trueelse // fixpoint reached

return false}

Y=reachable;

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 65 / 72

Page 142: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Checking of Invariant Properties: advanced

bool Forward_Check_EF(State_Set BAD) {Y := F := I; j := 1;while (F 6= ∅) and (F ∩ BAD) = ∅

j := j + 1;F := Image(F ) \ Y ;Y := Y ∪ F ;

}if (F ∩ BAD) 6= ∅ // counter-example

return trueelse // fixpoint reached

return false}

Y=reachable;F=frontier (new)

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 66 / 72

Page 143: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Checking of Invariant Properties [cont.]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 67 / 72

Page 144: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Checking of Invariants: Counterexamples

if layer n intersects with the bad states, then the property isviolateda counterexample can be reconstructed proceeding backwards(i) select any state of BAD ∩ F [n] (we know it is satisfiable), call it

t [n](ii) compute Preimage(t [n]), i.e. the states that can result in t [n] in

one step(iii) compute Preimage(t [n]) ∩ F [n − 1], and select one state

t [n − 1]iterate (i)-(iii) until the initial states are reachedt [0], t [1], . . . , t [n] is our counterexample

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 68 / 72

Page 145: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Checking of Invariants: Counterexamples

if layer n intersects with the bad states, then the property isviolateda counterexample can be reconstructed proceeding backwards(i) select any state of BAD ∩ F [n] (we know it is satisfiable), call it

t [n](ii) compute Preimage(t [n]), i.e. the states that can result in t [n] in

one step(iii) compute Preimage(t [n]) ∩ F [n − 1], and select one state

t [n − 1]iterate (i)-(iii) until the initial states are reachedt [0], t [1], . . . , t [n] is our counterexample

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 68 / 72

Page 146: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Checking of Invariants: Counterexamples

if layer n intersects with the bad states, then the property isviolateda counterexample can be reconstructed proceeding backwards(i) select any state of BAD ∩ F [n] (we know it is satisfiable), call it

t [n](ii) compute Preimage(t [n]), i.e. the states that can result in t [n] in

one step(iii) compute Preimage(t [n]) ∩ F [n − 1], and select one state

t [n − 1]iterate (i)-(iii) until the initial states are reachedt [0], t [1], . . . , t [n] is our counterexample

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 68 / 72

Page 147: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Checking of Invariants: Counterexamples

if layer n intersects with the bad states, then the property isviolateda counterexample can be reconstructed proceeding backwards(i) select any state of BAD ∩ F [n] (we know it is satisfiable), call it

t [n](ii) compute Preimage(t [n]), i.e. the states that can result in t [n] in

one step(iii) compute Preimage(t [n]) ∩ F [n − 1], and select one state

t [n − 1]iterate (i)-(iii) until the initial states are reachedt [0], t [1], . . . , t [n] is our counterexample

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 68 / 72

Page 148: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Checking of Invariants: Counterexamples

if layer n intersects with the bad states, then the property isviolateda counterexample can be reconstructed proceeding backwards(i) select any state of BAD ∩ F [n] (we know it is satisfiable), call it

t [n](ii) compute Preimage(t [n]), i.e. the states that can result in t [n] in

one step(iii) compute Preimage(t [n]) ∩ F [n − 1], and select one state

t [n − 1]iterate (i)-(iii) until the initial states are reachedt [0], t [1], . . . , t [n] is our counterexample

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 68 / 72

Page 149: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Checking of Invariants: Counterexamples

if layer n intersects with the bad states, then the property isviolateda counterexample can be reconstructed proceeding backwards(i) select any state of BAD ∩ F [n] (we know it is satisfiable), call it

t [n](ii) compute Preimage(t [n]), i.e. the states that can result in t [n] in

one step(iii) compute Preimage(t [n]) ∩ F [n − 1], and select one state

t [n − 1]iterate (i)-(iii) until the initial states are reachedt [0], t [1], . . . , t [n] is our counterexample

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 68 / 72

Page 150: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Checking of Invariants: Counterexamples

if layer n intersects with the bad states, then the property isviolateda counterexample can be reconstructed proceeding backwards(i) select any state of BAD ∩ F [n] (we know it is satisfiable), call it

t [n](ii) compute Preimage(t [n]), i.e. the states that can result in t [n] in

one step(iii) compute Preimage(t [n]) ∩ F [n − 1], and select one state

t [n − 1]iterate (i)-(iii) until the initial states are reachedt [0], t [1], . . . , t [n] is our counterexample

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 68 / 72

Page 151: Introduction to Formal Methods Chapter 04: CTL Model Checking

A relevant subcase: invariants

Checking of Invariants: Counterexamples [cont.]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 69 / 72

Page 152: Introduction to Formal Methods Chapter 04: CTL Model Checking

Exercises

Outline

1 CTL Model Checking: general ideas

2 CTL Model Checking: a simple example

3 Some theoretical issues

4 CTL Model Checking: algorithms

5 CTL Model Checking: some examples

6 A relevant subcase: invariants

7 Exercises

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 70 / 72

Page 153: Introduction to Formal Methods Chapter 04: CTL Model Checking

Exercises

Ex: CTL Model CheckingConsider the Kripke Model M below, and the CTL property ϕ

def= AG((p ∧ q)→ EGq).

¬pqs0

p¬qs2

pqs1

(a) Rewrite ϕ into an equivalent formula ϕ′ expressed in terms of EX,EG,EU/EF only.

[ Solution: ϕ′ = ¬EF¬((¬p ∨ ¬q) ∨ EGq) = ¬EF((p ∧ q) ∧ ¬EGq) ]

(b) Compute bottom-up the denotations of all subformulas of ϕ′. (Ex: [p] = {s1, s2})

[ Solution:[p] = {s1, s2}[q] = {s0, s1}[(p ∧ q)] = {s1}[EGq] = {s0, s1}

[¬EGq] = {s2}[((p ∧ q) ∧ ¬EGq)] = {}[EF((p ∧ q) ∧ ¬EGq)] = {}[¬EF((p ∧ q) ∧ ¬EGq)] = {s0, s1, s2}

]

(c) As a consequence of point (b), say whether M |= ϕ or not.

[ Solution: Yes, {s1, s2} ⊆ [ϕ′]. ]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 71 / 72

Page 154: Introduction to Formal Methods Chapter 04: CTL Model Checking

Exercises

Ex: CTL Model CheckingConsider the Kripke Model M below, and the CTL property ϕ

def= AG((p ∧ q)→ EGq).

¬pqs0

p¬qs2

pqs1

(a) Rewrite ϕ into an equivalent formula ϕ′ expressed in terms of EX,EG,EU/EF only.[ Solution: ϕ′ = ¬EF¬((¬p ∨ ¬q) ∨ EGq) = ¬EF((p ∧ q) ∧ ¬EGq) ]

(b) Compute bottom-up the denotations of all subformulas of ϕ′. (Ex: [p] = {s1, s2})

[ Solution:[p] = {s1, s2}[q] = {s0, s1}[(p ∧ q)] = {s1}[EGq] = {s0, s1}

[¬EGq] = {s2}[((p ∧ q) ∧ ¬EGq)] = {}[EF((p ∧ q) ∧ ¬EGq)] = {}[¬EF((p ∧ q) ∧ ¬EGq)] = {s0, s1, s2}

]

(c) As a consequence of point (b), say whether M |= ϕ or not.

[ Solution: Yes, {s1, s2} ⊆ [ϕ′]. ]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 71 / 72

Page 155: Introduction to Formal Methods Chapter 04: CTL Model Checking

Exercises

Ex: CTL Model CheckingConsider the Kripke Model M below, and the CTL property ϕ

def= AG((p ∧ q)→ EGq).

¬pqs0

p¬qs2

pqs1

(a) Rewrite ϕ into an equivalent formula ϕ′ expressed in terms of EX,EG,EU/EF only.[ Solution: ϕ′ = ¬EF¬((¬p ∨ ¬q) ∨ EGq) = ¬EF((p ∧ q) ∧ ¬EGq) ]

(b) Compute bottom-up the denotations of all subformulas of ϕ′. (Ex: [p] = {s1, s2})[ Solution:

[p] = {s1, s2}[q] = {s0, s1}[(p ∧ q)] = {s1}[EGq] = {s0, s1}

[¬EGq] = {s2}[((p ∧ q) ∧ ¬EGq)] = {}[EF((p ∧ q) ∧ ¬EGq)] = {}[¬EF((p ∧ q) ∧ ¬EGq)] = {s0, s1, s2}

]

(c) As a consequence of point (b), say whether M |= ϕ or not.

[ Solution: Yes, {s1, s2} ⊆ [ϕ′]. ]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 71 / 72

Page 156: Introduction to Formal Methods Chapter 04: CTL Model Checking

Exercises

Ex: CTL Model CheckingConsider the Kripke Model M below, and the CTL property ϕ

def= AG((p ∧ q)→ EGq).

¬pqs0

p¬qs2

pqs1

(a) Rewrite ϕ into an equivalent formula ϕ′ expressed in terms of EX,EG,EU/EF only.[ Solution: ϕ′ = ¬EF¬((¬p ∨ ¬q) ∨ EGq) = ¬EF((p ∧ q) ∧ ¬EGq) ]

(b) Compute bottom-up the denotations of all subformulas of ϕ′. (Ex: [p] = {s1, s2})[ Solution:

[p] = {s1, s2}[q] = {s0, s1}[(p ∧ q)] = {s1}[EGq] = {s0, s1}

[¬EGq] = {s2}[((p ∧ q) ∧ ¬EGq)] = {}[EF((p ∧ q) ∧ ¬EGq)] = {}[¬EF((p ∧ q) ∧ ¬EGq)] = {s0, s1, s2}

]

(c) As a consequence of point (b), say whether M |= ϕ or not.[ Solution: Yes, {s1, s2} ⊆ [ϕ′]. ]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 71 / 72

Page 157: Introduction to Formal Methods Chapter 04: CTL Model Checking

Exercises

Ex: CTL Model CheckingConsider the Kripke Model M below, and the CTL property AG(AFp → AFq).

pqs0

¬p¬qs1

¬pqs2

(a) Rewrite ϕ into an equivalent formula ϕ′ expressed in terms of EX,EG,EU/EF only.

[ Solution:ϕ′ = AG(AFp → AFq) = ¬EF¬(¬EG¬p → ¬EG¬q) = ¬EF(¬EG¬p ∧ EG¬q) ]

(b) Compute bottom-up the denotations of all subformulas of ϕ′. (Ex: [p] = {s1, s2})

[ Solution:[p] = {s0}[¬p] = {s1, s2}[EG¬p] = {s1, s2}[¬EG¬p] = {s0}[q] = {s0, s2}

[¬q] = {s1}[EG¬q] = {s1}[¬EG¬p ∧ EG¬q] = {}[EF(¬EG¬p ∧ EG¬q)] = {}[¬EF(¬EG¬p ∧ EG¬q)] = {s0, s1, s2}

]

(c) As a consequence of point (b), say whether M |= ϕ or not.

[ Solution: Yes, {s0, s1, s2} ⊆ [ϕ′]. ]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 72 / 72

Page 158: Introduction to Formal Methods Chapter 04: CTL Model Checking

Exercises

Ex: CTL Model CheckingConsider the Kripke Model M below, and the CTL property AG(AFp → AFq).

pqs0

¬p¬qs1

¬pqs2

(a) Rewrite ϕ into an equivalent formula ϕ′ expressed in terms of EX,EG,EU/EF only.[ Solution:ϕ′ = AG(AFp → AFq) = ¬EF¬(¬EG¬p → ¬EG¬q) = ¬EF(¬EG¬p ∧ EG¬q) ]

(b) Compute bottom-up the denotations of all subformulas of ϕ′. (Ex: [p] = {s1, s2})

[ Solution:[p] = {s0}[¬p] = {s1, s2}[EG¬p] = {s1, s2}[¬EG¬p] = {s0}[q] = {s0, s2}

[¬q] = {s1}[EG¬q] = {s1}[¬EG¬p ∧ EG¬q] = {}[EF(¬EG¬p ∧ EG¬q)] = {}[¬EF(¬EG¬p ∧ EG¬q)] = {s0, s1, s2}

]

(c) As a consequence of point (b), say whether M |= ϕ or not.

[ Solution: Yes, {s0, s1, s2} ⊆ [ϕ′]. ]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 72 / 72

Page 159: Introduction to Formal Methods Chapter 04: CTL Model Checking

Exercises

Ex: CTL Model CheckingConsider the Kripke Model M below, and the CTL property AG(AFp → AFq).

pqs0

¬p¬qs1

¬pqs2

(a) Rewrite ϕ into an equivalent formula ϕ′ expressed in terms of EX,EG,EU/EF only.[ Solution:ϕ′ = AG(AFp → AFq) = ¬EF¬(¬EG¬p → ¬EG¬q) = ¬EF(¬EG¬p ∧ EG¬q) ]

(b) Compute bottom-up the denotations of all subformulas of ϕ′. (Ex: [p] = {s1, s2})[ Solution:

[p] = {s0}[¬p] = {s1, s2}[EG¬p] = {s1, s2}[¬EG¬p] = {s0}[q] = {s0, s2}

[¬q] = {s1}[EG¬q] = {s1}[¬EG¬p ∧ EG¬q] = {}[EF(¬EG¬p ∧ EG¬q)] = {}[¬EF(¬EG¬p ∧ EG¬q)] = {s0, s1, s2}

]

(c) As a consequence of point (b), say whether M |= ϕ or not.

[ Solution: Yes, {s0, s1, s2} ⊆ [ϕ′]. ]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 72 / 72

Page 160: Introduction to Formal Methods Chapter 04: CTL Model Checking

Exercises

Ex: CTL Model CheckingConsider the Kripke Model M below, and the CTL property AG(AFp → AFq).

pqs0

¬p¬qs1

¬pqs2

(a) Rewrite ϕ into an equivalent formula ϕ′ expressed in terms of EX,EG,EU/EF only.[ Solution:ϕ′ = AG(AFp → AFq) = ¬EF¬(¬EG¬p → ¬EG¬q) = ¬EF(¬EG¬p ∧ EG¬q) ]

(b) Compute bottom-up the denotations of all subformulas of ϕ′. (Ex: [p] = {s1, s2})[ Solution:

[p] = {s0}[¬p] = {s1, s2}[EG¬p] = {s1, s2}[¬EG¬p] = {s0}[q] = {s0, s2}

[¬q] = {s1}[EG¬q] = {s1}[¬EG¬p ∧ EG¬q] = {}[EF(¬EG¬p ∧ EG¬q)] = {}[¬EF(¬EG¬p ∧ EG¬q)] = {s0, s1, s2}

]

(c) As a consequence of point (b), say whether M |= ϕ or not.[ Solution: Yes, {s0, s1, s2} ⊆ [ϕ′]. ]

Roberto Sebastiani Ch. 04: CTL Model Checking Monday 18th May, 2020 72 / 72