introduction modelling parallel...

202
Overview overview3 Introduction Modelling parallel systems Linear Time Properties Regular Properties Linear Temporal Logic Computation-Tree Logic Equivalences and Abstraction 1 / 343

Upload: others

Post on 15-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Overview overview3

Introduction

Modelling parallel systems

Linear Time Properties

Regular Properties

Linear Temporal Logic

Computation-Tree Logic

Equivalences and Abstraction

1 / 343

Page 2: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Overview overview3

Introduction

Modelling parallel systems

Linear Time Properties

state-based and linear time view ←−←−←−definition of linear time propertiesinvariants and safetyliveness and fairness

Regular Properties

Linear Temporal Logic

Computation-Tree Logic

Equivalences and Abstraction

2 / 343

Page 3: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

State-based view of TS sbv2.3-1

transition system T = (S , Act,−→, S0, AP , L)T = (S , Act,−→, S0, AP, L)T = (S , Act,−→, S0, AP, L)

3 / 343

Page 4: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

State-based view of TS sbv2.3-1

transition system T = (S , Act,−→, S0, AP , L)T = (S , Act,−→, S0, AP, L)T = (S , Act,−→, S0, AP, L)

ActActAct for modeling interactions/communication

AP, LAP , LAP , L for specifying properties

4 / 343

Page 5: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

State-based view of TS sbv2.3-1

transition system T = (S , Act,−→, S0, AP , L)T = (S , Act,−→, S0, AP, L)T = (S , Act,−→, S0, AP, L)

ActActAct for modeling interactions/communicationand specifying fairness assumptions

AP, LAP , LAP , L for specifying properties

5 / 343

Page 6: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

State-based view of TS sbv2.3-1

transition system T = (S , Act,−→, S0, AP , L)T = (S , Act,−→, S0, AP, L)T = (S , Act,−→, S0, AP, L)��� abstraction from actions

state graph GTGTGT• set of nodes === state space SSS• edges === transitions without action label

ActActAct for modeling interactions/communicationand specifying fairness assumptions

AP, LAP , LAP , L for specifying properties

6 / 343

Page 7: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

State-based view of TS sbv2.3-1

transition system T = (S , Act,−→, S0, AP , L)T = (S , Act,−→, S0, AP, L)T = (S , Act,−→, S0, AP, L)��� abstraction from actions

state graph GTGTGT• set of nodes === state space SSS• edges === transitions without action label

use standard notationsfor graphs, e.g.,

Post(s)Post(s)Post(s) === {t ∈ S : s → t}{t ∈ S : s → t}{t ∈ S : s → t}Pre(s)Pre(s)Pre(s) === {u ∈ S : u → s}{u ∈ S : u → s}{u ∈ S : u → s}

sssuuu

...

...

...

...

...

...

Pre(s)Pre(s)Pre(s)

ttt

...

...

...

...

...

...

Post(s)Post(s)Post(s)7 / 343

Page 8: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Execution fragments sbv2.3-2

execution fragment: sequence of consecutive transitions

s0α0−→ s1

α1−→ ...s0α0−→ s1

α1−→ ...s0α0−→ s1

α1−→ ... infinite or

s0α0−→ s1

α1−→ ...αn−1−→ sns0

α0−→ s1α1−→ ...

αn−1−→ sns0α0−→ s1

α1−→ ...αn−1−→ sn finite

8 / 343

Page 9: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Execution and path fragments sbv2.3-2

execution fragment: sequence of consecutive transitions

s0α0−→ s1

α1−→ ...s0α0−→ s1

α1−→ ...s0α0−→ s1

α1−→ ... infinite or

s0α0−→ s1

α1−→ ...αn−1−→ sns0

α0−→ s1α1−→ ...

αn−1−→ sns0α0−→ s1

α1−→ ...αn−1−→ sn finite

path fragment: sequence of states arising from theprojection of an execution fragment to the states

9 / 343

Page 10: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Execution and path fragments sbv2.3-2

execution fragment: sequence of consecutive transitions

s0α0−→ s1

α1−→ ...s0α0−→ s1

α1−→ ...s0α0−→ s1

α1−→ ... infinite or

s0α0−→ s1

α1−→ ...αn−1−→ sns0

α0−→ s1α1−→ ...

αn−1−→ sns0α0−→ s1

α1−→ ...αn−1−→ sn finite

path fragment: sequence of states arising from theprojection of an execution fragment to the states

π = s0 s1 s2...π = s0 s1 s2...π = s0 s1 s2... infinite or π = s0 s1 ... snπ = s0 s1 ... snπ = s0 s1 ... sn finite

such that si+1 ∈ Post(si)si+1 ∈ Post(si)si+1 ∈ Post(si) for all i < |π|i < |π|i < |π|

10 / 343

Page 11: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Execution and path fragments sbv2.3-2

execution fragment: sequence of consecutive transitions

s0α0−→ s1

α1−→ ...s0α0−→ s1

α1−→ ...s0α0−→ s1

α1−→ ... infinite or

s0α0−→ s1

α1−→ ...αn−1−→ sns0

α0−→ s1α1−→ ...

αn−1−→ sns0α0−→ s1

α1−→ ...αn−1−→ sn finite

path fragment: sequence of states arising from theprojection of an execution fragment to the states

π = s0 s1 s2...π = s0 s1 s2...π = s0 s1 s2... infinite or π = s0 s1 ... snπ = s0 s1 ... snπ = s0 s1 ... sn finite

such that si+1 ∈ Post(si)si+1 ∈ Post(si)si+1 ∈ Post(si) for all i < |π|i < |π|i < |π|

initial: if s0 ∈ S0 =s0 ∈ S0 =s0 ∈ S0 = set of initial states

11 / 343

Page 12: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Execution and path fragments sbv2.3-2

execution fragment: sequence of consecutive transitions

s0α0−→ s1

α1−→ ...s0α0−→ s1

α1−→ ...s0α0−→ s1

α1−→ ... infinite or

s0α0−→ s1

α1−→ ...αn−1−→ sns0

α0−→ s1α1−→ ...

αn−1−→ sns0α0−→ s1

α1−→ ...αn−1−→ sn finite

path fragment: sequence of states arising from theprojection of an execution fragment to the states

π = s0 s1 s2...π = s0 s1 s2...π = s0 s1 s2... infinite or π = s0 s1 ... snπ = s0 s1 ... snπ = s0 s1 ... sn finite

such that si+1 ∈ Post(si)si+1 ∈ Post(si)si+1 ∈ Post(si) for all i < |π|i < |π|i < |π|

initial: if s0 ∈ S0 =s0 ∈ S0 =s0 ∈ S0 = set of initial states

maximal: if infinite or ending in a terminal state12 / 343

Page 13: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Notations for paths sbv2.3-2a

path fragment: sequence of states

π = s0 s1 s2...π = s0 s1 s2...π = s0 s1 s2... infinite or π = s0 s1 ... snπ = s0 s1 ... snπ = s0 s1 ... sn finite

s.t. si+1 ∈ Post(si)si+1 ∈ Post(si)si+1 ∈ Post(si) for all i < |π|i < |π|i < |π|

initial: if s0 ∈ S0 =s0 ∈ S0 =s0 ∈ S0 = set of initial statesmaximal: if infinite or ending in terminal state

path of TS TTT =̂̂=̂= initial, maximal path fragment

13 / 343

Page 14: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Notations for paths sbv2.3-2a

path fragment: sequence of states

π = s0 s1 s2...π = s0 s1 s2...π = s0 s1 s2... infinite or π = s0 s1 ... snπ = s0 s1 ... snπ = s0 s1 ... sn finite

s.t. si+1 ∈ Post(si)si+1 ∈ Post(si)si+1 ∈ Post(si) for all i < |π|i < |π|i < |π|

initial: if s0 ∈ S0 =s0 ∈ S0 =s0 ∈ S0 = set of initial statesmaximal: if infinite or ending in terminal state

path of TS TTT =̂̂=̂= initial, maximal path fragmentpath of state sss =̂̂=̂= maximal path fragment starting

in state sss

14 / 343

Page 15: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Notations for paths sbv2.3-2a

path fragment: sequence of states

π = s0 s1 s2...π = s0 s1 s2...π = s0 s1 s2... infinite or π = s0 s1 ... snπ = s0 s1 ... snπ = s0 s1 ... sn finite

s.t. si+1 ∈ Post(si)si+1 ∈ Post(si)si+1 ∈ Post(si) for all i < |π|i < |π|i < |π|

initial: if s0 ∈ S0 =s0 ∈ S0 =s0 ∈ S0 = set of initial statesmaximal: if infinite or ending in terminal state

path of TS TTT =̂̂=̂= initial, maximal path fragmentpath of state sss =̂̂=̂= maximal path fragment starting

in state sss

Paths(T )Paths(T )Paths(T ) === set of all initial, maximal path fragments

Paths(s)Paths(s)Paths(s) === set of all maximal path fragmentsstarting in state sss

15 / 343

Page 16: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Paths of a TS sbv2.3-3

TTT :ααα βββ

s0s0s0

s1s1s1 s2s2s2

How many paths are there in TTT ?

16 / 343

Page 17: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Paths of a TS sbv2.3-3

TTT :ααα βββ

s0s0s0

s1s1s1 s2s2s2

How many paths are there in TTT ?

answer: 222, namely s0 s1 s1 s1...s0 s1 s1 s1...s0 s1 s1 s1... and s0 s2s0 s2s0 s2

17 / 343

Page 18: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Paths of a TS and its states sbv2.3-3

TTT :ααα βββ

s0s0s0

s1s1s1 s2s2s2

How many paths are there in TTT ?

answer: 222, namely s0 s1 s1 s1...s0 s1 s1 s1...s0 s1 s1 s1... and s0 s2s0 s2s0 s2

Paths(s1)Paths(s1)Paths(s1) === set of all maximal paths fragmentsstarting in s1s1s1

==={sω1

}{sω1

}{sω1

}where sω

1 = s1 s1 s1 s1 . . .sω1 = s1 s1 s1 s1 . . .sω1 = s1 s1 s1 s1 . . .

18 / 343

Page 19: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Paths of a TS and its states sbv2.3-3

TTT :ααα βββ

s0s0s0

s1s1s1 s2s2s2

How many paths are there in TTT ?

answer: 222, namely s0 s1 s1 s1...s0 s1 s1 s1...s0 s1 s1 s1... and s0 s2s0 s2s0 s2

Paths(s1)Paths(s1)Paths(s1) === set of all maximal paths fragmentsstarting in s1s1s1

==={sω1

}{sω1

}{sω1

}where sω

1 = s1 s1 s1 s1 . . .sω1 = s1 s1 s1 s1 . . .sω1 = s1 s1 s1 s1 . . .

Pathsfin(s1)Pathsfin(s1)Pathsfin(s1) === set of all finite path fragmentsstarting in s1s1s1

==={sn1 : n ∈ N, n ≥ 1

}{sn1 : n ∈ N, n ≥ 1

}{sn1 : n ∈ N, n ≥ 1

}19 / 343

Page 20: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Overview overview3.1

Introduction

Modelling parallel systems

Linear Time Properties

state-based and linear time view ←−←−←−definition of linear time propertiesinvariants and safetyliveness and fairness

Regular Properties

Linear Temporal Logic

Computation-Tree Logic

Equivalences and Abstraction

20 / 343

Page 21: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Overview overview3.1

Introduction

Modelling parallel systems

Linear Time Properties

state-based and linear time view ←−←−←−definition of linear time propertiesinvariants and safetyliveness and fairness

Regular Properties

Linear Temporal Logic

Computation-Tree Logic

Equivalences and Abstraction

21 / 343

Page 22: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Linear-time vs branching-time ltb2.4-1

22 / 343

Page 23: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Linear-time vs branching-time ltb2.4-1

transition systemT = (S , Act,→, S0, AP, L)T = (S , Act,→, S0, AP , L)T = (S , Act,→, S0, AP, L)

23 / 343

Page 24: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Linear-time vs branching-time ltb2.4-1

transition systemT = (S , Act,→, S0, AP, L)T = (S , Act,→, S0, AP , L)T = (S , Act,→, S0, AP, L)

state graph+++ labeling

abstraction from actions

24 / 343

Page 25: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Linear-time vs branching-time ltb2.4-1

transition systemT = (S , Act,→, S0, AP, L)T = (S , Act,→, S0, AP , L)T = (S , Act,→, S0, AP, L)

state graph+++ labeling

abstraction from actions

linear-time view branching-time view

25 / 343

Page 26: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Linear-time vs branching-time ltb2.4-1

transition systemT = (S , Act,→, S0, AP, L)T = (S , Act,→, S0, AP , L)T = (S , Act,→, S0, AP, L)

state graph+++ labeling

abstraction from actions

linear-time viewpath-based

state sequencesbranching structure

irrelevant

branching-time view

nondeterministicbranches

state & branches

26 / 343

Page 27: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: vending machine ltb2.4-2

pay

select

spritecoke

vending machine with111 coin deposit

select drink afterhaving paid

27 / 343

Page 28: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: vending machine ltb2.4-2

pay

select

spritecoke

vending machine with111 coin deposit

select drink afterhaving paid

pay

paid c paid s

spritecoke

vending machine with222 coin deposits

select drink by insertingthe coin

28 / 343

Page 29: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: vending machine ltb2.4-2

pay

select

spritecoke

insertcoin

αααβββ

takecoke

takesprite

vending machine with111 coin deposit

select drink afterhaving paid

pay

paid c paid s

spritecoke

insertcoin

insertcoin

αααβββtakecoke

takesprite

vending machine with222 coin deposits

select drink by insertingthe coin

29 / 343

Page 30: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: vending machine ltb2.4-2

pay

select

spritecoke

insertcoin

αααβββ

takecoke

takesprite pay

paid c paid s

spritecoke

insertcoin

insertcoin

αααβββtakecoke

takesprite

state based view: abstracts from actions and projectsonto atomic propositions, e.g. AP = {coke, sprite}AP = {coke, sprite}AP = {coke, sprite}

30 / 343

Page 31: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: vending machine ltb2.4-2

pay

select

spritecoke

pay

paid c paid s

spritecoke

state based view: abstracts from actions and projectsonto atomic propositions, e.g. AP = {coke, sprite}AP = {coke, sprite}AP = {coke, sprite}e.g., L(L(L(coke) = {coke}) = {coke}) = {coke}, L(L(L(pay) = ∅) = ∅) = ∅

31 / 343

Page 32: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: vending machine ltb2.4-2

pay

select

spritecoke

pay

paid c paid s

spritecoke

state based view: abstracts from actions and projectsonto atomic propositions, e.g. AP = {coke, sprite}AP = {coke, sprite}AP = {coke, sprite}

linear time: all observable behaviors are of the form. . .. . .. . .

or32 / 343

Page 33: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: vending machine ltb2.4-3

pay

select

spritecoke

pay

paid c paid s

spritecoke

state based view: abstracts from actions and projectson atomc propositions, e.g., AP = {pay , drink}AP = {pay , drink}AP = {pay , drink}

33 / 343

Page 34: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: vending machine ltb2.4-3

pay

select

spritecoke

pay

paid c paid s

spritecoke

state based view: abstracts from actions and projectson atomc propositions, e.g., AP = {pay , drink}AP = {pay , drink}AP = {pay , drink}

34 / 343

Page 35: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: vending machine ltb2.4-3

pay

select

spritecoke

pay

paid c paid s

spritecoke

state based view: abstracts from actions and projectson atomc propositions, e.g., AP = {pay , drink}AP = {pay , drink}AP = {pay , drink}

linear & branching time:all observable behaviors have the form

. . .. . .. . .

35 / 343

Page 36: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Linear-time vs branching-time ltb2.4-1-traces

transition systemT = (S , Act,→, S0, AP, L)T = (S , Act,→, S0, AP , L)T = (S , Act,→, S0, AP, L)

state graph+++ labeling

abstraction from actions

linear-time view

state sequences

branching-time view

state & branches

36 / 343

Page 37: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Linear-time vs branching-time ltb2.4-1-traces

transition systemT = (S , Act,→, S0, AP, L)T = (S , Act,→, S0, AP , L)T = (S , Act,→, S0, AP, L)

state graph+++ labeling

abstraction from actions

linear-time view

state sequences⇓⇓⇓

traces

branching-time view

state & branches⇓⇓⇓

computation tree

projectionon APAPAP

37 / 343

Page 38: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Traces ltb2.4-4

38 / 343

Page 39: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Traces ltb2.4-4

for TS with labeling function L : S → 2APL : S → 2APL : S → 2AP

execution: states +++ actions

s0α1−→ s1

α2−→ s2α3−→ . . .s0

α1−→ s1α2−→ s2

α3−→ . . .s0α1−→ s1

α2−→ s2α3−→ . . . infinite or finite

paths: sequences of statess0 s1 s2 . . .s0 s1 s2 . . .s0 s1 s2 . . . infinite or s0 s1 . . . sns0 s1 . . . sns0 s1 . . . sn finite

39 / 343

Page 40: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Traces ltb2.4-4

for TS with labeling function L : S → 2APL : S → 2APL : S → 2AP

execution: states +++ actions

s0α1−→ s1

α2−→ s2α3−→ . . .s0

α1−→ s1α2−→ s2

α3−→ . . .s0α1−→ s1

α2−→ s2α3−→ . . . infinite or finite

paths: sequences of statess0 s1 s2 . . .s0 s1 s2 . . .s0 s1 s2 . . . infinite or s0 s1 . . . sns0 s1 . . . sns0 s1 . . . sn finite

traces: sequences of sets of atomic propositions

L(s0) L(s1) L(s2) . . .L(s0) L(s1) L(s2) . . .L(s0) L(s1) L(s2) . . .

40 / 343

Page 41: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Traces ltb2.4-4

for TS with labeling function L : S → 2APL : S → 2APL : S → 2AP

execution: states +++ actions

s0α1−→ s1

α2−→ s2α3−→ . . .s0

α1−→ s1α2−→ s2

α3−→ . . .s0α1−→ s1

α2−→ s2α3−→ . . . infinite or finite

paths: sequences of statess0 s1 s2 . . .s0 s1 s2 . . .s0 s1 s2 . . . infinite or s0 s1 . . . sns0 s1 . . . sns0 s1 . . . sn finite

traces: sequences of sets of atomic propositions

L(s0) L(s1) L(s2) . . .L(s0) L(s1) L(s2) . . .L(s0) L(s1) L(s2) . . . ∈ (2AP)ω ∪ (2AP)+∈ (2AP)ω ∪ (2AP)+∈ (2AP)ω ∪ (2AP)+

41 / 343

Page 42: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Traces ltb2.4-4

for TS with labeling function L : S → 2APL : S → 2APL : S → 2AP

execution: states +++ actions

s0α1−→ s1

α2−→ s2α3−→ . . .s0

α1−→ s1α2−→ s2

α3−→ . . .s0α1−→ s1

α2−→ s2α3−→ . . . infinite or finite

paths: sequences of statess0 s1 s2 . . .s0 s1 s2 . . .s0 s1 s2 . . . infinite or s0 s1 . . . sns0 s1 . . . sns0 s1 . . . sn finite

traces: sequences of sets of atomic propositions

L(s0) L(s1) L(s2) . . .L(s0) L(s1) L(s2) . . .L(s0) L(s1) L(s2) . . . ∈ (2AP)ω ∪ (2AP)+∈ (2AP)ω ∪ (2AP)+∈ (2AP)ω ∪ (2AP)+

for simplicity: we often assume that the given TS hasno terminal states

42/343

Page 43: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Traces ltb2.4-4

for TS with labeling function L : S → 2APL : S → 2APL : S → 2AP

execution: states +++ actions

s0α1−→ s1

α2−→ s2α3−→ . . .s0

α1−→ s1α2−→ s2

α3−→ . . .s0α1−→ s1

α2−→ s2α3−→ . . . infinite or ����������finite

paths: sequences of statess0 s1 s2 . . .s0 s1 s2 . . .s0 s1 s2 . . . infinite or����������������������s0 s1 . . . sns0 s1 . . . sns0 s1 . . . sn finite

traces: sequences of sets of atomic propositions

L(s0) L(s1) L(s2) . . .L(s0) L(s1) L(s2) . . .L(s0) L(s1) L(s2) . . . ∈ (2AP)ω ∪ ������������(2AP)+∈ (2AP)ω ∪ ������������(2AP)+∈ (2AP)ω ∪ ������������(2AP)+

for simplicity: we often assume that the given TS hasno terminal states

43/343

Page 44: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Treatment of terminal states ltb2.4-6

perform standard graph algorithms to computethe reachable fragment of the given TS

Reach(T ) =Reach(T ) =Reach(T ) =

{set of states that are reachable

from some initial state

44 / 343

Page 45: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Treatment of terminal states ltb2.4-6

perform standard graph algorithms to computethe reachable fragment of the given TS

Reach(T ) =Reach(T ) =Reach(T ) =

{set of states that are reachable

from some initial state

for each reachable terminal state sss :

• if sss stands for an intended halting configurationthen add a transition from sss to a trap state:

45 / 343

Page 46: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Treatment of terminal states ltb2.4-6

perform standard graph algorithms to computethe reachable fragment of the given TS

Reach(T ) =Reach(T ) =Reach(T ) =

{set of states that are reachable

from some initial state

for each reachable terminal state sss :

• if sss stands for an intended halting configurationthen add a transition from sss to a trap state:

sss

... ...

sss

... ...

��� stop

46 / 343

Page 47: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Treatment of terminal states ltb2.4-6

perform standard graph algorithms to computethe reachable fragment of the given TS

Reach(T ) =Reach(T ) =Reach(T ) =

{set of states that are reachable

from some initial state

for each reachable terminal state sss :

• if sss stands for an intended halting configurationthen add a transition from sss to a trap state:

sss

... ...

sss

... ...

��� stop

• if sss stands for system fault, e.g., deadlock thencorrect the design before checking further properties

47 / 343

Page 48: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Traces of a transition system ltb2.4-5

Let TTT be a TS

Traces(T )Traces(T )Traces(T )def=def=def=

{trace(π) : π ∈ Paths(T )

}{trace(π) : π ∈ Paths(T )

}{trace(π) : π ∈ Paths(T )

}

Tracesfin(T )Tracesfin(T )Tracesfin(T )def=def=def=

{trace(π̂) : π̂ ∈ Pathsfin(T )

}{trace(π̂) : π̂ ∈ Pathsfin(T )

}{trace(π̂) : π̂ ∈ Pathsfin(T )

}

48 / 343

Page 49: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Traces of a transition system ltb2.4-5

Let TTT be a TS

Traces(T )Traces(T )Traces(T )def=def=def=

{trace(π) : π ∈ Paths(T )

}{trace(π) : π ∈ Paths(T )

}{trace(π) : π ∈ Paths(T )

}↑↑↑

initial, maximal path fragment

Tracesfin(T )Tracesfin(T )Tracesfin(T )def=def=def=

{trace(π̂) : π̂ ∈ Pathsfin(T )

}{trace(π̂) : π̂ ∈ Pathsfin(T )

}{trace(π̂) : π̂ ∈ Pathsfin(T )

}↑↑↑

initial, finite path fragment

49 / 343

Page 50: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Traces of a transition system ltb2.4-5

Let TTT be a TS←−←−←− without terminal states

Traces(T )Traces(T )Traces(T )def=def=def=

{trace(π) : π ∈ Paths(T )

}{trace(π) : π ∈ Paths(T )

}{trace(π) : π ∈ Paths(T )

}↑↑↑

initial, infinite path fragment

Tracesfin(T )Tracesfin(T )Tracesfin(T )def=def=def=

{trace(π̂) : π̂ ∈ Pathsfin(T )

}{trace(π̂) : π̂ ∈ Pathsfin(T )

}{trace(π̂) : π̂ ∈ Pathsfin(T )

}↑↑↑

initial, finite path fragment

50 / 343

Page 51: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Traces of a transition system ltb2.4-5

Let TTT be a TS←−←−←− without terminal states

Traces(T )Traces(T )Traces(T )def=def=def=

{trace(π) : π ∈ Paths(T )

}{trace(π) : π ∈ Paths(T )

}{trace(π) : π ∈ Paths(T )

}⊆ (2AP)ω⊆ (2AP)ω⊆ (2AP)ω

↑↑↑initial, infinite path fragment

Tracesfin(T )Tracesfin(T )Tracesfin(T )def=def=def=

{trace(π̂) : π̂ ∈ Pathsfin(T )

}{trace(π̂) : π̂ ∈ Pathsfin(T )

}{trace(π̂) : π̂ ∈ Pathsfin(T )

}⊆ (2AP)∗⊆ (2AP)∗⊆ (2AP)∗

↑↑↑initial, finite path fragment

51 / 343

Page 52: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: traces ltb2.4-5a

Let TTT be a TS without terminal states.

Traces(T )Traces(T )Traces(T )def=def=def=

{trace(π) : π ∈ Paths(T )

}{trace(π) : π ∈ Paths(T )

}{trace(π) : π ∈ Paths(T )

}⊆ (2AP)ω⊆ (2AP)ω⊆ (2AP)ω

Tracesfin(T )Tracesfin(T )Tracesfin(T )def=def=def=

{trace(π̂) : π̂ ∈ Pathsfin(T )

}{trace(π̂) : π̂ ∈ Pathsfin(T )

}{trace(π̂) : π̂ ∈ Pathsfin(T )

}⊆ (2AP)∗⊆ (2AP)∗⊆ (2AP)∗

{a}{a}{a} ∅∅∅

TS TTT with a singleatomic proposition aaa

52 / 343

Page 53: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: traces ltb2.4-5a

Let TTT be a TS without terminal states.

Traces(T )Traces(T )Traces(T )def=def=def=

{trace(π) : π ∈ Paths(T )

}{trace(π) : π ∈ Paths(T )

}{trace(π) : π ∈ Paths(T )

}⊆ (2AP)ω⊆ (2AP)ω⊆ (2AP)ω

Tracesfin(T )Tracesfin(T )Tracesfin(T )def=def=def=

{trace(π̂) : π̂ ∈ Pathsfin(T )

}{trace(π̂) : π̂ ∈ Pathsfin(T )

}{trace(π̂) : π̂ ∈ Pathsfin(T )

}⊆ (2AP)∗⊆ (2AP)∗⊆ (2AP)∗

{a}{a}{a} ∅∅∅

TS TTT with a singleatomic proposition aaa

Traces(T )Traces(T )Traces(T ) ==={{a}∅ω, ∅

ω}{

{a}∅ω, ∅ω}{

{a}∅ω, ∅ω}

Tracesfin(T )Tracesfin(T )Tracesfin(T ) ==={{a}∅n : n ≥ 0

}∪

{∅

m : m ≥ 1}{

{a}∅n : n ≥ 0}∪

{∅

m : m ≥ 1}{

{a}∅n : n ≥ 0}∪

{∅

m : m ≥ 1}

53 / 343

Page 54: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore ltb2.4-8

P1P1P1 noncrit1

wait1

crit1

y > 0: y :=y−1y > 0: y :=y−1y > 0: y :=y−1

y :=y+1y :=y+1y :=y+1

P2P2P2 noncrit2

wait2

crit2

y > 0: y :=y−1y > 0: y :=y−1y > 0: y :=y−1

y :=y+1y :=y+1y :=y+1

transition system TP1|||P2TP1|||P2TP1|||P2

arises by unfolding thecomposite program graph P1 ||| P2P1 ||| P2P1 ||| P2

54 / 343

Page 55: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore TP1|||P2TP1|||P2TP1|||P2

ltb2.4-8

noncrit1 noncrit2y=1y=1y=1

wait1 noncrit2y=1y=1y=1

noncrit1 wait2y=1y=1y=1

crit1 noncrit2y=0y=0y=0

wait1 wait2y=1y=1y=1

noncrit1 crit2y=0y=0y=0

crit1 wait2y=0y=0y=0

wait1 crit2y=0y=0y=0

set of atomic propositions AP = {crit1, crit2}AP = {crit1, crit2}AP = {crit1, crit2}

55 / 343

Page 56: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore TP1|||P2TP1|||P2TP1|||P2

ltb2.4-8

noncrit1 noncrit2y=1y=1y=1

noncrit1 noncrit2y=1y=1y=1

wait1 noncrit2y=1y=1y=1

noncrit1 wait2y=1y=1y=1

crit1crit1crit1 noncrit2y=0y=0y=0

wait1 wait2y=1y=1y=1

noncrit1 crit2crit2crit2y=0y=0y=0

crit1crit1crit1 wait2y=0y=0y=0

wait1 crit2crit2crit2y=0y=0y=0

set of atomic propositions AP = {crit1, crit2}AP = {crit1, crit2}AP = {crit1, crit2}

e.g., L(〈L(〈L(〈noncrit1, noncrit2,y=1〉)y=1〉)y=1〉) ===L(〈L(〈L(〈wait1, noncrit2,y=1〉)y=1〉)y=1〉) === ∅∅∅

56 / 343

Page 57: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore TP1|||P2TP1|||P2TP1|||P2

ltb2.4-8

noncrit1 noncrit2y=1y=1y=1

noncrit1 noncrit2y=1y=1y=1

wait1 noncrit2y=1y=1y=1

noncrit1 wait2y=1y=1y=1

crit1crit1crit1 noncrit2y=0y=0y=0

wait1 wait2y=1y=1y=1

noncrit1 crit2crit2crit2y=0y=0y=0

crit1crit1crit1 wait2y=0y=0y=0

wait1 crit2crit2crit2y=0y=0y=0

set of atomic propositions AP = {crit1, crit2}AP = {crit1, crit2}AP = {crit1, crit2}traces, e.g., ∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...

57 / 343

Page 58: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore TP1|||P2TP1|||P2TP1|||P2

ltb2.4-8

noncrit1 noncrit2y=1y=1y=1

noncrit1 noncrit2y=1y=1y=1

wait1 noncrit2y=1y=1y=1

noncrit1 wait2y=1y=1y=1

crit1crit1crit1 noncrit2y=0y=0y=0

wait1 wait2y=1y=1y=1

noncrit1 crit2crit2crit2y=0y=0y=0

crit1crit1crit1 wait2y=0y=0y=0

wait1 crit2crit2crit2y=0y=0y=0

set of atomic propositions AP = {crit1, crit2}AP = {crit1, crit2}AP = {crit1, crit2}traces, e.g., ∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...

∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...

58 / 343

Page 59: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore TP1|||P2TP1|||P2TP1|||P2

ltb2.4-8

noncrit1 noncrit2y=1y=1y=1

noncrit1 noncrit2y=1y=1y=1

wait1 noncrit2y=1y=1y=1

noncrit1 wait2y=1y=1y=1

crit1crit1crit1 noncrit2y=0y=0y=0

wait1 wait2y=1y=1y=1

noncrit1 crit2crit2crit2y=0y=0y=0

crit1crit1crit1 wait2y=0y=0y=0

wait1 crit2crit2crit2y=0y=0y=0

set of atomic propositions AP = {crit1, crit2}AP = {crit1, crit2}AP = {crit1, crit2}traces, e.g., ∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...

∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...↑↑↑↑↑↑↑↑↑

59 / 343

Page 60: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore TP1|||P2TP1|||P2TP1|||P2

ltb2.4-8

noncrit1 noncrit2y=1y=1y=1

noncrit1 noncrit2y=1y=1y=1

wait1 noncrit2y=1y=1y=1

noncrit1 wait2y=1y=1y=1

crit1crit1crit1 noncrit2y=0y=0y=0

wait1 wait2y=1y=1y=1

noncrit1 crit2crit2crit2y=0y=0y=0

crit1crit1crit1 wait2y=0y=0y=0

wait1 crit2crit2crit2y=0y=0y=0

set of atomic propositions AP = {crit1, crit2}AP = {crit1, crit2}AP = {crit1, crit2}traces, e.g., ∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...

∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...↑↑↑↑↑↑↑↑↑

60 / 343

Page 61: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore TP1|||P2TP1|||P2TP1|||P2

ltb2.4-8

noncrit1 noncrit2y=1y=1y=1

noncrit1 noncrit2y=1y=1y=1

wait1 noncrit2y=1y=1y=1

noncrit1 wait2y=1y=1y=1

crit1crit1crit1 noncrit2y=0y=0y=0

wait1 wait2y=1y=1y=1

noncrit1 crit2crit2crit2y=0y=0y=0

crit1crit1crit1 wait2y=0y=0y=0

wait1 crit2crit2crit2y=0y=0y=0

set of atomic propositions AP = {crit1, crit2}AP = {crit1, crit2}AP = {crit1, crit2}traces, e.g., ∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...

∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...↑↑↑↑↑↑↑↑↑

61 / 343

Page 62: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore TP1|||P2TP1|||P2TP1|||P2

ltb2.4-8

noncrit1 noncrit2y=1y=1y=1

noncrit1 noncrit2y=1y=1y=1

wait1 noncrit2y=1y=1y=1

noncrit1 wait2y=1y=1y=1

crit1crit1crit1 noncrit2y=0y=0y=0

wait1 wait2y=1y=1y=1

noncrit1 crit2crit2crit2y=0y=0y=0

crit1crit1crit1 wait2y=0y=0y=0

wait1 crit2crit2crit2y=0y=0y=0

set of atomic propositions AP = {crit1, crit2}AP = {crit1, crit2}AP = {crit1, crit2}traces, e.g., ∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...

∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...↑↑↑↑↑↑↑↑↑

62 / 343

Page 63: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore TP1|||P2TP1|||P2TP1|||P2

ltb2.4-8

noncrit1 noncrit2y=1y=1y=1

noncrit1 noncrit2y=1y=1y=1

wait1 noncrit2y=1y=1y=1

noncrit1 wait2y=1y=1y=1

crit1crit1crit1 noncrit2y=0y=0y=0

wait1 wait2y=1y=1y=1

noncrit1 crit2crit2crit2y=0y=0y=0

crit1crit1crit1 wait2y=0y=0y=0

wait1 crit2crit2crit2y=0y=0y=0

set of atomic propositions AP = {crit1, crit2}AP = {crit1, crit2}AP = {crit1, crit2}traces, e.g., ∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...

∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...↑↑↑↑↑↑↑↑↑

63 / 343

Page 64: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore TP1|||P2TP1|||P2TP1|||P2

ltb2.4-8

noncrit1 noncrit2y=1y=1y=1

noncrit1 noncrit2y=1y=1y=1

wait1 noncrit2y=1y=1y=1

noncrit1 wait2y=1y=1y=1

crit1crit1crit1 noncrit2y=0y=0y=0

wait1 wait2y=1y=1y=1

noncrit1 crit2crit2crit2y=0y=0y=0

crit1crit1crit1 wait2y=0y=0y=0

wait1 crit2crit2crit2y=0y=0y=0

set of atomic propositions AP = {crit1, crit2}AP = {crit1, crit2}AP = {crit1, crit2}traces, e.g., ∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...

∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...↑↑↑↑↑↑↑↑↑

64 / 343

Page 65: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore TP1|||P2TP1|||P2TP1|||P2

ltb2.4-8

noncrit1 noncrit2y=1y=1y=1

noncrit1 noncrit2y=1y=1y=1

wait1 noncrit2y=1y=1y=1

noncrit1 wait2y=1y=1y=1

crit1crit1crit1 noncrit2y=0y=0y=0

wait1 wait2y=1y=1y=1

noncrit1 crit2crit2crit2y=0y=0y=0

crit1crit1crit1 wait2y=0y=0y=0

wait1 crit2crit2crit2y=0y=0y=0

set of atomic propositions AP = {crit1, crit2}AP = {crit1, crit2}AP = {crit1, crit2}traces, e.g., ∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...

∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...↑↑↑↑↑↑↑↑↑

65 / 343

Page 66: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore TP1|||P2TP1|||P2TP1|||P2

ltb2.4-8

noncrit1 noncrit2y=1y=1y=1

noncrit1 noncrit2y=1y=1y=1

wait1 noncrit2y=1y=1y=1

noncrit1 wait2y=1y=1y=1

crit1crit1crit1 noncrit2y=0y=0y=0

wait1 wait2y=1y=1y=1

noncrit1 crit2crit2crit2y=0y=0y=0

crit1crit1crit1 wait2y=0y=0y=0

wait1 crit2crit2crit2y=0y=0y=0

set of atomic propositions AP = {crit1, crit2}AP = {crit1, crit2}AP = {crit1, crit2}traces, e.g., ∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...∅ ∅ {crit1}∅ ∅ {crit1}∅ ∅ {crit1} ...

∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...∅ ∅ ∅ {crit1}∅ {crit2} {crit2}∅ ...↑↑↑↑↑↑↑↑↑

66 / 343

Page 67: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphor TP1|||P2TP1|||P2TP1|||P2

ltb2.4-9

noncrit1 noncrit2y=1y=1y=1

wait1 noncrit2y=1y=1y=1

noncrit1 wait2y=1y=1y=1

crit1 noncrit2y=0y=0y=0

wait1 wait2y=1y=1y=1

noncrit1 crit2y=0y=0y=0

crit1 wait2y=0y=0y=0

wait1 crit2y=0y=0y=0

set of propositions AP = {wait1, crit1, wait2, crit2}AP = {wait1, crit1, wait2, crit2}AP = {wait1, crit1, wait2, crit2}

67 / 343

Page 68: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphor TP1|||P2TP1|||P2TP1|||P2

ltb2.4-9

noncrit1noncrit1noncrit1 noncrit2noncrit2noncrit2y=1y=1y=1

wait1wait1wait1 noncrit2y=1

noncrit1 wait2wait2wait2y=1

crit1crit1crit1 noncrit2y=0

wait1wait1wait1 wait2wait2wait2y=1

noncrit1 crit2crit2crit2y=0

crit1crit1crit1 wait2wait2wait2y=0

wait1wait1wait1 crit2crit2crit2y=0y=0y=0

set of propositions AP = {wait1, crit1, wait2, crit2}AP = {wait1, crit1, wait2, crit2}AP = {wait1, crit1, wait2, crit2}e.g., L(〈noncrit1, noncrit2, y=1〉)L(〈noncrit1, noncrit2, y=1〉)L(〈noncrit1, noncrit2, y=1〉) === ∅∅∅

L(〈wait1, crit2, y=1〉)L(〈wait1, crit2, y=1〉)L(〈wait1, crit2, y=1〉) === {wait1, crit2}{wait1, crit2}{wait1, crit2}68 / 343

Page 69: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphor TP1|||P2TP1|||P2TP1|||P2

ltb2.4-9

noncrit1 noncrit2y=1

wait1wait1wait1 noncrit2y=1

noncrit1 wait2wait2wait2y=1

crit1crit1crit1 noncrit2y=0

wait1wait1wait1 wait2wait2wait2y=1

noncrit1 crit2crit2crit2y=0

crit1crit1crit1 wait2wait2wait2y=0

wait1wait1wait1 crit2crit2crit2y=0

set of propositions AP = {wait1, crit1, wait2, crit2}AP = {wait1, crit1, wait2, crit2}AP = {wait1, crit1, wait2, crit2}traces, e.g.,

∅({wait1} {wait1, wait2} {wait1, crit2}

)ω∅

({wait1} {wait1, wait2} {wait1, crit2}

)ω∅

({wait1} {wait1, wait2} {wait1, crit2}

69 / 343

Page 70: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphor TP1|||P2TP1|||P2TP1|||P2

ltb2.4-9

noncrit1 noncrit2y=1

wait1wait1wait1 noncrit2y=1

noncrit1 wait2wait2wait2y=1

crit1crit1crit1 noncrit2y=0

wait1wait1wait1 wait2wait2wait2y=1

noncrit1 crit2crit2crit2y=0

crit1crit1crit1 wait2wait2wait2y=0

wait1wait1wait1 crit2crit2crit2y=0

set of propositions AP = {wait1, crit1, wait2, crit2}AP = {wait1, crit1, wait2, crit2}AP = {wait1, crit1, wait2, crit2}traces, e.g.,

∅({wait1} {wait1, wait2} {wait1, crit2}

)ω∅

({wait1} {wait1, wait2} {wait1, crit2}

)ω∅

({wait1} {wait1, wait2} {wait1, crit2}

70 / 343

Page 71: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Overview overview3.2.tex

Introduction

Modelling parallel systems

Linear Time Properties

state-based and linear time viewdefinition of linear time properties ←−←−←−invariants and safetyliveness and fairness

Regular Properties

Linear Temporal Logic

Computation-Tree Logic

Equivalences and Abstraction

71 / 343

Page 72: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Model checking ltb2.4-14a

system P1‖. . .‖PnP1‖. . .‖PnP1‖. . .‖Pn

transitionsystem TTT

requirements

specification specspecspec

model checkerdoes TTT satisfy specspecspec ?

yes no +++ error indication72 / 343

Page 73: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Model checking ltb2.4-14a

syntactic descriptionof P1‖. . .‖PnP1‖. . .‖PnP1‖. . .‖Pn

state graph oftransition system TTT

requirements

specification specspecspec

model checkerdoes TTT satisfy specspecspec ?

yes no +++ error indication

SOS-rules abstractionfrom actions

73 / 343

Page 74: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Model checking ltb2.4-14a

syntactic descriptionof P1‖. . .‖PnP1‖. . .‖PnP1‖. . .‖Pn

state graph oftransition system TTT

requirements

specification specspecspec

model checkerdoes TTT satisfy specspecspec ?

yes no +++ error indication

SOS-rules abstractionfrom actions

74 / 343

Page 75: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Model checking ltb2.4-14a

syntactic descriptionof P1‖. . .‖PnP1‖. . .‖PnP1‖. . .‖Pn

state graph oftransition system TTT

requirements

specification specspecspec ,e.g., LT property

model checkerdoes TTT satisfy specspecspec ?

yes no +++ error indication

SOS-rules abstractionfrom actions

75 / 343

Page 76: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Linear-time properties (LT properties) ltb2.4-14

76 / 343

Page 77: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Linear-time properties (LT properties) ltb2.4-14

for TS over APAPAP without terminal states

An LT property over APAPAP is a language EEE of infinite

words over the alphabet Σ = 2APΣ = 2APΣ = 2AP ,

77 / 343

Page 78: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Linear-time properties (LT properties) ltb2.4-14

for TS over APAPAP without terminal states

An LT property over APAPAP is a language EEE of infinite

words over the alphabet Σ = 2APΣ = 2APΣ = 2AP , i.e., E ⊆(2AP

)ωE ⊆

(2AP

)ωE ⊆

(2AP

)ω.

78 / 343

Page 79: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Linear-time properties (LT properties) ltb2.4-14

for TS over APAPAP without terminal states

An LT property over APAPAP is a language EEE of infinite

words over the alphabet Σ = 2APΣ = 2APΣ = 2AP , i.e., E ⊆(2AP

)ωE ⊆

(2AP

)ωE ⊆

(2AP

)ω.

E.g., for mutual exclusion problems andAP =

{crit1, crit2, . . .

}AP =

{crit1, crit2, . . .

}AP =

{crit1, crit2, . . .

}safety:

MUTEXMUTEXMUTEX ===set of all infinite words A0 A1 A2 . . .A0 A1 A2 . . .A0 A1 A2 . . .over 2AP2AP2AP such that for all i ∈ Ni ∈ Ni ∈ N:

crit1 ∈ Aicrit1 ∈ Aicrit1 ∈ Ai or crit2 ∈ Aicrit2 ∈ Aicrit2 ∈ Ai

79 / 343

Page 80: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

LT properties for mutual exclusion protocols ltb2.4-13

AP ={wait1, crit1, wait2, crit2

}AP =

{wait1, crit1, wait2, crit2

}AP =

{wait1, crit1, wait2, crit2

}safety:

MUTEXMUTEXMUTEX ===set of all infinite words A0 A1 A2 . . .A0 A1 A2 . . .A0 A1 A2 . . .

over 2AP2AP2AP such that for all i ∈ Ni ∈ Ni ∈ N:crit1 ∈ Aicrit1 ∈ Aicrit1 ∈ Ai or crit2 ∈ Aicrit2 ∈ Aicrit2 ∈ Ai

∅ {wait1} {crit1}∅ {wait1} {crit1} . . .∅ {wait1} {crit1}∅ {wait1} {crit1} . . .∅ {wait1} {crit1}∅ {wait1} {crit1} . . . ∈ MUTEX∈ MUTEX∈ MUTEX

80 / 343

Page 81: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

LT properties for mutual exclusion protocols ltb2.4-13

AP ={wait1, crit1, wait2, crit2

}AP =

{wait1, crit1, wait2, crit2

}AP =

{wait1, crit1, wait2, crit2

}safety:

MUTEXMUTEXMUTEX ===set of all infinite words A0 A1 A2 . . .A0 A1 A2 . . .A0 A1 A2 . . .

over 2AP2AP2AP such that for all i ∈ Ni ∈ Ni ∈ N:crit1 ∈ Aicrit1 ∈ Aicrit1 ∈ Ai or crit2 ∈ Aicrit2 ∈ Aicrit2 ∈ Ai

∅ {wait1} {crit1}∅ {wait1} {crit1} . . .∅ {wait1} {crit1}∅ {wait1} {crit1} . . .∅ {wait1} {crit1}∅ {wait1} {crit1} . . . ∈ MUTEX∈ MUTEX∈ MUTEX

∅ {wait1} {crit1} {crit1, wait2} {crit1, crit2} ...∅ {wait1} {crit1} {crit1, wait2} {crit1, crit2} ...∅ {wait1} {crit1} {crit1, wait2} {crit1, crit2} ... ∈ MUTEX ∈ MUTEX ∈ MUTEX

81 / 343

Page 82: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

LT properties for mutual exclusion protocols ltb2.4-13

AP ={wait1, crit1, wait2, crit2

}AP =

{wait1, crit1, wait2, crit2

}AP =

{wait1, crit1, wait2, crit2

}safety:

MUTEXMUTEXMUTEX ===set of all infinite words A0 A1 A2 . . .A0 A1 A2 . . .A0 A1 A2 . . .

over 2AP2AP2AP such that for all i ∈ Ni ∈ Ni ∈ N:crit1 ∈ Aicrit1 ∈ Aicrit1 ∈ Ai or crit2 ∈ Aicrit2 ∈ Aicrit2 ∈ Ai

∅ {wait1} {crit1}∅ {wait1} {crit1} . . .∅ {wait1} {crit1}∅ {wait1} {crit1} . . .∅ {wait1} {crit1}∅ {wait1} {crit1} . . . ∈ MUTEX∈ MUTEX∈ MUTEX

∅ {wait1} {crit1} {crit1, wait2} {crit1, crit2} ...∅ {wait1} {crit1} {crit1, wait2} {crit1, crit2} ...∅ {wait1} {crit1} {crit1, wait2} {crit1, crit2} ... ∈ MUTEX ∈ MUTEX ∈ MUTEX

∅ ∅ {wait1, crit1, crit2} ...∅ ∅ {wait1, crit1, crit2} ...∅ ∅ {wait1, crit1, crit2} ... ∈ MUTEX ∈ MUTEX ∈ MUTEX

82 / 343

Page 83: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

LT properties for mutual exclusion protocols ltb2.4-13

AP ={wait1, crit1, wait2, crit2

}AP =

{wait1, crit1, wait2, crit2

}AP =

{wait1, crit1, wait2, crit2

}safety:

MUTEXMUTEXMUTEX ===set of all infinite words A0 A1 A2 . . .A0 A1 A2 . . .A0 A1 A2 . . .

over 2AP2AP2AP such that for all i ∈ Ni ∈ Ni ∈ N:crit1 ∈ Aicrit1 ∈ Aicrit1 ∈ Ai or crit2 ∈ Aicrit2 ∈ Aicrit2 ∈ Ai

liveness (starvation freedom):

LIVELIVELIVE ===

set of all infinite words A0 A1 A2 . . .A0 A1 A2 . . .A0 A1 A2 . . . s.t.∞∃ i ∈ N.wait1 ∈ Ai =⇒

∞∃ i ∈ N.crit1 ∈ Ai

∞∃ i ∈ N.wait1 ∈ Ai =⇒

∞∃ i ∈ N.crit1 ∈ Ai

∞∃ i ∈ N.wait1 ∈ Ai =⇒

∞∃ i ∈ N.crit1 ∈ Ai

∧∞∃ i ∈ N.wait2 ∈ Ai =⇒

∞∃ i ∈ N.crit2 ∈ Ai

∞∃ i ∈ N.wait2 ∈ Ai =⇒

∞∃ i ∈ N.crit2 ∈ Ai

∞∃ i ∈ N.wait2 ∈ Ai =⇒

∞∃ i ∈ N.crit2 ∈ Ai

83 / 343

Page 84: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Satisfaction relation for LT properties ltb2.4-15

84 / 343

Page 85: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Satisfaction relation for LT properties ltb2.4-15

An LT property over APAPAP is a language EEE of infinite

words over the alphabet Σ = 2APΣ = 2APΣ = 2AP , i.e., E ⊆(2AP

)ωE ⊆

(2AP

)ωE ⊆

(2AP

)ω.

85 / 343

Page 86: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Satisfaction relation for LT properties ltb2.4-15

An LT property over APAPAP is a language EEE of infinite

words over the alphabet Σ = 2APΣ = 2APΣ = 2AP , i.e., E ⊆(2AP

)ωE ⊆

(2AP

)ωE ⊆

(2AP

)ω.

Satisfaction relation |=|=|= for TS:

If TTT is a TS (without terminal states) over APAPAPand EEE an LT property over APAPAP then

T |= ET |= ET |= E iff Traces(T ) ⊆ ETraces(T ) ⊆ ETraces(T ) ⊆ E

86 / 343

Page 87: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Satisfaction relation for LT properties ltb2.4-15

An LT property over APAPAP is a language EEE of infinite

words over the alphabet Σ = 2APΣ = 2APΣ = 2AP , i.e., E ⊆(2AP

)ωE ⊆

(2AP

)ωE ⊆

(2AP

)ω.

Satisfaction relation |=|=|= for TS and states:

If TTT is a TS (without terminal states) over APAPAPand EEE an LT property over APAPAP then

T |= ET |= ET |= E iff Traces(T ) ⊆ ETraces(T ) ⊆ ETraces(T ) ⊆ E

If sss is a state in TTT then

s |= Es |= Es |= E iff Traces(s) ⊆ ETraces(s) ⊆ ETraces(s) ⊆ E

87 / 343

Page 88: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore ltb2.4-16

noncrit1 noncrit2y=1

wait1wait1wait1 noncrit2y=1

noncrit1 wait2wait2wait2y=1

crit1crit1crit1 noncrit2y=0

wait1wait1wait1 wait2wait2wait2y=1

noncrit1 crit2crit2crit2y=0

crit1crit1crit1 wait2wait2wait2y=0

wait1wait1wait1 crit2crit2crit2y=0

TSem |= MUTEXTSem |= MUTEXTSem |= MUTEX

88 / 343

Page 89: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore ltb2.4-16

noncrit1 noncrit2y=1

wait1wait1wait1 noncrit2y=1

noncrit1 wait2wait2wait2y=1

crit1crit1crit1 noncrit2y=0

wait1wait1wait1 wait2wait2wait2y=1

noncrit1 crit2crit2crit2y=0

crit1crit1crit1 wait2wait2wait2y=0

wait1wait1wait1 crit2crit2crit2y=0

TSem |= MUTEXTSem |= MUTEXTSem |= MUTEX , TSem |= LIVETSem |= LIVETSem |= LIVE ?

89/343

Page 90: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore ltb2.4-16

noncrit1 noncrit2y=1

wait1wait1wait1 noncrit2y=1

noncrit1 wait2wait2wait2y=1

crit1crit1crit1 noncrit2y=0

wait1wait1wait1 wait2wait2wait2y=1

noncrit1 crit2crit2crit2y=0

crit1crit1crit1 wait2wait2wait2y=0

wait1wait1wait1 crit2crit2crit2y=0

TSem |= MUTEXTSem |= MUTEXTSem |= MUTEX , TSem |= LIVETSem |= LIVETSem |= LIVE

∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE

90 / 343

Page 91: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore ltb2.4-16

noncrit1 noncrit2y=1

wait1wait1wait1 noncrit2y=1

noncrit1 wait2wait2wait2y=1

crit1crit1crit1 noncrit2y=0

wait1wait1wait1 wait2wait2wait2y=1

noncrit1 crit2crit2crit2y=0

crit1crit1crit1 wait2wait2wait2y=0

wait1wait1wait1 crit2crit2crit2y=0

TSem |= MUTEXTSem |= MUTEXTSem |= MUTEX , TSem |= LIVETSem |= LIVETSem |= LIVE

∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE

91 / 343

Page 92: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore ltb2.4-16

noncrit1 noncrit2y=1

wait1wait1wait1 noncrit2y=1

noncrit1 wait2wait2wait2y=1

crit1crit1crit1 noncrit2y=0

wait1wait1wait1 wait2wait2wait2y=1

noncrit1 crit2crit2crit2y=0

crit1crit1crit1 wait2wait2wait2y=0

wait1wait1wait1 crit2crit2crit2y=0

TSem |= MUTEXTSem |= MUTEXTSem |= MUTEX , TSem |= LIVETSem |= LIVETSem |= LIVE

∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE

92 / 343

Page 93: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore ltb2.4-16

noncrit1 noncrit2y=1

wait1wait1wait1 noncrit2y=1

noncrit1 wait2wait2wait2y=1

crit1crit1crit1 noncrit2y=0

wait1wait1wait1 wait2wait2wait2y=1

noncrit1 crit2crit2crit2y=0

crit1crit1crit1 wait2wait2wait2y=0

wait1wait1wait1 crit2crit2crit2y=0

TSem |= MUTEXTSem |= MUTEXTSem |= MUTEX , TSem |= LIVETSem |= LIVETSem |= LIVE

∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE

93 / 343

Page 94: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore ltb2.4-16

noncrit1 noncrit2y=1

wait1wait1wait1 noncrit2y=1

noncrit1 wait2wait2wait2y=1

crit1crit1crit1 noncrit2y=0

wait1wait1wait1 wait2wait2wait2y=1

noncrit1 crit2crit2crit2y=0

crit1crit1crit1 wait2wait2wait2y=0

wait1wait1wait1 crit2crit2crit2y=0

TSem |= MUTEXTSem |= MUTEXTSem |= MUTEX , TSem |= LIVETSem |= LIVETSem |= LIVE

∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE

94 / 343

Page 95: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore ltb2.4-16

noncrit1 noncrit2y=1

wait1wait1wait1 noncrit2y=1

noncrit1 wait2wait2wait2y=1

crit1crit1crit1 noncrit2y=0

wait1wait1wait1 wait2wait2wait2y=1

noncrit1 crit2crit2crit2y=0

crit1crit1crit1 wait2wait2wait2y=0

wait1wait1wait1 crit2crit2crit2y=0

TSem |= MUTEXTSem |= MUTEXTSem |= MUTEX , TSem |= LIVETSem |= LIVETSem |= LIVE

∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE

95 / 343

Page 96: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore ltb2.4-16

noncrit1 noncrit2y=1

wait1wait1wait1 noncrit2y=1

noncrit1 wait2wait2wait2y=1

crit1crit1crit1 noncrit2y=0

wait1wait1wait1 wait2wait2wait2y=1

noncrit1 crit2crit2crit2y=0

crit1crit1crit1 wait2wait2wait2y=0

wait1wait1wait1 crit2crit2crit2y=0

TSem |= MUTEXTSem |= MUTEXTSem |= MUTEX , TSem |= LIVETSem |= LIVETSem |= LIVE

∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE∅ {wait1}({wait1, wait2} {crit1, wait2}{wait2}

)ω ∈ LIVE

96 / 343

Page 97: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Peterson’s mutual exclusion algorithm ltb2.4-17

97 / 343

Page 98: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Peterson’s mutual exclusion algorithm ltb2.4-17

for competing processes P1P1P1 and P2P2P2,

using three additional shared variablesb1, b2 ∈ {0, 1}b1, b2 ∈ {0, 1}b1, b2 ∈ {0, 1}, x ∈ {1, 2}x ∈ {1, 2}x ∈ {1, 2}

98 / 343

Page 99: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Peterson’s mutual exclusion algorithm ltb2.4-17

for competing processes P1P1P1 and P2P2P2,

using three additional shared variablesb1, b2 ∈ {0, 1}b1, b2 ∈ {0, 1}b1, b2 ∈ {0, 1}, x ∈ {1, 2}x ∈ {1, 2}x ∈ {1, 2}

P1P1P1 P2P2P2noncrit1

wait1

b1:=1; x :=2b1:=1; x :=2b1:=1; x:=2

crit1

x=1 ∨ ¬b2x=1 ∨ ¬b2x=1 ∨ ¬b2

b1:=0b1:=0b1:=0

noncrit2

wait2

b2:=1; x :=1b2:=1; x:=1b2:=1; x:=1

crit2

x=2 ∨ ¬b1x=2 ∨ ¬b1x=2 ∨ ¬b1

b2:=0b2:=0b2:=0

99 / 343

Page 100: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Peterson’s mutual exclusion algorithm ltb2.4-17

noncrit1 noncrit2noncrit1 noncrit2noncrit1 noncrit2x=2x=2x=2

noncrit1 noncrit2noncrit1 noncrit2noncrit1 noncrit2x=1x=1x=1

wait1 noncrit2wait1 noncrit2wait1 noncrit2x=2x=2x=2

noncrit1 wait2noncrit1 wait2noncrit1 wait2x=1x=1x=1

crit1 noncrit2crit1 noncrit2crit1 noncrit2x=2x=2x=2

noncrit1 crit2noncrit1 crit2noncrit1 crit2x=1x=1x=1

wait1 wait2wait1 wait2wait1 wait2x=1x=1x=1

wait1 wait2wait1 wait2wait1 wait2x=2x=2x=2

crit1 wait2crit1 wait2crit1 wait2x=1x=1x=1

wait1 crit2wait1 crit2wait1 crit2x=2x=2x=2

TPet |= MUTEXTPet |= MUTEXTPet |= MUTEX

100 / 343

Page 101: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Peterson’s mutual exclusion algorithm ltb2.4-17

noncrit1 noncrit2noncrit1 noncrit2noncrit1 noncrit2x=2x=2x=2

noncrit1 noncrit2noncrit1 noncrit2noncrit1 noncrit2x=1x=1x=1

wait1 noncrit2wait1 noncrit2wait1 noncrit2x=2x=2x=2

noncrit1 wait2noncrit1 wait2noncrit1 wait2x=1x=1x=1

crit1 noncrit2crit1 noncrit2crit1 noncrit2x=2x=2x=2

noncrit1 crit2noncrit1 crit2noncrit1 crit2x=1x=1x=1

wait1 wait2wait1 wait2wait1 wait2x=1x=1x=1

wait1 wait2wait1 wait2wait1 wait2x=2x=2x=2

crit1 wait2crit1 wait2crit1 wait2x=1x=1x=1

wait1 crit2wait1 crit2wait1 crit2x=2x=2x=2

TPet |= MUTEXTPet |= MUTEXTPet |= MUTEX and TPet |= LIVETPet |= LIVETPet |= LIVE

101 / 343

Page 102: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Peterson’s mutual exclusion algorithm ltb2.4-17

noncrit1 noncrit2noncrit1 noncrit2noncrit1 noncrit2x=2x=2x=2

noncrit1 noncrit2noncrit1 noncrit2noncrit1 noncrit2x=1x=1x=1

wait1 noncrit2wait1 noncrit2wait1 noncrit2x=2x=2x=2

noncrit1 wait2noncrit1 wait2noncrit1 wait2x=1x=1x=1

crit1 noncrit2crit1 noncrit2crit1 noncrit2x=2x=2x=2

noncrit1 crit2noncrit1 crit2noncrit1 crit2x=1x=1x=1

wait1 wait2wait1 wait2wait1 wait2x=1x=1x=1

wait1 wait2wait1 wait2wait1 wait2x=2x=2x=2

crit1 wait2crit1 wait2crit1 wait2x=1x=1x=1

wait1 crit2wait1 crit2wait1 crit2x=2x=2x=2

TPet |= MUTEXTPet |= MUTEXTPet |= MUTEX and TPet |= LIVETPet |= LIVETPet |= LIVE

102 / 343

Page 103: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Peterson’s mutual exclusion algorithm ltb2.4-17

noncrit1 noncrit2noncrit1 noncrit2noncrit1 noncrit2x=2x=2x=2

noncrit1 noncrit2noncrit1 noncrit2noncrit1 noncrit2x=1x=1x=1

wait1 noncrit2wait1 noncrit2wait1 noncrit2x=2x=2x=2

noncrit1 wait2noncrit1 wait2noncrit1 wait2x=1x=1x=1

crit1 noncrit2crit1 noncrit2crit1 noncrit2x=2x=2x=2

noncrit1 crit2noncrit1 crit2noncrit1 crit2x=1x=1x=1

wait1 wait2wait1 wait2wait1 wait2x=1x=1x=1

wait1 wait2wait1 wait2wait1 wait2x=2x=2x=2

crit1 wait2crit1 wait2crit1 wait2x=1x=1x=1

wait1 crit2wait1 crit2wait1 crit2x=2x=2x=2

TPet |= MUTEXTPet |= MUTEXTPet |= MUTEX and TPet |= LIVETPet |= LIVETPet |= LIVE

103 / 343

Page 104: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Peterson’s mutual exclusion algorithm ltb2.4-17

noncrit1 noncrit2noncrit1 noncrit2noncrit1 noncrit2x=2x=2x=2

noncrit1 noncrit2noncrit1 noncrit2noncrit1 noncrit2x=1x=1x=1

wait1 noncrit2wait1 noncrit2wait1 noncrit2x=2x=2x=2

noncrit1 wait2noncrit1 wait2noncrit1 wait2x=1x=1x=1

crit1 noncrit2crit1 noncrit2crit1 noncrit2x=2x=2x=2

noncrit1 crit2noncrit1 crit2noncrit1 crit2x=1x=1x=1

wait1 wait2wait1 wait2wait1 wait2x=1x=1x=1

wait1 wait2wait1 wait2wait1 wait2x=2x=2x=2

crit1 wait2crit1 wait2crit1 wait2x=1x=1x=1

wait1 crit2wait1 crit2wait1 crit2x=2x=2x=2

TPet |= MUTEXTPet |= MUTEXTPet |= MUTEX and TPet |= LIVETPet |= LIVETPet |= LIVE

104 / 343

Page 105: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Peterson’s mutual exclusion algorithm ltb2.4-17

noncrit1 noncrit2noncrit1 noncrit2noncrit1 noncrit2x=2x=2x=2

noncrit1 noncrit2noncrit1 noncrit2noncrit1 noncrit2x=1x=1x=1

wait1 noncrit2wait1 noncrit2wait1 noncrit2x=2x=2x=2

noncrit1 wait2noncrit1 wait2noncrit1 wait2x=1x=1x=1

crit1 noncrit2crit1 noncrit2crit1 noncrit2x=2x=2x=2

noncrit1 crit2noncrit1 crit2noncrit1 crit2x=1x=1x=1

wait1 wait2wait1 wait2wait1 wait2x=1x=1x=1

wait1 wait2wait1 wait2wait1 wait2x=2x=2x=2

crit1 wait2crit1 wait2crit1 wait2x=1x=1x=1

wait1 crit2wait1 crit2wait1 crit2x=2x=2x=2

TPet |= MUTEXTPet |= MUTEXTPet |= MUTEX and TPet |= LIVETPet |= LIVETPet |= LIVE

105 / 343

Page 106: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

LT properties and trace inclusion ltb2.4-LT-trace

An LT property over APAPAP is a language EEE of infinite

words over the alphabet Σ = 2APΣ = 2APΣ = 2AP , i.e., E ⊆(2AP

)ωE ⊆

(2AP

)ωE ⊆

(2AP

)ω.

If TTT is a TS over APAPAP then T |= ET |= ET |= E iff Traces(T ) ⊆ ETraces(T ) ⊆ ETraces(T ) ⊆ E .

106 / 343

Page 107: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

LT properties and trace inclusion ltb2.4-LT-trace

An LT property over APAPAP is a language EEE of infinite

words over the alphabet Σ = 2APΣ = 2APΣ = 2AP , i.e., E ⊆(2AP

)ωE ⊆

(2AP

)ωE ⊆

(2AP

)ω.

If TTT is a TS over APAPAP then T |= ET |= ET |= E iff Traces(T ) ⊆ ETraces(T ) ⊆ ETraces(T ) ⊆ E .

Consequence of these definitions:

If T1T1T1 and T2T2T2 are TS over APAPAP then for allLT properties EEE over APAPAP :

Traces(T1) ⊆ Traces(T2)Traces(T1) ⊆ Traces(T2)Traces(T1) ⊆ Traces(T2) ∧∧∧ T2 |= ET2 |= ET2 |= E =⇒=⇒=⇒ T1 |= ET1 |= ET1 |= E

107 / 343

Page 108: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

LT properties and trace inclusion ltb2.4-LT-trace

An LT property over APAPAP is a language EEE of infinite

words over the alphabet Σ = 2APΣ = 2APΣ = 2AP , i.e., E ⊆(2AP

)ωE ⊆

(2AP

)ωE ⊆

(2AP

)ω.

If TTT is a TS over APAPAP then T |= ET |= ET |= E iff Traces(T ) ⊆ ETraces(T ) ⊆ ETraces(T ) ⊆ E .

Consequence of these definitions:

If T1T1T1 and T2T2T2 are TS over APAPAP then for allLT properties EEE over APAPAP :

Traces(T1) ⊆ Traces(T2)Traces(T1) ⊆ Traces(T2)Traces(T1) ⊆ Traces(T2) ∧∧∧ T2 |= ET2 |= ET2 |= E =⇒=⇒=⇒ T1 |= ET1 |= ET1 |= E

↖ ↗↖ ↗↖ ↗note: Traces(T1) ⊆ Traces(T2) ⊆ ETraces(T1) ⊆ Traces(T2) ⊆ ETraces(T1) ⊆ Traces(T2) ⊆ E

108 / 343

Page 109: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

LT properties and trace inclusion ltb2.4-LT-trace

An LT property over APAPAP is a language EEE of infinite

words over the alphabet Σ = 2APΣ = 2APΣ = 2AP , i.e., E ⊆(2AP

)ωE ⊆

(2AP

)ωE ⊆

(2AP

)ω.

If TTT is a TS over APAPAP then T |= ET |= ET |= E iff Traces(T ) ⊆ ETraces(T ) ⊆ ETraces(T ) ⊆ E .

If T1T1T1 and T2T2T2 are TS over APAPAP then thefollowing statements are equivalent:

(1) Traces(T1) ⊆ Traces(T2)Traces(T1) ⊆ Traces(T2)Traces(T1) ⊆ Traces(T2)

(2) for all LT-properties EEE over APAPAP :whenever T2 |= ET2 |= ET2 |= E then T1 |= ET1 |= ET1 |= E

109 / 343

Page 110: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

LT properties and trace inclusion ltb2.4-LT-trace

An LT property over APAPAP is a language EEE of infinite

words over the alphabet Σ = 2APΣ = 2APΣ = 2AP , i.e., E ⊆(2AP

)ωE ⊆

(2AP

)ωE ⊆

(2AP

)ω.

If TTT is a TS over APAPAP then T |= ET |= ET |= E iff Traces(T ) ⊆ ETraces(T ) ⊆ ETraces(T ) ⊆ E .

If T1T1T1 and T2T2T2 are TS over APAPAP then thefollowing statements are equivalent:

(1) Traces(T1) ⊆ Traces(T2)Traces(T1) ⊆ Traces(T2)Traces(T1) ⊆ Traces(T2)

(2) for all LT-properties EEE over APAPAP :whenever T2 |= ET2 |= ET2 |= E then T1 |= ET1 |= ET1 |= E

(1) =⇒=⇒=⇒ (2):√√√

110 / 343

Page 111: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

LT properties and trace inclusion ltb2.4-LT-trace

An LT property over APAPAP is a language EEE of infinite

words over the alphabet Σ = 2APΣ = 2APΣ = 2AP , i.e., E ⊆(2AP

)ωE ⊆

(2AP

)ωE ⊆

(2AP

)ω.

If TTT is a TS over APAPAP then T |= ET |= ET |= E iff Traces(T ) ⊆ ETraces(T ) ⊆ ETraces(T ) ⊆ E .

If T1T1T1 and T2T2T2 are TS over APAPAP then thefollowing statements are equivalent:

(1) Traces(T1) ⊆ Traces(T2)Traces(T1) ⊆ Traces(T2)Traces(T1) ⊆ Traces(T2)

(2) for all LT-properties EEE over APAPAP :whenever T2 |= ET2 |= ET2 |= E then T1 |= ET1 |= ET1 |= E

(2) =⇒=⇒=⇒ (1): consider E = Traces(T2)E = Traces(T2)E = Traces(T2)111 / 343

Page 112: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Relevance of trace inclusion ltb2.4-19a

Trace inclusion appears naturally

• as an implementation/refinement relation

• when resolving nondeterminism

• in the context of abstractions

112 / 343

Page 113: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Software design cycle ltb2.4-19

requirements

specification

design TiTiTi

design Ti+1Ti+1Ti+1

refinement

113 / 343

Page 114: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Software design cycle ltb2.4-19

requirements

specification

design TiTiTi

design Ti+1Ti+1Ti+1

←−←−←− LT property EEE

←−←−←− Ti |= ETi |= ETi |= E

refinement

114 / 343

Page 115: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Software design cycle ltb2.4-19

requirements

specification

design TiTiTi

design Ti+1Ti+1Ti+1

←−←−←− LT property EEE

←−←−←− Ti |= ETi |= ETi |= E

←−←−←− Ti+1 � TiTi+1 � TiTi+1 � Ti

refinement

implementation/refinement relation ���:

Ti+1 � TiTi+1 � TiTi+1 � Ti iff “Ti+1Ti+1Ti+1 correctly implements TiTiTi”115 / 343

Page 116: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace inclusion as an implementation relation ltb2.4-19

requirements

specification

design TiTiTi

design Ti+1Ti+1Ti+1

←−←−←− Ti |= ETi |= ETi |= E

←−←−←− Ti+1 � TiTi+1 � TiTi+1 � Ti

trace inclusion

Ti+1 � TiTi+1 � TiTi+1 � Ti iff

Traces(Ti+1) ⊆ Traces(Ti)Traces(Ti+1) ⊆ Traces(Ti)Traces(Ti+1) ⊆ Traces(Ti)

refinement

implementation/refinement relation ���:

Ti+1 � TiTi+1 � TiTi+1 � Ti iff “Ti+1Ti+1Ti+1 correctly implements TiTiTi”116 / 343

Page 117: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace inclusion as an implementation relation ltb2.4-19

requirements

specification

design TiTiTi

design Ti+1Ti+1Ti+1

←−←−←− Ti |= ETi |= ETi |= E

←−←−←− Ti+1 � TiTi+1 � TiTi+1 � Ti implies Ti+1 |= ETi+1 |= ETi+1 |= E

trace inclusion

Ti+1 � TiTi+1 � TiTi+1 � Ti iff

Traces(Ti+1) ⊆ Traces(Ti)Traces(Ti+1) ⊆ Traces(Ti)Traces(Ti+1) ⊆ Traces(Ti)

refinement

implementation/refinement relation ���:

Ti+1 � TiTi+1 � TiTi+1 � Ti iff “Ti+1Ti+1Ti+1 correctly implements TiTiTi”117 / 343

Page 118: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore ltb2.4-20

n1 n2 y=1n1 n2 y=1n1 n2 y=1

w1 n2 y=1w1 n2 y=1w1 n2 y=1 n1 w2 y=1n1 w2 y=1n1 w2 y=1

c1 n2 y=0c1 n2 y=0c1 n2 y=0 w1 w2 y=1w1 w2 y=1w1 w2 y=1 n1 c2 y=0n1 c2 y=0n1 c2 y=0

c1 w2 y=0c1 w2 y=0c1 w2 y=0 w1 c2 y=0w1 c2 y=0w1 c2 y=0

118 / 343

Page 119: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore ltb2.4-20

competition in state〈wait1 wait2 y=1〉〈wait1 wait2 y=1〉〈wait1 wait2 y=1〉

n1 n2 y=1n1 n2 y=1n1 n2 y=1

w1 n2 y=1w1 n2 y=1w1 n2 y=1 n1 w2 y=1n1 w2 y=1n1 w2 y=1

c1 n2 y=0c1 n2 y=0c1 n2 y=0 w1 w2 y=1w1 w2 y=1w1 w2 y=1 n1 c2 y=0n1 c2 y=0n1 c2 y=0

c1 w2 y=0c1 w2 y=0c1 w2 y=0 w1 c2 y=0w1 c2 y=0w1 c2 y=0

119 / 343

Page 120: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore ltb2.4-20

competition in state〈wait1 wait2 y=1〉〈wait1 wait2 y=1〉〈wait1 wait2 y=1〉

resolve the nondeterminism by givingpriority to process P1P1P1

n1 n2 y=1n1 n2 y=1n1 n2 y=1

w1 n2 y=1w1 n2 y=1w1 n2 y=1 n1 w2 y=1n1 w2 y=1n1 w2 y=1

c1 n2 y=0c1 n2 y=0c1 n2 y=0 w1 w2 y=1w1 w2 y=1w1 w2 y=1 n1 c2 y=0n1 c2 y=0n1 c2 y=0

c1 w2 y=0c1 w2 y=0c1 w2 y=0 w1 c2 y=0w1 c2 y=0w1 c2 y=0X

120/343

Page 121: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore ltb2.4-20

TSemTSemTSem n1 n2 y=1n1 n2 y=1n1 n2 y=1

w1 n2 y=1w1 n2 y=1w1 n2 y=1 n1 w2 y=1n1 w2 y=1n1 w2 y=1

c1 n2 y=0c1 n2 y=0c1 n2 y=0 w1 w2 y=1w1 w2 y=1w1 w2 y=1 n1 c2 y=0n1 c2 y=0n1 c2 y=0

c1 w2 y=0c1 w2 y=0c1 w2 y=0 w1 c2 y=0w1 c2 y=0w1 c2 y=0

T ′SemT ′SemT ′Semn1 n2 y=1n1 n2 y=1n1 n2 y=1

w1 n2 y=1w1 n2 y=1w1 n2 y=1 n1 w2 y=1n1 w2 y=1n1 w2 y=1

c1 n2 y=0c1 n2 y=0c1 n2 y=0 w1 w2 y=1w1 w2 y=1w1 w2 y=1 n1 c2 y=0n1 c2 y=0n1 c2 y=0

c1 w2 y=0c1 w2 y=0c1 w2 y=0 w1 c2 y=0w1 c2 y=0w1 c2 y=0

121 / 343

Page 122: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore ltb2.4-20

TSemTSemTSem n1 n2 y=1n1 n2 y=1n1 n2 y=1

w1 n2 y=1w1 n2 y=1w1 n2 y=1 n1 w2 y=1n1 w2 y=1n1 w2 y=1

c1 n2 y=0c1 n2 y=0c1 n2 y=0 w1 w2 y=1w1 w2 y=1w1 w2 y=1 n1 c2 y=0n1 c2 y=0n1 c2 y=0

c1 w2 y=0c1 w2 y=0c1 w2 y=0 w1 c2 y=0w1 c2 y=0w1 c2 y=0

T ′SemT ′SemT ′Semn1 n2 y=1n1 n2 y=1n1 n2 y=1

w1 n2 y=1w1 n2 y=1w1 n2 y=1 n1 w2 y=1n1 w2 y=1n1 w2 y=1

c1 n2 y=0c1 n2 y=0c1 n2 y=0 w1 w2 y=1w1 w2 y=1w1 w2 y=1 n1 c2 y=0n1 c2 y=0n1 c2 y=0

c1 w2 y=0c1 w2 y=0c1 w2 y=0 w1 c2 y=0w1 c2 y=0w1 c2 y=0

Paths(T ′Sem) ⊆ Paths(TSem)Paths(T ′Sem) ⊆ Paths(TSem)Paths(T ′Sem) ⊆ Paths(TSem)122 / 343

Page 123: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore ltb2.4-20

TSemTSemTSem n1 n2 y=1n1 n2 y=1n1 n2 y=1

w1 n2 y=1w1 n2 y=1w1 n2 y=1 n1 w2 y=1n1 w2 y=1n1 w2 y=1

c1 n2 y=0c1 n2 y=0c1 n2 y=0 w1 w2 y=1w1 w2 y=1w1 w2 y=1 n1 c2 y=0n1 c2 y=0n1 c2 y=0

c1 w2 y=0c1 w2 y=0c1 w2 y=0 w1 c2 y=0w1 c2 y=0w1 c2 y=0

T ′SemT ′SemT ′Semn1 n2 y=1n1 n2 y=1n1 n2 y=1

w1 n2 y=1w1 n2 y=1w1 n2 y=1 n1 w2 y=1n1 w2 y=1n1 w2 y=1

c1 n2 y=0c1 n2 y=0c1 n2 y=0 w1 w2 y=1w1 w2 y=1w1 w2 y=1 n1 c2 y=0n1 c2 y=0n1 c2 y=0

c1 w2 y=0c1 w2 y=0c1 w2 y=0 w1 c2 y=0w1 c2 y=0w1 c2 y=0

Traces(T ′Sem) ⊆ Traces(TSem)Traces(T ′Sem) ⊆ Traces(TSem)Traces(T ′Sem) ⊆ Traces(TSem) for any APAPAP123 / 343

Page 124: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Mutual exclusion with semaphore ltb2.4-20

TSemTSemTSem n1 n2 y=1n1 n2 y=1n1 n2 y=1

w1 n2 y=1w1 n2 y=1w1 n2 y=1 n1 w2 y=1n1 w2 y=1n1 w2 y=1

c1 n2 y=0c1 n2 y=0c1 n2 y=0 w1 w2 y=1w1 w2 y=1w1 w2 y=1 n1 c2 y=0n1 c2 y=0n1 c2 y=0

c1 w2 y=0c1 w2 y=0c1 w2 y=0 w1 c2 y=0w1 c2 y=0w1 c2 y=0

T ′SemT ′SemT ′Sem

e.g., for AP =AP =AP ={crit1, crit2}{crit1, crit2}{crit1, crit2}n1 n2 y=1n1 n2 y=1n1 n2 y=1

w1 n2 y=1w1 n2 y=1w1 n2 y=1 n1 w2 y=1n1 w2 y=1n1 w2 y=1

c1 n2 y=0c1 n2 y=0c1 n2 y=0 w1 w2 y=1w1 w2 y=1w1 w2 y=1 n1 c2 y=0n1 c2 y=0n1 c2 y=0

c1 w2 y=0c1 w2 y=0c1 w2 y=0 w1 c2 y=0w1 c2 y=0w1 c2 y=0

Traces(TSem) |= ETraces(TSem) |= ETraces(TSem) |= E implies Traces(T ′Sem) |= ETraces(T ′Sem) |= ETraces(T ′Sem) |= E for any EEE124 / 343

Page 125: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Relevance of trace inclusion ltb2.4-20a

Trace inclusion appears naturally

• as an implementation/refinement relation

• when resolving nondeterminism ←−←−←−e.g., Traces(T ′Sem) ⊆ Traces(TSem)Traces(T ′Sem) ⊆ Traces(TSem)Traces(T ′Sem) ⊆ Traces(TSem)

• in the context of abstractions

125 / 343

Page 126: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Relevance of trace inclusion ltb2.4-20a

Trace inclusion appears naturally

• as an implementation/refinement relation

• when resolving nondeterminism↑↑↑

whenever T ′T ′T ′ results from TTT by a scheduling policyfor resolving nondeterministic choices in TTT then

Traces(T ′) ⊆ Traces(T )Traces(T ′) ⊆ Traces(T )Traces(T ′) ⊆ Traces(T )

• in the context of abstractions

126 / 343

Page 127: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Relevance of trace inclusion ltb2.4-20b

Trace inclusion appears naturally

• as an implementation/refinement relation

• when resolving nondeterminism

• in the context of abstractions ←−←−←−

127 / 343

Page 128: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace inclusion and data abstraction ltb2.4-21

...

...

...x :=7; y :=5;x :=7; y :=5;x :=7; y :=5;WHILE x>0x>0x>0 DO

x :=x−1x :=x−1x :=x−1;y :=y+1y :=y+1y :=y+1

OD.........

128 / 343

Page 129: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace inclusion and data abstraction ltb2.4-21

...

...

...�0�0�0 x :=7; y :=5;x :=7; y :=5;x :=7; y :=5;�1�1�1 WHILE x>0x>0x>0 DO

x :=x−1x :=x−1x :=x−1;y :=y+1y :=y+1y :=y+1

OD

�2�2�2.........

does �2 ∧ odd(y)�2 ∧ odd(y)�2 ∧ odd(y)never hold ?

129/343

Page 130: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace inclusion and data abstraction ltb2.4-21

...

...

...�0�0�0 x :=7; y :=5;x :=7; y :=5;x :=7; y :=5;�1�1�1 WHILE x>0x>0x>0 DO

x :=x−1x :=x−1x :=x−1;y :=y+1y :=y+1y :=y+1

OD

�2�2�2.........

does �2 ∧ odd(y)�2 ∧ odd(y)�2 ∧ odd(y)never hold ?

programgraph

�0�0�0 �1�1�1 �2�2�2x :=7x :=7x :=7y :=5y :=5y :=5

x≤0x≤0x≤0

x>0 :x>0 :x>0 :x :=x−1x :=x−1x :=x−1;y :=y+1y :=y+1y :=y+1

130 / 343

Page 131: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace inclusion and data abstraction ltb2.4-21

...

...

...�0�0�0 x :=7; y :=5;x :=7; y :=5;x :=7; y :=5;�1�1�1 WHILE x>0x>0x>0 DO

x :=x−1x :=x−1x :=x−1;y :=y+1y :=y+1y :=y+1

OD

�2�2�2.........

does �2 ∧ odd(y)�2 ∧ odd(y)�2 ∧ odd(y)never hold ?

programgraph

�0�0�0 �1�1�1 �2�2�2x :=7x :=7x :=7y :=5y :=5y :=5

x≤0x≤0x≤0

x>0 :x>0 :x>0 :x :=x−1x :=x−1x :=x−1;y :=y+1y :=y+1y :=y+1

let TTT be the associated TS

←−←−←− T |=T |=T |= “never �2 ∧ odd(y)�2 ∧ odd(y)�2 ∧ odd(y)” ?

131/343

Page 132: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace inclusion and data abstraction ltb2.4-21

...

...

...�0�0�0 x :=7; y :=5;x :=7; y :=5;x :=7; y :=5;�1�1�1 WHILE x>0x>0x>0 DO

x :=x−1x :=x−1x :=x−1;y :=y+1y :=y+1y :=y+1

OD

�2�2�2.........

does �2 ∧ odd(y)�2 ∧ odd(y)�2 ∧ odd(y)never hold ?

data abstraction w.r.t.the predicatesx>0x>0x>0, x=0x=0x=0, x ≡2 yx ≡2 yx ≡2 y

programgraph

�0�0�0 �1�1�1 �2�2�2x :=7x :=7x :=7y :=5y :=5y :=5

x≤0x≤0x≤0

x>0 :x>0 :x>0 :x :=x−1x :=x−1x :=x−1;y :=y+1y :=y+1y :=y+1

let TTT be the associated TS

←−←−←− T |=T |=T |= “never �2 ∧ odd(y)�2 ∧ odd(y)�2 ∧ odd(y)” ?

132/343

Page 133: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace inclusion and data abstraction ltb2.4-21

...

...

...�0�0�0 x :=7; y :=5;x :=7; y :=5;x :=7; y :=5;�1�1�1 WHILE x>0x>0x>0 DO

x :=x−1x :=x−1x :=x−1;y :=y+1y :=y+1y :=y+1

OD

�2�2�2.........

does �2 ∧ odd(y)�2 ∧ odd(y)�2 ∧ odd(y)never hold ?

data abstraction w.r.t.the predicatesx>0x>0x>0, x=0x=0x=0, x ≡2 yx ≡2 yx ≡2 y ←−←−←− i.e., x−yx−yx−y is even

programgraph

�0�0�0 �1�1�1 �2�2�2x :=7x :=7x :=7y :=5y :=5y :=5

x≤0x≤0x≤0

x>0 :x>0 :x>0 :x :=x−1x :=x−1x :=x−1;y :=y+1y :=y+1y :=y+1

let TTT be the associated TS

←−←−←− T |=T |=T |= “never �2 ∧ odd(y)�2 ∧ odd(y)�2 ∧ odd(y)” ?

133/343

Page 134: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace inclusion and data abstraction ltb2.4-21

...

...

...�0�0�0 x :=7; y :=5;x :=7; y :=5;x :=7; y :=5;�1�1�1 WHILE x>0x>0x>0 DO

x :=x−1x :=x−1x :=x−1;y :=y+1y :=y+1y :=y+1

OD

�2�2�2.........

does �2 ∧ odd(y)�2 ∧ odd(y)�2 ∧ odd(y)never hold ?

data abstraction w.r.t.the predicatesx>0x>0x>0, x=0x=0x=0, x ≡2 yx ≡2 yx ≡2 y

programgraph

�0�0�0 �1�1�1 �2�2�2x :=7x :=7x :=7y :=5y :=5y :=5

x≤0x≤0x≤0

x>0 :x>0 :x>0 :x :=x−1x :=x−1x :=x−1;y :=y+1y :=y+1y :=y+1

let TTT be the associated TS

�0�0�0

. . .. . .. . .�1�1�1

x>0x>0x>0x ≡2 yx ≡2 yx ≡2 y

�2�2�2

x=0x=0x=0x ≡2 yx ≡2 yx ≡2 y

abstract transition system T ′T ′T ′

134 / 343

Page 135: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace inclusion and data abstraction ltb2.4-21

...

...

...�0�0�0 x :=7; y :=5;x :=7; y :=5;x :=7; y :=5;�1�1�1 WHILE x>0x>0x>0 DO

x :=x−1x :=x−1x :=x−1;y :=y+1y :=y+1y :=y+1

OD

�2�2�2.........

does �2 ∧ odd(y)�2 ∧ odd(y)�2 ∧ odd(y)never hold ?

data abstraction w.r.t.the predicatesx>0x>0x>0, x=0x=0x=0, x ≡2 yx ≡2 yx ≡2 y

programgraph

�0�0�0 �1�1�1 �2�2�2x :=7x :=7x :=7y :=5y :=5y :=5

x≤0x≤0x≤0

x>0 :x>0 :x>0 :x :=x−1x :=x−1x :=x−1;y :=y+1y :=y+1y :=y+1

let TTT be the associated TS

�0�0�0

. . .. . .. . .�1�1�1

x>0x>0x>0x ≡2 yx ≡2 yx ≡2 y

�2�2�2

x=0x=0x=0x ≡2 yx ≡2 yx ≡2 y

T ′ |=T ′ |=T ′ |= “never �2 ∧ odd(y)�2 ∧ odd(y)�2 ∧ odd(y)”

135 / 343

Page 136: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace inclusion and data abstraction ltb2.4-21

...

...

...�0�0�0 x :=7; y :=5;x :=7; y :=5;x :=7; y :=5;�1�1�1 WHILE x>0x>0x>0 DO

x :=x−1x :=x−1x :=x−1;y :=y+1y :=y+1y :=y+1

OD

�2�2�2.........

does �2 ∧ odd(y)�2 ∧ odd(y)�2 ∧ odd(y)never hold ?

data abstraction w.r.t.the predicatesx>0x>0x>0, x=0x=0x=0, x ≡2 yx ≡2 yx ≡2 y

programgraph

�0�0�0 �1�1�1 �2�2�2x :=7x :=7x :=7y :=5y :=5y :=5

x≤0x≤0x≤0

x>0 :x>0 :x>0 :x :=x−1x :=x−1x :=x−1;y :=y+1y :=y+1y :=y+1

let TTT be the associated TS

�0�0�0

. . .. . .. . .�1�1�1

x>0x>0x>0x ≡2 yx ≡2 yx ≡2 y

�2�2�2

x=0x=0x=0x ≡2 yx ≡2 yx ≡2 y

T ′ |=T ′ |=T ′ |= “never �2 ∧ odd(y)�2 ∧ odd(y)�2 ∧ odd(y)”

Traces(T ) ⊆ Traces(T ′)Traces(T ) ⊆ Traces(T ′)Traces(T ) ⊆ Traces(T ′)136 / 343

Page 137: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace inclusion and data abstraction ltb2.4-21

...

...

...�0�0�0 x :=7; y :=5;x :=7; y :=5;x :=7; y :=5;�1�1�1 WHILE x>0x>0x>0 DO

x :=x−1x :=x−1x :=x−1;y :=y+1y :=y+1y :=y+1

OD

�2�2�2.........

does �2 ∧ odd(y)�2 ∧ odd(y)�2 ∧ odd(y)never hold ?

programgraph

�0�0�0 �1�1�1 �2�2�2x :=7x :=7x :=7y :=5y :=5y :=5

x≤0x≤0x≤0

x>0 :x>0 :x>0 :x :=x−1x :=x−1x :=x−1;y :=y+1y :=y+1y :=y+1

let TTT be the associated TS

�0�0�0

. . .. . .. . .�1�1�1

x>0x>0x>0x ≡2 yx ≡2 yx ≡2 y

�2�2�2

x=0x=0x=0x ≡2 yx ≡2 yx ≡2 y

T ′ |=T ′ |=T ′ |= “never �2 ∧ odd(y)�2 ∧ odd(y)�2 ∧ odd(y)”

Traces(T ) ⊆ Traces(T ′)Traces(T ) ⊆ Traces(T ′)Traces(T ) ⊆ Traces(T ′)T |=T |=T |= “never �2 ∧ odd(y)�2 ∧ odd(y)�2 ∧ odd(y)”

{137 / 343

Page 138: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace equivalence ltb2.4-21a

138 / 343

Page 139: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace equivalence ltb2.4-21a

Transition systems T1T1T1 and T2T2T2 over the same set APAPAPof atomic propositions are called trace equivalent iff

Traces(T1) = Traces(T2)Traces(T1) = Traces(T2)Traces(T1) = Traces(T2)

139 / 343

Page 140: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace equivalence ltb2.4-21a

Transition systems T1T1T1 and T2T2T2 over the same set APAPAPof atomic propositions are called trace equivalent iff

Traces(T1) = Traces(T2)Traces(T1) = Traces(T2)Traces(T1) = Traces(T2)

i.e., trace equivalence requires trace inclusion inboth directions

140 / 343

Page 141: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace equivalence ltb2.4-21a

Transition systems T1T1T1 and T2T2T2 over the same set APAPAPof atomic propositions are called trace equivalent iff

Traces(T1) = Traces(T2)Traces(T1) = Traces(T2)Traces(T1) = Traces(T2)

i.e., trace equivalence requires trace inclusion inboth directions

Trace equivalent TS satisfy the same LT properties

141/ 343

Page 142: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

LT properties and trace relations ltb2.4-traceequiv

Let T1T1T1 and T2T2T2 be TS over APAPAP .

The following statements are equivalent:

(1) Traces(T1) ⊆ Traces(T2)Traces(T1) ⊆ Traces(T2)Traces(T1) ⊆ Traces(T2)

(2) for all LT-properties EEE : T2 |= ET2 |= ET2 |= E =⇒=⇒=⇒ T1 |= ET1 |= ET1 |= E

The following statements are equivalent:

(1) Traces(T1) = Traces(T2)Traces(T1) = Traces(T2)Traces(T1) = Traces(T2)

(2) for all LT-properties EEE : T1 |= ET1 |= ET1 |= E iff T2 |= ET2 |= ET2 |= E

142 / 343

Page 143: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace equivalent beverage machines ltb2.4-22

pay

select

spritecoke

pay

paid c paid s

spritecoke

143 / 343

Page 144: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace equivalent beverage machines ltb2.4-22

pay

select

spritecoke

pay

paid c paid s

spritecoke

set of atomic propositions AP = {pay , coke, sprite}AP = {pay , coke, sprite}AP = {pay , coke, sprite}

144 / 343

Page 145: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace equivalent beverage machines ltb2.4-22

pay

select

spritecoke

pay

paid c paid s

spritecoke

set of atomic propositions AP = {pay , coke, sprite}AP = {pay , coke, sprite}AP = {pay , coke, sprite}

145 / 343

Page 146: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace equivalent beverage machines ltb2.4-22

pay

select

spritecoke

pay

paid c paid s

spritecoke

set of atomic propositions AP = {pay , coke, sprite}AP = {pay , coke, sprite}AP = {pay , coke, sprite}Traces(T1) = Traces(T2) =Traces(T1) = Traces(T2) =Traces(T1) = Traces(T2) = set of all infinite words

{pay}∅ {drink1} {pay}∅ {drink2} . . .{pay}∅ {drink1} {pay}∅ {drink2} . . .{pay}∅ {drink1} {pay}∅ {drink2} . . .

where drink1, drink2, . . . ∈ {coke, sprite}drink1, drink2, . . . ∈ {coke, sprite}drink1, drink2, . . . ∈ {coke, sprite}146 / 343

Page 147: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Trace equivalent beverage machines ltb2.4-22

pay

select

spritecoke

pay

paid c paid s

spritecoke

set of atomic propositions AP = {pay , coke, sprite}AP = {pay , coke, sprite}AP = {pay , coke, sprite}Traces(T1) = Traces(T2) =Traces(T1) = Traces(T2) =Traces(T1) = Traces(T2) = set of all infinite words

{pay}∅ {drink1} {pay}∅ {drink2} . . .{pay}∅ {drink1} {pay}∅ {drink2} . . .{pay}∅ {drink1} {pay}∅ {drink2} . . .

T1T1T1 and T2T2T2 satisfy the same LT-properties over APAPAP147 / 343

Page 148: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Overview overview3.3

Introduction

Modelling parallel systems

Linear Time Properties

state-based and linear time viewdefinition of linear time propertiesinvariants and safety ←−←−←−liveness and fairness

Regular Properties

Linear Temporal Logic

Computation-Tree Logic

Equivalences and Abstraction

148 / 343

Page 149: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Classification of LT-properties is2.5-1

safety properties “nothing bad will happen”

liveness properties “something good will happen”

149 / 343

Page 150: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Classification of LT-properties is2.5-1

safety properties “nothing bad will happen”

examples:

• mutual exclusion

• deadlock freedom• “every red phase is preceded by a yellow phase”

liveness properties “something good will happen”

150 / 343

Page 151: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Classification of LT-properties is2.5-1

safety properties “nothing bad will happen”

examples:

• mutual exclusion

• deadlock freedom• “every red phase is preceded by a yellow phase”

liveness properties “something good will happen”

examples:

• “each waiting process will eventually enterits critical section”

• “each philosopher will eat infinitely often”

151 / 343

Page 152: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Classification of LT-properties is2.5-1

safety properties “nothing bad will happen”

examples:

• mutual exclusion

• deadlock freedom

}special case: invariants“no bad state will be reached”

• “every red phase is preceded by a yellow phase”

liveness properties “something good will happen”

examples:

• “each waiting process will eventually enterits critical section”

• “each philosopher will eat infinitely often”

152 / 343

Page 153: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Propositional logic is2.5-2

Φ ::= true∣∣∣Φ ::= true∣∣∣Φ ::= true∣∣∣ aaa

∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ

153 / 343

Page 154: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Propositional logic is2.5-2

Φ ::= true∣∣∣Φ ::= true∣∣∣Φ ::= true∣∣∣ aaa

∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ

↑↑↑atomic proposition, i.e., a ∈ APa ∈ APa ∈ AP

154 / 343

Page 155: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Propositional logic is2.5-2

Φ ::= true∣∣∣Φ ::= true∣∣∣Φ ::= true∣∣∣ aaa

∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∨ Φ2

∣∣∣ Φ1 → Φ2

∣∣∣ ...∣∣∣ Φ1 ∨ Φ2

∣∣∣ Φ1 → Φ2

∣∣∣ ...∣∣∣ Φ1 ∨ Φ2

∣∣∣ Φ1 → Φ2

∣∣∣ ...

↑↑↑atomic proposition, i.e., a ∈ APa ∈ APa ∈ AP

155 / 343

Page 156: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Propositional logic is2.5-2

Φ ::= true∣∣∣Φ ::= true∣∣∣Φ ::= true∣∣∣ aaa

∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∨ Φ2

∣∣∣ Φ1 → Φ2

∣∣∣ ...∣∣∣ Φ1 ∨ Φ2

∣∣∣ Φ1 → Φ2

∣∣∣ ...∣∣∣ Φ1 ∨ Φ2

∣∣∣ Φ1 → Φ2

∣∣∣ ...

↑↑↑atomic proposition, i.e., a ∈ APa ∈ APa ∈ AP

semantics: interpretation over a subsets of APAPAP

156 / 343

Page 157: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Propositional logic is2.5-2

Φ ::= true∣∣∣Φ ::= true∣∣∣Φ ::= true∣∣∣ aaa

∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∨ Φ2

∣∣∣ Φ1 → Φ2

∣∣∣ ...∣∣∣ Φ1 ∨ Φ2

∣∣∣ Φ1 → Φ2

∣∣∣ ...∣∣∣ Φ1 ∨ Φ2

∣∣∣ Φ1 → Φ2

∣∣∣ ...

↑↑↑atomic proposition, i.e., a ∈ APa ∈ APa ∈ AP

semantics: Let A ⊆ APA ⊆ APA ⊆ AP

AAA |= true|= true|= true

AAA |= a|= a|= a iff a ∈ Aa ∈ Aa ∈ A

AAA |= Φ1 ∧ Φ2|= Φ1 ∧ Φ2|= Φ1 ∧ Φ2 iff AAA |= Φ1|= Φ1|= Φ1 and AAA |= Φ2|= Φ2|= Φ2

AAA |= ¬Φ|= ¬Φ|= ¬Φ iff AAA |= Φ |= Φ |= Φ

157 / 343

Page 158: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Propositional logic is2.5-2

Φ ::= true∣∣∣Φ ::= true∣∣∣Φ ::= true∣∣∣ aaa

∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∨ Φ2

∣∣∣ Φ1 → Φ2

∣∣∣ ...∣∣∣ Φ1 ∨ Φ2

∣∣∣ Φ1 → Φ2

∣∣∣ ...∣∣∣ Φ1 ∨ Φ2

∣∣∣ Φ1 → Φ2

∣∣∣ ...

↑↑↑atomic proposition, i.e., a ∈ APa ∈ APa ∈ AP

semantics: Let A ⊆ APA ⊆ APA ⊆ AP

AAA |= true|= true|= true

AAA |= a|= a|= a iff a ∈ Aa ∈ Aa ∈ A

AAA |= Φ1 ∧ Φ2|= Φ1 ∧ Φ2|= Φ1 ∧ Φ2 iff AAA |= Φ1|= Φ1|= Φ1 and AAA |= Φ2|= Φ2|= Φ2

AAA |= ¬Φ|= ¬Φ|= ¬Φ iff AAA |= Φ |= Φ |= Φ

e.g., {a, b}{a, b}{a, b} |= |= |= (a→ ¬b) ∨ c(a→ ¬b) ∨ c(a→ ¬b) ∨ c {a, b}{a, b}{a, b} |=|=|= a ∨ ca ∨ ca ∨ c

158 / 343

Page 159: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Propositional logic is2.5-2

Φ ::= true∣∣∣Φ ::= true∣∣∣Φ ::= true∣∣∣ aaa

∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∧ Φ2

∣∣∣ ¬Φ∣∣∣ Φ1 ∨ Φ2

∣∣∣ Φ1 → Φ2

∣∣∣ ...∣∣∣ Φ1 ∨ Φ2

∣∣∣ Φ1 → Φ2

∣∣∣ ...∣∣∣ Φ1 ∨ Φ2

∣∣∣ Φ1 → Φ2

∣∣∣ ...

↑↑↑atomic proposition, i.e., a ∈ APa ∈ APa ∈ AP

semantics: Let A ⊆ APA ⊆ APA ⊆ AP

AAA |= true|= true|= true

AAA |= a|= a|= a iff a ∈ Aa ∈ Aa ∈ A

AAA |= Φ1 ∧ Φ2|= Φ1 ∧ Φ2|= Φ1 ∧ Φ2 iff AAA |= Φ1|= Φ1|= Φ1 and AAA |= Φ2|= Φ2|= Φ2

AAA |= ¬Φ|= ¬Φ|= ¬Φ iff AAA |= Φ |= Φ |= Φ

for state sss of a TS over APAPAP : s |= Φs |= Φs |= Φ iff L(s) |= ΦL(s) |= ΦL(s) |= Φ

159 / 343

Page 160: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Invariant is2.5-def-invariant

160 / 343

Page 161: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Invariant is2.5-def-invariant

Let EEE be an LT property over APAPAP.

EEE is called an invariant if there exists a propositionalformula ΦΦΦ over APAPAP such that

E ={

A0 A1 A2 . . . ∈(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}E =

{A0 A1 A2 . . . ∈

(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}E =

{A0 A1 A2 . . . ∈

(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}

161 / 343

Page 162: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Invariant is2.5-def-invariant

Let EEE be an LT property over APAPAP.

EEE is called an invariant if there exists a propositionalformula ΦΦΦ over APAPAP such that

E ={

A0 A1 A2 . . . ∈(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}E =

{A0 A1 A2 . . . ∈

(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}E =

{A0 A1 A2 . . . ∈

(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}ΦΦΦ is called the invariant condition of EEE .

162 / 343

Page 163: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Examples for invariants is2.5-3

mutual exclusion (safety):

MUTEXMUTEXMUTEX ===set of all infinite words A0 A1 A2 . . .A0 A1 A2 . . .A0 A1 A2 . . . s.t.∀i ∈ N.∀i ∈ N.∀i ∈ N. crit1 ∈ Aicrit1 ∈ Aicrit1 ∈ Ai or crit2 ∈ Aicrit2 ∈ Aicrit2 ∈ Ai

here: AP = {crit1, crit2, . . .}AP = {crit1, crit2, . . .}AP = {crit1, crit2, . . .}

163 / 343

Page 164: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Examples for invariants is2.5-3

mutual exclusion (safety):

MUTEXMUTEXMUTEX ===set of all infinite words A0 A1 A2 . . .A0 A1 A2 . . .A0 A1 A2 . . . s.t.∀i ∈ N.∀i ∈ N.∀i ∈ N. crit1 ∈ Aicrit1 ∈ Aicrit1 ∈ Ai or crit2 ∈ Aicrit2 ∈ Aicrit2 ∈ Ai

invariant condition: Φ = ¬crit1 ∨ ¬crit2Φ = ¬crit1 ∨ ¬crit2Φ = ¬crit1 ∨ ¬crit2

here: AP = {crit1, crit2, . . .}AP = {crit1, crit2, . . .}AP = {crit1, crit2, . . .}

164 / 343

Page 165: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Examples for invariants is2.5-3

mutual exclusion (safety):

MUTEXMUTEXMUTEX ===set of all infinite words A0 A1 A2 . . .A0 A1 A2 . . .A0 A1 A2 . . . s.t.∀i ∈ N.∀i ∈ N.∀i ∈ N. crit1 ∈ Aicrit1 ∈ Aicrit1 ∈ Ai or crit2 ∈ Aicrit2 ∈ Aicrit2 ∈ Ai

invariant condition: Φ = ¬crit1 ∨ ¬crit2Φ = ¬crit1 ∨ ¬crit2Φ = ¬crit1 ∨ ¬crit2

deadlock freedom for 5 dining philosophers:

DFDFDF ===set of all infinite words A0 A1 A2 . . .A0 A1 A2 . . .A0 A1 A2 . . . s.t.∀i ∈ N ∃j ∈ {0, 1, 2, 3, 4}. waitj ∈ Ai∀i ∈ N ∃j ∈ {0, 1, 2, 3, 4}. waitj ∈ Ai∀i ∈ N ∃j ∈ {0, 1, 2, 3, 4}. waitj ∈ Ai

here: AP = {waitj : 0 ≤ j ≤ 4} ∪ {. . .}AP = {waitj : 0 ≤ j ≤ 4} ∪ {. . .}AP = {waitj : 0 ≤ j ≤ 4} ∪ {. . .}165 / 343

Page 166: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Examples for invariants is2.5-3

mutual exclusion (safety):

MUTEXMUTEXMUTEX ===set of all infinite words A0 A1 A2 . . .A0 A1 A2 . . .A0 A1 A2 . . . s.t.∀i ∈ N.∀i ∈ N.∀i ∈ N. crit1 ∈ Aicrit1 ∈ Aicrit1 ∈ Ai or crit2 ∈ Aicrit2 ∈ Aicrit2 ∈ Ai

invariant condition: Φ = ¬crit1 ∨ ¬crit2Φ = ¬crit1 ∨ ¬crit2Φ = ¬crit1 ∨ ¬crit2

deadlock freedom for 5 dining philosophers:

DFDFDF ===set of all infinite words A0 A1 A2 . . .A0 A1 A2 . . .A0 A1 A2 . . . s.t.∀i ∈ N ∃j ∈ {0, 1, 2, 3, 4}. waitj ∈ Ai∀i ∈ N ∃j ∈ {0, 1, 2, 3, 4}. waitj ∈ Ai∀i ∈ N ∃j ∈ {0, 1, 2, 3, 4}. waitj ∈ Ai

invariant condition: ?

here: AP = {waitj : 0 ≤ j ≤ 4} ∪ {. . .}AP = {waitj : 0 ≤ j ≤ 4} ∪ {. . .}AP = {waitj : 0 ≤ j ≤ 4} ∪ {. . .}166 / 343

Page 167: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Examples for invariants is2.5-3

mutual exclusion (safety):

MUTEXMUTEXMUTEX ===set of all infinite words A0 A1 A2 . . .A0 A1 A2 . . .A0 A1 A2 . . . s.t.∀i ∈ N.∀i ∈ N.∀i ∈ N. crit1 ∈ Aicrit1 ∈ Aicrit1 ∈ Ai or crit2 ∈ Aicrit2 ∈ Aicrit2 ∈ Ai

invariant condition: Φ = ¬crit1 ∨ ¬crit2Φ = ¬crit1 ∨ ¬crit2Φ = ¬crit1 ∨ ¬crit2

deadlock freedom for 5 dining philosophers:

DFDFDF ===set of all infinite words A0 A1 A2 . . .A0 A1 A2 . . .A0 A1 A2 . . . s.t.∀i ∈ N ∃j ∈ {0, 1, 2, 3, 4}. waitj ∈ Ai∀i ∈ N ∃j ∈ {0, 1, 2, 3, 4}. waitj ∈ Ai∀i ∈ N ∃j ∈ {0, 1, 2, 3, 4}. waitj ∈ Ai

invariant condition:Φ = ¬wait0 ∨ ¬wait1 ∨ ¬wait2 ∨ ¬wait3 ∨ ¬wait4Φ = ¬wait0 ∨ ¬wait1 ∨ ¬wait2 ∨ ¬wait3 ∨ ¬wait4Φ = ¬wait0 ∨ ¬wait1 ∨ ¬wait2 ∨ ¬wait3 ∨ ¬wait4

here: AP = {waitj : 0 ≤ j ≤ 4} ∪ {. . .}AP = {waitj : 0 ≤ j ≤ 4} ∪ {. . .}AP = {waitj : 0 ≤ j ≤ 4} ∪ {. . .}167 / 343

Page 168: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Satisfaction of invariants is2.5-sat-invariant

Let EEE be an LT property over APAPAP . EEE is called aninvariant if there exists a propositional formula ΦΦΦ s.t.

E ={

A0 A1 A2 . . . ∈(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}E =

{A0 A1 A2 . . . ∈

(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}E =

{A0 A1 A2 . . . ∈

(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}

168 / 343

Page 169: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Satisfaction of invariants is2.5-sat-invariant

Let EEE be an LT property over APAPAP . EEE is called aninvariant if there exists a propositional formula ΦΦΦ s.t.

E ={

A0 A1 A2 . . . ∈(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}E =

{A0 A1 A2 . . . ∈

(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}E =

{A0 A1 A2 . . . ∈

(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}Let TTT be a TS over APAPAP without terminal states. Then:

T |= ET |= ET |= E iff trace(π) ∈ Etrace(π) ∈ Etrace(π) ∈ E for all π ∈ Paths(T )π ∈ Paths(T )π ∈ Paths(T )

169 / 343

Page 170: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Satisfaction of invariants is2.5-sat-invariant

Let EEE be an LT property over APAPAP . EEE is called aninvariant if there exists a propositional formula ΦΦΦ s.t.

E ={

A0 A1 A2 . . . ∈(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}E =

{A0 A1 A2 . . . ∈

(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}E =

{A0 A1 A2 . . . ∈

(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}Let TTT be a TS over APAPAP without terminal states. Then:

T |= ET |= ET |= E iff trace(π) ∈ Etrace(π) ∈ Etrace(π) ∈ E for all π ∈ Paths(T )π ∈ Paths(T )π ∈ Paths(T )

iff s |= Φs |= Φs |= Φ for all states sss on a path of TTT

170 / 343

Page 171: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Satisfaction of invariants is2.5-sat-invariant

Let EEE be an LT property over APAPAP . EEE is called aninvariant if there exists a propositional formula ΦΦΦ s.t.

E ={

A0 A1 A2 . . . ∈(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}E =

{A0 A1 A2 . . . ∈

(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}E =

{A0 A1 A2 . . . ∈

(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}Let TTT be a TS over APAPAP without terminal states. Then:

T |= ET |= ET |= E iff trace(π) ∈ Etrace(π) ∈ Etrace(π) ∈ E for all π ∈ Paths(T )π ∈ Paths(T )π ∈ Paths(T )

iff s |= Φs |= Φs |= Φ for all states sss on a path of TTTiff s |= Φs |= Φs |= Φ for all states s ∈ Reach(T )s ∈ Reach(T )s ∈ Reach(T )

↑↑↑set of reachable states in TTT

171 / 343

Page 172: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Satisfaction of invariants is2.5-sat-invariant

Let EEE be an LT property over APAPAP . EEE is called aninvariant if there exists a propositional formula ΦΦΦ s.t.

E ={

A0 A1 A2 . . . ∈(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}E =

{A0 A1 A2 . . . ∈

(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}E =

{A0 A1 A2 . . . ∈

(2AP

)ω: ∀i ≥ 0. Ai |= Φ

}Let TTT be a TS over APAPAP without terminal states. Then:

T |= ET |= ET |= E iff trace(π) ∈ Etrace(π) ∈ Etrace(π) ∈ E for all π ∈ Paths(T )π ∈ Paths(T )π ∈ Paths(T )

iff s |= Φs |= Φs |= Φ for all states sss on a path of TTTiff s |= Φs |= Φs |= Φ for all states s ∈ Reach(T )s ∈ Reach(T )s ∈ Reach(T )

i.e., ΦΦΦ holds in all initial states andis invariant under all transitions

172 / 343

Page 173: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Invariant checking LTProp/is2.5-6

finite transitionsystem TTT invariant EEE

model checker

does T |= ET |= ET |= E hold?

no, T |= ET |= ET |= Eyes, T |= ET |= ET |= E

173 / 343

Page 174: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Invariant checking LTProp/is2.5-6

finite transitionsystem TTT

invariant EEE withinvariant condition ΦΦΦ

model checker

does T |= ET |= ET |= E hold?

no, T |= ET |= ET |= Eyes, T |= ET |= ET |= E

perform a graph analysis (DFS or BFS) to checkwhether s |= Φs |= Φs |= Φ for all s ∈ Reach(T )s ∈ Reach(T )s ∈ Reach(T )

174 / 343

Page 175: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Invariant checking LTProp/is2.5-6

finite transitionsystem TTT

invariant EEE withinvariant condition ΦΦΦ

model checker

does T |= ET |= ET |= E hold?

no, T |= ET |= ET |= Eyes, T |= ET |= ET |= E ←←← errorindication

perform a graph analysis (DFS or BFS) to checkwhether s |= Φs |= Φs |= Φ for all s ∈ Reach(T )s ∈ Reach(T )s ∈ Reach(T )

175 / 343

Page 176: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Invariant checking LTProp/is2.5-6

finite transitionsystem TTT

invariant EEE withinvariant condition ΦΦΦ

model checker

does T |= ET |= ET |= E hold?

no, T |= ET |= ET |= Eyes, T |= ET |= ET |= E ←←← errorindication

error indication: initial path fragment s0 s1 . . . sn−1sns0 s1 . . . sn−1sns0 s1 . . . sn−1sn

such that si |= Φsi |= Φsi |= Φ for 0 ≤ i < n0 ≤ i < n0 ≤ i < n and sn |= Φsn |= Φsn |= Φ176 / 343

Page 177: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

DFS-based invariant checking LTProp/is2.5-7

input: finite transition system TTT , invariant condition ΦΦΦ

177 / 343

Page 178: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

DFS-based invariant checking LTProp/is2.5-7

input: finite transition system TTT , invariant condition ΦΦΦ

FOR ALL s0 ∈ S0s0 ∈ S0s0 ∈ S0 DO

IF DFS(s0, Φ)DFS(s0, Φ)DFS(s0, Φ) THENreturn “no”

FIOD

return “yes”

178 / 343

Page 179: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

DFS-based invariant checking LTProp/is2.5-7

input: finite transition system TTT , invariant condition ΦΦΦ

FOR ALL s0 ∈ S0s0 ∈ S0s0 ∈ S0 DO

IF DFS(s0, Φ)DFS(s0, Φ)DFS(s0, Φ) THENreturn “no”

FIOD

return “yes”

DFS(s0, Φ)DFS(s0, Φ)DFS(s0, Φ) returns “true” iff depth-first search fromstate s0s0s0 leads to some state ttt with t |= Φt |= Φt |= Φ

179 / 343

Page 180: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

DFS-based invariant checking LTProp/is2.5-7

input: finite transition system TTT , invariant condition ΦΦΦ

πππ :=:=:= ∅∅∅ ←−←−←− stack for error indication

FOR ALL s0 ∈ S0s0 ∈ S0s0 ∈ S0 DO

IF DFS(s0, Φ)DFS(s0, Φ)DFS(s0, Φ) THENreturn “no” and reverse(π)reverse(π)reverse(π)

FIOD

return “yes”

DFS(s0, Φ)DFS(s0, Φ)DFS(s0, Φ) returns “true” iff depth-first search fromstate s0s0s0 leads to some state ttt with t |= Φt |= Φt |= Φ

180 / 343

Page 181: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

DFS-based invariant checking LTProp/is2.5-7

input: finite transition system TTT , invariant condition ΦΦΦ

πππ :=:=:= ∅∅∅ ←−←−←− stack for error indication

FOR ALL s0 ∈ S0s0 ∈ S0s0 ∈ S0 DO

IF DFS(s0, Φ)DFS(s0, Φ)DFS(s0, Φ) THENreturn “no” and reverse(π)reverse(π)reverse(π)

FIOD

return “yes”

sn sn=t...

s1

s0

sn sn=t...

s1

s0

sn sn=t...

s1

s0

DFS(s0, Φ)DFS(s0, Φ)DFS(s0, Φ) returns “true” iff depth-first search fromstate s0s0s0 leads to some state ttt with t |= Φt |= Φt |= Φ

181 / 343

Page 182: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

DFS-based invariant checking LTProp/is2.5-7

input: finite transition system TTT , invariant condition ΦΦΦ

UUU :=:=:= ∅∅∅ ←−←−←− stores the “processed” states

πππ :=:=:= ∅∅∅ ←−←−←− stack for error indication

FOR ALL s0 ∈ S0s0 ∈ S0s0 ∈ S0 DO

IF DFS(s0, Φ)DFS(s0, Φ)DFS(s0, Φ) THENreturn “no” and reverse(π)reverse(π)reverse(π)

FIOD

return “yes”

sn sn=t...

s1

s0

sn sn=t...

s1

s0

sn sn=t...

s1

s0

DFS(s0, Φ)DFS(s0, Φ)DFS(s0, Φ) returns “true” iff depth-first search fromstate s0s0s0 leads to some state ttt with t |= Φt |= Φt |= Φ

182 / 343

Page 183: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Recursive algorithm DFS(s , Φ)DFS(s , Φ)DFS(s, Φ) is2.5-8

“searches” for a path fragment s . . . ts . . . ts . . . t with t |= Φt |= Φt |= Φ

183 / 343

Page 184: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Recursive algorithm DFS(s , Φ)DFS(s , Φ)DFS(s, Φ) is2.5-8

“searches” for a path fragment s . . . ts . . . ts . . . t with t |= Φt |= Φt |= Φ

IF s /∈ Us /∈ Us /∈ U THEN

IF s |= Φs |= Φs |= Φ THEN return “true” FI

IF s |= Φs |= Φs |= Φ THEN

...

...

...

FIFI

return “false”

184 / 343

Page 185: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Recursive algorithm DFS(s , Φ)DFS(s , Φ)DFS(s, Φ) is2.5-8

“searches” for a path fragment s . . . ts . . . ts . . . t with t |= Φt |= Φt |= Φ

IF s /∈ Us /∈ Us /∈ U THEN

IF s |= Φs |= Φs |= Φ THEN return “true” FI

IF s |= Φs |= Φs |= Φ THEN

insert sss in U ;U ;U;

FIFI

return “false”

185 / 343

Page 186: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Recursive algorithm DFS(s , Φ)DFS(s , Φ)DFS(s, Φ) is2.5-8

“searches” for a path fragment s . . . ts . . . ts . . . t with t |= Φt |= Φt |= Φ

IF s /∈ Us /∈ Us /∈ U THEN

IF s |= Φs |= Φs |= Φ THEN return “true” FI

IF s |= Φs |= Φs |= Φ THEN

insert sss in U ;U ;U;FOR ALL s ′ ∈ Post(s)s ′ ∈ Post(s)s ′ ∈ Post(s) DO

IF DFS(s ′, Φ)DFS(s ′, Φ)DFS(s ′, Φ) THEN

return “true” FIOD

FIFI

return “false”

186 / 343

Page 187: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Recursive algorithm DFS(s , Φ)DFS(s , Φ)DFS(s, Φ) is2.5-8

“searches” for a path fragment s . . . ts . . . ts . . . t with t |= Φt |= Φt |= Φ

Push(π, s);Push(π, s);Push(π, s);IF s /∈ Us /∈ Us /∈ U THEN

IF s |= Φs |= Φs |= Φ THEN return “true” FI

IF s |= Φs |= Φs |= Φ THEN

insert sss in U ;U ;U;FOR ALL s ′ ∈ Post(s)s ′ ∈ Post(s)s ′ ∈ Post(s) DO

IF DFS(s ′, Φ)DFS(s ′, Φ)DFS(s ′, Φ) THEN

return “true” FIOD

FIFI

Pop(π);Pop(π);Pop(π); return “false”

187 / 343

Page 188: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Recursive algorithm DFS(s , Φ)DFS(s , Φ)DFS(s, Φ) is2.5-8

“searches” for a path fragment s . . . ts . . . ts . . . t with t |= Φt |= Φt |= Φ

Push(π, s);Push(π, s);Push(π, s);IF s /∈ Us /∈ Us /∈ U THEN

IF s |= Φs |= Φs |= Φ THEN return “true” FI

IF s |= Φs |= Φs |= Φ THEN

insert sss in U ;U ;U;FOR ALL s ′ ∈ Post(s)s ′ ∈ Post(s)s ′ ∈ Post(s) DO

IF DFS(s ′, Φ)DFS(s ′, Φ)DFS(s ′, Φ) THEN

return “true” FIOD

FIFI

Pop(π);Pop(π);Pop(π); return “false”

s...

s0

s...

s0

s...

s0

initialstate

188 / 343

Page 189: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Recursive algorithm DFS(s , Φ)DFS(s , Φ)DFS(s, Φ) is2.5-8

“searches” for a path fragment s . . . ts . . . ts . . . t with t |= Φt |= Φt |= Φ

Push(π, s);Push(π, s);Push(π, s);IF s /∈ Us /∈ Us /∈ U THEN

IF s |= Φs |= Φs |= Φ THEN return “true” FI

IF s |= Φs |= Φs |= Φ THEN

insert sss in U ;U ;U;FOR ALL s ′ ∈ Post(s)s ′ ∈ Post(s)s ′ ∈ Post(s) DO

IF DFS(s ′, Φ)DFS(s ′, Φ)DFS(s ′, Φ) THEN

return “true” FIOD

FIFI

Pop(π);Pop(π);Pop(π); return “false”

s ′

s...

s0

s ′

s...

s0

s ′

s...

s0

initialstate

189 / 343

Page 190: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Recursive algorithm DFS(s , Φ)DFS(s , Φ)DFS(s, Φ) is2.5-8

“searches” for a path fragment s . . . ts . . . ts . . . t with t |= Φt |= Φt |= Φ

Push(π, s);Push(π, s);Push(π, s);IF s /∈ Us /∈ Us /∈ U THEN

IF s |= Φs |= Φs |= Φ THEN return “true” FI

IF s |= Φs |= Φs |= Φ THEN

insert sss in U ;U ;U;FOR ALL s ′ ∈ Post(s)s ′ ∈ Post(s)s ′ ∈ Post(s) DO

IF DFS(s ′, Φ)DFS(s ′, Φ)DFS(s ′, Φ) THEN

return “true” FIOD

FIFI

Pop(π);Pop(π);Pop(π); return “false”

s ′ s ′ |= Φs...

s0

s ′ s ′ |= Φs...

s0

s ′ s ′ |= Φs...

s0

initialstate

190 / 343

Page 191: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Recursive algorithm DFS(s , Φ)DFS(s , Φ)DFS(s, Φ) is2.5-8

“searches” for a path fragment s . . . s ′. . . ts . . . s ′. . . ts . . . s ′. . . t with t |= Φt |= Φt |= Φ

Push(π, s);Push(π, s);Push(π, s);IF s /∈ Us /∈ Us /∈ U THEN

IF s |= Φs |= Φs |= Φ THEN return “true” FI

IF s |= Φs |= Φs |= Φ THEN

insert sss in U ;U ;U;FOR ALL s ′ ∈ Post(s)s ′ ∈ Post(s)s ′ ∈ Post(s) DO

IF DFS(s ′, Φ)DFS(s ′, Φ)DFS(s ′, Φ) THEN

return “true” FIOD

FIFI

Pop(π);Pop(π);Pop(π); return “false”

t t |= Φ...s ′ s ′ |= Φs...

s0

t t |= Φ...s ′ s ′ |= Φs...

s0

t t |= Φ...s ′ s ′ |= Φs...

s0

initialstate

191 / 343

Page 192: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: invariant checking is2.5-9

s0s0s0

s1s1s1 s2s2s2

ttt

{a}{a}{a}{a}{a}{a}

{a}{a}{a}

∅∅∅

. . .. . .. . . . . .. . .. . .

invariantcondition aaa

s0, s1, s2s0, s1, s2s0, s1, s2 |=|=|= aaattt |= |= |= aaa

.........

192 / 343

Page 193: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: invariant checking is2.5-9

s0s0s0

s1s1s1 s2s2s2

ttt

{a}{a}{a}{a}{a}{a}

{a}{a}{a}

∅∅∅

. . .. . .. . . . . .. . .. . .

invariantcondition aaa

s0, s1, s2s0, s1, s2s0, s1, s2 |=|=|= aaattt |= |= |= aaa

......... DFS(s0, a)DFS(s0, a)DFS(s0, a)stack πππ

s0s0s0

193 / 343

Page 194: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: invariant checking is2.5-9

s0s0s0

s1s1s1 s2s2s2

ttt

{a}{a}{a}{a}{a}{a}

{a}{a}{a}

∅∅∅

. . .. . .. . . . . .. . .. . .

invariantcondition aaa

s0, s1, s2s0, s1, s2s0, s1, s2 |=|=|= aaattt |= |= |= aaa

......... DFS(s0, a)DFS(s0, a)DFS(s0, a)

DFS(s1, a)DFS(s1, a)DFS(s1, a)

stack πππ

s1s1s1

s0s0s0

194 / 343

Page 195: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: invariant checking is2.5-9

s0s0s0

s1s1s1 s2s2s2

ttt

{a}{a}{a}{a}{a}{a}

{a}{a}{a}

∅∅∅

. . .. . .. . . . . .. . .. . .

invariantcondition aaa

s0, s1, s2s0, s1, s2s0, s1, s2 |=|=|= aaattt |= |= |= aaa

......... DFS(s0, a)DFS(s0, a)DFS(s0, a)

DFS(s1, a)DFS(s1, a)DFS(s1, a)

DFS(s1, a)DFS(s1, a)DFS(s1, a)

stack πππ

������s1������s1������s1s1s1s1

s0s0s0

195 / 343

Page 196: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: invariant checking is2.5-9

s0s0s0

s1s1s1 s2s2s2

ttt

{a}{a}{a}{a}{a}{a}

{a}{a}{a}

∅∅∅

. . .. . .. . . . . .. . .. . .

invariantcondition aaa

s0, s1, s2s0, s1, s2s0, s1, s2 |=|=|= aaattt |= |= |= aaa

......... DFS(s0, a)DFS(s0, a)DFS(s0, a)

DFS(s1, a)DFS(s1, a)DFS(s1, a)

DFS(s1, a)DFS(s1, a)DFS(s1, a)

stack πππ

������s1������s1������s1

������s1������s1������s1s0s0s0

196 / 343

Page 197: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: invariant checking is2.5-9

s0s0s0

s1s1s1 s2s2s2

ttt

{a}{a}{a}{a}{a}{a}

{a}{a}{a}

∅∅∅

. . .. . .. . . . . .. . .. . .

invariantcondition aaa

s0, s1, s2s0, s1, s2s0, s1, s2 |=|=|= aaattt |= |= |= aaa

......... DFS(s0, a)DFS(s0, a)DFS(s0, a)

DFS(s1, a)DFS(s1, a)DFS(s1, a)

DFS(s1, a)DFS(s1, a)DFS(s1, a)

DFS(s2, a)DFS(s2, a)DFS(s2, a)

stack πππ

������s1������s1������s1

������s1������s1������s1s0s0s0

s2s2s2

s0s0s0

197 / 343

Page 198: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: invariant checking is2.5-9

s0s0s0

s1s1s1 s2s2s2

ttt

{a}{a}{a}{a}{a}{a}

{a}{a}{a}

∅∅∅

. . .. . .. . . . . .. . .. . .

invariantcondition aaa

s0, s1, s2s0, s1, s2s0, s1, s2 |=|=|= aaattt |= |= |= aaa

......... DFS(s0, a)DFS(s0, a)DFS(s0, a)

DFS(s1, a)DFS(s1, a)DFS(s1, a)

DFS(s1, a)DFS(s1, a)DFS(s1, a)

DFS(s2, a)DFS(s2, a)DFS(s2, a)

DFS(t, a)DFS(t, a)DFS(t, a)

stack πππ

������s1������s1������s1

������s1������s1������s1s0s0s0

ttts2s2s2

s0s0s0

198 / 343

Page 199: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: invariant checking is2.5-9

s0s0s0

s1s1s1 s2s2s2

ttt

{a}{a}{a}{a}{a}{a}

{a}{a}{a}

∅∅∅

. . .. . .. . . . . .. . .. . .

invariantcondition aaa

s0, s1, s2s0, s1, s2s0, s1, s2 |=|=|= aaattt |= |= |= aaa

......... DFS(s0, a)DFS(s0, a)DFS(s0, a)

DFS(s1, a)DFS(s1, a)DFS(s1, a)

DFS(s1, a)DFS(s1, a)DFS(s1, a)

DFS(s2, a)DFS(s2, a)DFS(s2, a)

DFS(t, a)DFS(t, a)DFS(t, a)

stack πππ

������s1������s1������s1

������s1������s1������s1s0s0s0

ttts2s2s2

s0s0s0

199 / 343

Page 200: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: invariant checking is2.5-9

s0s0s0

s1s1s1 s2s2s2

ttt

{a}{a}{a}{a}{a}{a}

{a}{a}{a}

∅∅∅

. . .. . .. . . . . .. . .. . .

invariantcondition aaa

s0, s1, s2s0, s1, s2s0, s1, s2 |=|=|= aaattt |= |= |= aaa

......... DFS(s0, a)DFS(s0, a)DFS(s0, a)

DFS(s1, a)DFS(s1, a)DFS(s1, a)

DFS(s1, a)DFS(s1, a)DFS(s1, a)

DFS(s2, a)DFS(s2, a)DFS(s2, a)

DFS(t, a)DFS(t, a)DFS(t, a)

stack πππ

������s1������s1������s1

������s1������s1������s1s0s0s0

ttts2s2s2

s0s0s0

200 / 343

Page 201: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: invariant checking is2.5-9

s0s0s0

s1s1s1 s2s2s2

ttt

{a}{a}{a}{a}{a}{a}

{a}{a}{a}

∅∅∅

. . .. . .. . . . . .. . .. . .

invariantcondition aaa

s0, s1, s2s0, s1, s2s0, s1, s2 |=|=|= aaattt |= |= |= aaa

......... DFS(s0, a)DFS(s0, a)DFS(s0, a)

DFS(s1, a)DFS(s1, a)DFS(s1, a)

DFS(s1, a)DFS(s1, a)DFS(s1, a)

DFS(s2, a)DFS(s2, a)DFS(s2, a)

DFS(t, a)DFS(t, a)DFS(t, a)

s0 |=s0 |=s0 |= “always aaa”

stack πππ

������s1������s1������s1

������s1������s1������s1s0s0s0

ttts2s2s2

s0s0s0

201 / 343

Page 202: Introduction Modelling parallel systemsdidawiki.di.unipi.it/lib/exe/fetch.php/magistraleinform... · 2011-03-25 · Linear-time vs branching-time ltb2.4-1 transition system T =(S,Act,→,S0,AP,L)

Example: invariant checking is2.5-9

s0s0s0

s1s1s1 s2s2s2

ttt

{a}{a}{a}{a}{a}{a}

{a}{a}{a}

∅∅∅

. . .. . .. . . . . .. . .. . .

invariantcondition aaa

s0, s1, s2s0, s1, s2s0, s1, s2 |=|=|= aaattt |= |= |= aaa

......... DFS(s0, a)DFS(s0, a)DFS(s0, a)

DFS(s1, a)DFS(s1, a)DFS(s1, a)

DFS(s1, a)DFS(s1, a)DFS(s1, a)

DFS(s2, a)DFS(s2, a)DFS(s2, a)

DFS(t, a)DFS(t, a)DFS(t, a)

s0 |=s0 |=s0 |= “always aaa” ←←←error

indication:s0 s2 ts0 s2 ts0 s2 t

stack πππ

������s1������s1������s1

������s1������s1������s1s0s0s0

ttts2s2s2

s0s0s0

202 / 343