lecture v: ctl model heckingartale/fm/slide5.pdf · 2011-03-27 · summary of lecture v ctl model...

33
F ORMAL M ETHODS L ECTURE V: CTL M ODEL C HECKING Alessandro Artale Faculty of Computer Science – Free University of Bolzano Room 2.03 [email protected] http://www.inf.unibz.it/artale/ Some material (text, figures) displayed in these slides is courtesy of: M. Benerecetti, A. Cimatti, M. Fisher, F. Giunchiglia, M. Pistore, M. Roveri, R.Sebastiani. Alessandro Artale (FM – First Semester – 2010/2011) – p. 1/33

Upload: others

Post on 10-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

FORMAL METHODS

LECTURE V: CTL MODEL CHECKING

Alessandro Artale

Faculty of Computer Science – Free University of Bolzano

Room 2.03

[email protected] http://www.inf.unibz.it/∼artale/

Some material (text, figures) displayed in these slides is courtesy of:

M. Benerecetti, A. Cimatti, M. Fisher, F. Giunchiglia, M. Pistore, M. Roveri, R.Sebastiani.Alessandro Artale (FM – First Semester – 2010/2011) – p. 1/33

Page 2: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Summary of Lecture V

CTL Model Checking: General Ideas.

CTL Model Checking: The Labeling Algorithm.

Labeling Algorithm in Details.

CTL Model Checking: Theoretical Issues.

Alessandro Artale (FM – First Semester – 2010/2011) – p. 2/33

Page 3: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

CTL Model Checking

CTL Model Checking is a formal verification technique s.t.

• The system is represented as a Kripke Model K M :

p

q

1

2

3

4

p

• The property is expressed as a CTL formula ϕ, e.g.:

�P (p ⇒ �P ♦q)

• The algorithm checks whether all the initial states, s0, of

the Kripke model satisfy the formula (K M ,s0 |= ϕ).

Alessandro Artale (FM – First Semester – 2010/2011) – p. 3/33

Page 4: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

CTL M.C. Algorithm: General Ideas

The algorithm proceeds along two macro-steps:

1. Construct the set of states where the formula holds:

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

([[ϕ]] is called the denotation of ϕ);

2. Then compare the denotation with the set of initialstates:

I ⊆ [[ϕ]]?

Alessandro Artale (FM – First Semester – 2010/2011) – p. 4/33

Page 5: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

CTL M.C. Algorithm: General Ideas (Cont.)

To compute [[ϕ]] proceed “bottom-up” on the structure of theformula, computing [[ϕi]] for each subformula ϕi of ϕ.

For example, to compute [[�P (p ⇒ �P ♦q)]] we need tocompute:

• [[q]],

• [[�P ♦q]],

• [[p]],

• [[p ⇒ �P ♦q]],

• [[�P (p ⇒ �P ♦q)]]

Alessandro Artale (FM – First Semester – 2010/2011) – p. 5/33

Page 6: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

CTL M.C. Algorithm: General Ideas (Cont.)

To compute each [[ϕi]] for generic subformulas:

• Handle boolean operators by standard set operations;

• Handle temporal operators �Pk, ♦P

kby computingpre-images;

• Handle temporal operators �P , ♦P , �P ♦, ♦P ♦,

�P U , ♦P U , by applying fixpoint operators.

Alessandro Artale (FM – First Semester – 2010/2011) – p. 6/33

Page 7: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Summary

CTL Model Checking: General Ideas.

CTL Model Checking: The Labeling Algorithm.

Labeling Algorithm in Details.

CTL Model Checking: Theoretical Issues.

Alessandro Artale (FM – First Semester – 2010/2011) – p. 7/33

Page 8: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

The Labeling Algorithm: General Idea

The Labeling Algorithm:

• Input: Kripke Model and a CTL formula;

• Output: set of states satisfying the formula.

Main Idea: Label the states of the Kripke Model with thesubformulas of ϕ satisfied there.

Alessandro Artale (FM – First Semester – 2010/2011) – p. 8/33

Page 9: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

The Labeling Algorithm: An Example

p

q

1

2

3

4

p

p

q

1

2

3

4

p

"q" "AF q"

⊲ �P ♦q ≡ (q∨ �Pk(�P ♦q))

⊲ [[�P ♦q]] can be computed as the union of:• [[q]] = {2}• [[q∨ �P

kq]] = {2}∪{1} = {1,2}• [[q∨ �P

k(q∨ �Pkq)]] = {2}∪{1} = {1,2} (fixpoint).

Alessandro Artale (FM – First Semester – 2010/2011) – p. 9/33

Page 10: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

The Labeling Algorithm: An Example (Cont.)

p

q

1

2

3

4

p

p

q

1

2

3

4

p

p

q

1

2

3

4

p

"p"

"AF q"

"p −> AF q"

Alessandro Artale (FM – First Semester – 2010/2011) – p. 10/33

Page 11: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

The Labeling Algorithm: An Example (Cont.)

p

q

1

2

3

4

p

p

q

1

2

3

4

p

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

⊲ �P ϕ ≡ (ϕ∧ �Pk(�P ϕ))

⊲ [[�P ϕ]] can be computed as the intersection of:• [[ϕ]] = {1,2,4}• [[ϕ∧ �P

kϕ]] = {1,2,4}∩{1,3} = {1}• [[ϕ∧ �P

k(ϕ∧ �Pkϕ)]] = {1,2,4}∩{} = {} (fixpoint)

Alessandro Artale (FM – First Semester – 2010/2011) – p. 11/33

Page 12: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

The Labeling Algorithm: An Example (Cont.)

⊲ The set of states where the formula holds is empty, thus:• The initial state does not satisfy the property;• K M 6|= �P (p ⇒ �P ♦q).

⊲ Counterexample: A lazo-shaped path: 1,2,{3,4}ω (satisfying

♦P ♦(p∧♦P ¬q))

Alessandro Artale (FM – First Semester – 2010/2011) – p. 12/33

Page 13: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Summary

CTL Model Checking: General Ideas.

CTL Model Checking: The Labeling Algorithm.

Labeling Algorithm in Details.

CTL Model Checking: Theoretical Issues.

Alessandro Artale (FM – First Semester – 2010/2011) – p. 13/33

Page 14: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

The Labeling Algorithm: General Schema

⊲ Assume ϕ written in terms of ¬, ∧, ♦Pk, ♦P U , ♦P –

minimal set of CTL operators

⊲ The Labeling algorithm takes a CTL formula and a KripkeModel as input and returns the set of states satisfying theformula (i.e., the denotation of ϕ):

1. For every ϕi ∈ Sub(ϕ), find [[ϕi]];

2. Compute [[ϕ]] starting from [[ϕi]];

3. Check if I ⊆ [[ϕ]].

⊲ Subformulas Sub(ϕ) of ϕ are checked bottom-up

⊲ To compute each [[ϕi]]: if the main operator of ϕi is a• Boolean Operator: apply standard set operations;

• Temporal Operator: apply recursive rules until a fixpoint isreached.

Alessandro Artale (FM – First Semester – 2010/2011) – p. 14/33

Page 15: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Denotation of Formulas: The Boolean Case

Let K M = 〈S, I,R,L,Σ〉 be a Kripke Model.

[[ f alse]] = {}

[[true]] = S

[[p]] = {s | p ∈ L(s)}

[[¬ϕ1]] = S\ [[ϕ1]]

[[ϕ1 ∧ϕ2]] = [[ϕ1]]∩ [[ϕ2]]

Alessandro Artale (FM – First Semester – 2010/2011) – p. 15/33

Page 16: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Denotation of Formulas: The ♦P � ��

Case

⊲ [[♦Pkϕ]] = {s ∈ S | ∃s′.〈s,s′〉 ∈ R and s′ ∈ [[ϕ]]}

⊲ [[♦Pkϕ]] is said to be the Pre-image of [[ϕ]] (PRE([[ϕ]])).

⊲ Key step of every CTL M.C. operation.

PPreImage(P)

Alessandro Artale (FM – First Semester – 2010/2011) – p. 16/33

Page 17: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Denotation of Formulas: The ♦P Case

From the semantics of the temporal operator:

ϕ ≡ ϕ∧ k( ϕ)

Then, the following equivalence holds:

♦P ϕ ≡ ϕ∧♦Pk(♦P ϕ)

To compute [[♦P ϕ]] we can apply the followingrecursive definition:

[[♦P ϕ]] = [[ϕ]]∩PRE([[♦P ϕ]])

Alessandro Artale (FM – First Semester – 2010/2011) – p. 17/33

Page 18: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Denotation of Formulas: The ♦P Case (Cont.)

We can compute X := [[♦P ϕ]] inductively as follows:

X1 := [[ϕ]]

X2 := X1 ∩PRE(X1)

. . .

X j+1 := X j ∩PRE(X j)

When Xn = Xn+1 we reach a fixpoint and we stop.

Termination. Since X j+1 ⊆ X j for every j ≥ 0, thus a

fixed point always exists (Knaster-Tarski’s theorem).

Alessandro Artale (FM – First Semester – 2010/2011) – p. 18/33

Page 19: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Denotation of Formulas: The ♦P U Case

From the semantics of the U temporal operator:

ϕU ψ ≡ ψ∨ (ϕ∧ k(ϕU ψ))

Then, the following equivalence holds:

♦P (ϕU ψ) ≡ ψ∨ (ϕ∧♦Pk♦P (ϕU ψ))

To compute [[♦P (ϕU ψ)]] we can apply the followingrecursive definition:

[[♦P (ϕU ψ)]] = [[ψ]]∪ ([[ϕ]]∩PRE([[♦P (ϕU ψ)]]))

Alessandro Artale (FM – First Semester – 2010/2011) – p. 19/33

Page 20: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Denotation of Formulas: The ♦P U Case (Cont.)

We can compute X := [[♦P (ϕU ψ)]] inductively asfollows:X1 := [[ψ]]

X2 := X1 ∪ ([[ϕ]]∩PRE(X1))

. . .

X j+1 := X j ∪ ([[ϕ]]∩PRE(X j))

When Xn = Xn+1 we reach a fixpoint and we stop.

Termination. Since X j+1 ⊇ X j for every j ≥ 0, thus a

fixed point always exists (Knaster-Tarski’s theorem).

Alessandro Artale (FM – First Semester – 2010/2011) – p. 20/33

Page 21: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

The Pseudo-Code

We assume the Kripke Model to be a global variable:

FUNCTION Label(ϕ) {case ϕ of

true: return S;f alse: return {};an atom p: return {s ∈ S | p ∈ L(s)};¬ϕ1: return S\Label(ϕ1);ϕ1 ∧ϕ2: return Label(ϕ1)∩Label(ϕ2);

♦Pkϕ1: return PRE(Label(ϕ1));

♦P (ϕ1U ϕ2): return Label_EU(Label(ϕ1),Label(ϕ2));

♦P ϕ1: return Label_EG(Label(ϕ1));end case

}

Alessandro Artale (FM – First Semester – 2010/2011) – p. 21/33

Page 22: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

PreImage

[[♦Pkϕ]] = PRE([[ϕ]]) = {s ∈ S | ∃s′.〈s,s′〉 ∈ R and s′ ∈ [[ϕ]]}

FUNCTION PRE([[ϕ]]){var X ;X := {};for each s′ ∈ [[ϕ]] do

for each s ∈ S do

if 〈s,s′〉 ∈ R then

X := X ∪{s};return X

}

Alessandro Artale (FM – First Semester – 2010/2011) – p. 22/33

Page 23: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Label_EG

[[♦P ϕ]] = [[ϕ]]∩PRE([[♦P ϕ]])

FUNCTION LABEL EG([[ϕ]]){var X ,OLD-X ;X := [[ϕ]];OLD-X := /0;while X 6= OLD-Xbegin

OLD-X := X ;X := X ∩PRE(X)

end

return X

}

Alessandro Artale (FM – First Semester – 2010/2011) – p. 23/33

Page 24: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Label_EU

[[♦P (ϕU ψ)]] = [[ψ]]∪ ([[ϕ]]∩PRE([[♦P (ϕU ψ)]]))

FUNCTION LABEL EU([[ϕ]],[[ψ]]){var X ,OLD-X ;X := [[ψ]];OLD-X := S;while X 6= OLD-Xbegin

OLD-X := X ;X := X ∪ ([[ϕ]]∩PRE(X))

end

return X

}

Alessandro Artale (FM – First Semester – 2010/2011) – p. 24/33

Page 25: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Summary

CTL Model Checking: General Ideas.

CTL Model Checking: The Labeling Algorithm.

Labeling Algorithm in Details.

CTL Model Checking: Theoretical Issues.

Alessandro Artale (FM – First Semester – 2010/2011) – p. 25/33

Page 26: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Correctness and Termination

The Labeling algorithm works recursively on thestructure ϕ.

For most of the logical constructors the algorithm doesthe correct things according to the semantics of CTL.

• To prove that the algorithm is Correct and Terminating weneed to prove the correctness and termination of both

♦P and ♦P U operators.

Alessandro Artale (FM – First Semester – 2010/2011) – p. 26/33

Page 27: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Monotone Functions and Fixpoints

Definition. Let S be a set and F a function, F : 2S → 2S, then:

1. F is monotone iff X ⊆ Y then F(X) ⊆ F(Y );

2. A subset X of S is called a fixpoint of F iff F(X) = X ;

3. X is a least fixpoint (LFP) of F, written µX .F(X), iff, forevery other fixpoint Y of F, X ⊆ Y

4. X is a greatest fixpoint (GFP) of F , written νX .F(X), iff,for every other fixpoint Y of F , Y ⊆ X

Example. Let S = {s0,s1} and F(X) = X ∪{s0}.

Alessandro Artale (FM – First Semester – 2010/2011) – p. 27/33

Page 28: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Knaster-Tarski Theorem

Notation: F i(X) means applying F i-times, i.e.,F(F(. . .F(X) . . .)).

Theorem[Knaster-Tarski]. Let S be a finite set with n+1

elements. If F : 2S → 2S is a monotone function then:

1. µX .F(X) ≡ Fn+1( /0);

2. νX .F(X) ≡ Fn+1(S).

Proof. (See the textbook “Logic in CS” pg.241)

Alessandro Artale (FM – First Semester – 2010/2011) – p. 28/33

Page 29: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Correctness and Termination: ♦P Case

The function LABEL EG computes:

[[♦P ϕ]] = [[ϕ]]∩PRE([[♦P ϕ]])

applying the semantic equivalence:

♦P ϕ ≡ ϕ∧♦Pk(♦P ϕ)

Thus, [[♦P ϕ]] is the fixpoint of the function:

F(X) = [[ϕ]]∩PRE(X)

Alessandro Artale (FM – First Semester – 2010/2011) – p. 29/33

Page 30: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Correctness and Termination: ♦P Case (Cont.)

Theorem. Let F(X) = [[ϕ]]∩PRE(X), and let S have n+1

elements. Then:

1. F is monotone;

2. [[♦P ϕ]] is the greatest fixpoint of F.

Proof. (See the textbook “Logic in CS” pg.242)

Alessandro Artale (FM – First Semester – 2010/2011) – p. 30/33

Page 31: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Correctness and Termination: ♦P U Case

The function LABEL EU computes:

[[♦P (ϕU ψ)]] = [[ψ]]∪ ([[ϕ]]∩PRE([[♦P (ϕU ψ)]]))

applying the semantic equivalence:

♦P (ϕU ψ) ≡ ψ∨ (ϕ∧♦Pk♦P (ϕU ψ))

Thus, [[♦P (ϕU ψ)]] is the fixpoint of the function:

F(X) = [[ψ]]∪ ([[ϕ]]∩PRE(X))

Alessandro Artale (FM – First Semester – 2010/2011) – p. 31/33

Page 32: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Correctness and Termination: ♦P U Case (Cont.)

Theorem. Let F(X) = [[ψ]]∪ ([[ϕ]]∩PRE(X)), and let S haven+1 elements. Then:

1. F is monotone;

2. [[♦P (ϕU ψ)]] is the least fixpoint of F.

Proof. (See the textbook “Logic in CS” pg.243)

Alessandro Artale (FM – First Semester – 2010/2011) – p. 32/33

Page 33: LECTURE V: CTL MODEL HECKINGartale/FM/slide5.pdf · 2011-03-27 · Summary of Lecture V CTL Model Checking: General Ideas. CTL Model Checking: The Labeling Algorithm. Labeling Algorithm

Summary of Lecture V

CTL Model Checking: General Ideas.

CTL Model Checking: The Labeling Algorithm.

Labeling Algorithm in Details.

CTL Model Checking: Theoretical Issues.

Alessandro Artale (FM – First Semester – 2010/2011) – p. 33/33