+ All Categories
Home > Documents > Model Checking Lecture 2

Model Checking Lecture 2

Date post: 30-Jan-2016
Category:
Upload: risa
View: 30 times
Download: 0 times
Share this document with a friend
Description:
Model Checking Lecture 2. Three important decisions when choosing system properties:. automata vs. logic branching vs. linear time safety vs. liveness. The three decisions are orthogonal, and they lead to substantially different model-checking problems. - PowerPoint PPT Presentation
Popular Tags:
56
Model Checking Lecture 2
Transcript
Page 1: Model Checking Lecture 2

Model Checking

Lecture 2

Page 2: Model Checking Lecture 2

Three important decisions when choosing system properties:

1 automata vs. logic

2 branching vs. linear time

3 safety vs. liveness

The three decisions are orthogonal, and they lead to substantially different model-checking problems.

Page 3: Model Checking Lecture 2

If only universal properties are of interest,

why not omit the path quantifiers?

Page 4: Model Checking Lecture 2

LTL (Linear Temporal Logic)

-safety & liveness

-linear time

[Pnueli 1977; Lichtenstein & Pnueli 1982]

Page 5: Model Checking Lecture 2

LTL Syntax

::= a | | | | U

Page 6: Model Checking Lecture 2

LTL Model

infinite trace t = t0 t1 t2 ... (sequence of observations)

Page 7: Model Checking Lecture 2

(K,q) |= iff for all t L(K,q), t |=

(K,q) |= iff exists t L(K,q), t |=

Language of deadlock-free state-transition graph K at state q :

L(K,q) = set of infinite traces of K starting at q

Page 8: Model Checking Lecture 2

LTL Semantics

t |= a iff a t0

t |= iff t |= and t |=

t |= iff not t |=

t |= iff t1 t2 ... |=

t |= U iff exists n 0 s.t.1. for all 0 i < n, ti ti+1 ... |

= 2. tn tn+1 ... |=

Page 9: Model Checking Lecture 2

X next

U U until

= true U F eventually

= G always

W = ( U ) W waiting-for (weak-until)

Defined modalities

Page 10: Model Checking Lecture 2

Summary of modalities

STL U W

CTL all of the above and W U

LTL U W

Page 11: Model Checking Lecture 2

Important properties

Invariance a safety

(pc1=in pc2=in)

Sequencing a W b W c W dsafety

(pc1=req

(pc2in) W (pc2=in) W (pc2in) W (pc1=in))

Response (a b) liveness

(pc1=req (pc1=in))

Page 12: Model Checking Lecture 2

Composed modalities

a infinitely often a

a almost always a

Page 13: Model Checking Lecture 2

Where did fairness go ?

Page 14: Model Checking Lecture 2

Unlike in CTL, fairness can be expressed in LTL !

So there is no need for fairness in the model.

Weak (Buchi) fairness :

(enabled taken ) =

(enabled taken)

Strong (Streett) fairness :

( enabled ) ( taken )

Page 15: Model Checking Lecture 2

Starvation freedom, corrected

(pc2=in (pc2=out))

(pc1=req (pc1=in))

Page 16: Model Checking Lecture 2

CTL cannot express fairness

a a

b b

ba aq0

q1 q2

Page 17: Model Checking Lecture 2

LTL cannot express branching

Possibility (a b)

So, LTL and CTL are incomparable.

(There are branching logics that can express fairness, e.g., CTL* = CTL + LTL, but they lose the computational attractiveness of CTL.)

Page 18: Model Checking Lecture 2

-safety (finite runs) vs. liveness (infinite runs)

-linear time (traces) vs. branching time (trees)

-logic (declarative) vs. automata (operational)

System property: 2x2x2 choices

Page 19: Model Checking Lecture 2

Specification Automata

Syntax, given a set A of atomic observations:

S finite set of states

S0 S set of initial states

S S transition relation

: S PL(A) where the formulas of PL are

::= a | |

for a A

Page 20: Model Checking Lecture 2

Language L(M) of specification automaton

M = (S, S0, , ) :

infinite trace t0, t1, ... L(M)

iff

there exists a infinite run s0 s1 ... of M

such that

for all 0 i, ti |= (si)

Page 21: Model Checking Lecture 2

(K,q) |=L M iff L(K,q) L(M)

Linear semantics of specification automata:

language containment

state-transition graph

state of K

specification automaton

infinite traces

Page 22: Model Checking Lecture 2

finite trace t0, ..., tn Lfin(M)

iff

there exists a finite run s0 s1 ... sn of M

such that

for all 0 i n, ti |= (si)

Lfin(K,q) = set of finite traces of K starting at q

Lfin(M) defined as follows:

Page 23: Model Checking Lecture 2

(K,q) |=L M

iff

L(K,q) L(M)

iff

Lfin(K,q) Lfin(M)

Proof requires three facts:- K is deadlock-free

- every state in K has a transition from it- M is finite-branching:

- number of transitions from a state in M is bounded- Konig’s lemma

- A finite-branching infinite tree has an infinite path

Page 24: Model Checking Lecture 2

(K,q) |=L M

iff

Lfin(K,q) Lfin(M)

To verify (K,q) |=L M, check finitary trace-containment

Page 25: Model Checking Lecture 2

Invariance specification automaton

pc1 in

pc2 in

Page 26: Model Checking Lecture 2

One-bounded overtaking specification automaton

pc1=out

pc1=req

pc2inpc1=req

pc2=in

pc1=inpc1=req

pc2in

Page 27: Model Checking Lecture 2

Automata are more expressive than logic, because temporal logic cannot count :

This cannot be expressed in LTL.

(How about a (a a) ?)

a true

Let A = { a }

Page 28: Model Checking Lecture 2

a a a a a

a a aa a

a

a

Page 29: Model Checking Lecture 2

a a a a a

a a aa a

a true

a

a

Page 30: Model Checking Lecture 2

a a a a a

a a aa a

a (a a)

a

a

Page 31: Model Checking Lecture 2

a a a a a

a a aa a

a

a

In fact, no LTL formula with at most two occurrencesof can distinguish between the two traces.

Proof?

Page 32: Model Checking Lecture 2

Checking language containment between finite automata is PSPACE-complete !

L(K,q) L(M)

iff

L(K,q) complement( L(M) ) =

involves determinization (subset construction)

Page 33: Model Checking Lecture 2

In practice:

1. use monitor automata

2. use simulation as a sufficient condition

Page 34: Model Checking Lecture 2

Monitor Automata

Syntax:

same as specification automata, except also set E S of error states

Semantics:

define L(M) s.t. runs must end in error states

(K,q) |=C M iff L(K,q) L(M) =

Page 35: Model Checking Lecture 2

Invariance monitor automaton

pc1 in

pc2 in

pc1 = in

pc2 = in

ERROR

Page 36: Model Checking Lecture 2

One-bounded overtaking monitor automaton

pc1=out

pc1=req

pc2inpc1=req

pc2=in

pc1=in pc1=req

pc2in

pc1=req

pc2=in

ERROR

Page 37: Model Checking Lecture 2

Specification automaton Monitor automaton

M complement(M)

-describe correct traces -describe error traces

-check language containment-check emptiness (linear): (exponential) reachability of error states

“All safety verification is reachability checking.”

Page 38: Model Checking Lecture 2

In practice:

1. use monitor automata

2. use simulation as sufficient condition

Page 39: Model Checking Lecture 2

(K,q) |=B M

iff

there exists a simulation relation R Q S s.t. (q,s) R for some initial state s of M

Branching semantics of specification automata:

simulation

states of K

states of M

Page 40: Model Checking Lecture 2

R Q S is a simulation relation

iff

(q,s) R implies

1. [q] |= (s)

2. for all q’ s.t. q q’ , exists s’ s.t. s s’

and (q’,s’) R.

[Milner 1974]

Page 41: Model Checking Lecture 2

a

a

cb c

q|=L

b

true

truetrue

Page 42: Model Checking Lecture 2

a

a

cb c

q|=B

b

true

truetrue

Page 43: Model Checking Lecture 2

(K,q) |=L M M language contains (K,q) :exponential check

(K,q) |=B M M simulates (K,q) :quadratic check

X

involves only traces (hence linear !)

involves states (hence branching !)

Page 44: Model Checking Lecture 2

In practice, simulation is usually the “right” notion.

(If there is language containment, but not simulation, this is usually accidental, not by design.)

Page 45: Model Checking Lecture 2

Branching semantics of specification automata, alternative definition:

trace-tree containment

(K,q) |=B M iff T(K,q) T(M)

finite trace trees

Page 46: Model Checking Lecture 2

-safety & liveness (infinite runs !)

-specification vs. monitor automata

-linear (language containment) vs. branching (simulation) semantics

We discuss only the linear specification case.

Omega Automata

Page 47: Model Checking Lecture 2

Specification Omega Automata

Syntax as for finite automata, in addition an acceptance condition:

Buchi: BA S

Page 48: Model Checking Lecture 2

Language L(M) of specification omega-automaton

M = (S, S0, , , BA ) :

infinite trace t0, t1, ... L(M)

iff

there exists an infinite run s0 s1 ... of M

such that

1. s0 s1 ... satisfies BA

2. for all i 0, ti |= (si)

Page 49: Model Checking Lecture 2

Let Inf(s) = { p | p = si for infinitely many i }.

The infinite run s satisfies the acceptance condition BA

iff

Buchi: Inf(s) BA

Page 50: Model Checking Lecture 2

(K,q) |=L M iff L(K,q) L(M)

Linear semantics of specification omega automata:

omega-language containment

infinite traces

Page 51: Model Checking Lecture 2

Response specification automaton :

(a b) assuming (a b) = false

a b

ba

s1

s2

s3

s0

Buchi condition { s0, s3 }

Page 52: Model Checking Lecture 2

Response monitor automaton :

(a b) assuming (a b) = false

a b

s1 s2

Buchi condition { s2 }

s0

true

Page 53: Model Checking Lecture 2

a a

s0s1

Buchi condition { s0 }

a

Page 54: Model Checking Lecture 2

a a

s0s1

Buchi condition { s2 }

a

a

s2

Page 55: Model Checking Lecture 2

Omega automata are strictly more expressive than LTL.

Omega-automata: omega-regular languages

LTL: counter-free omega-regular languages

Page 56: Model Checking Lecture 2

a true

(p) ( p p (p p) (p a))

(p) ( p(0) p(1) (t) (p(t) p(t+2)) (t) (p(t) a(t)))

(a; true)


Recommended