introduction - rwth aachen university · introduction modelling parallel systems transition systems...

136
Overview overview2.2 Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− ←− ←− Linear Time Properties Regular Properties Linear Temporal Logic Computation-Tree Logic Equivalences and Abstraction 1 / 131

Upload: others

Post on 17-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Overview overview2.2

Introduction

Modelling parallel systems

Transition systemsModeling hard- and software systemsParallelism and communication ←−←−←−

Linear Time Properties

Regular Properties

Linear Temporal Logic

Computation-Tree Logic

Equivalences and Abstraction

1 / 131

Page 2: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Channel systems pc2.2-24

2 / 131

Page 3: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Channel systems pc2.2-24

representation of data-dependent parallel systems with

• communication over shared variables• synchronous message passing• asynchronous message passing

3 / 131

Page 4: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Channel systems pc2.2-24

representation of data-dependent parallel systems with

• communication over shared variables• synchronous message passing• asynchronous message passing

}communicationover channels

4 / 131

Page 5: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Channel systems pc2.2-24

representation of data-dependent parallel systems with

• communication over shared variables• synchronous message passing• asynchronous message passing

}communicationover channels

P1P1P1

P2P2P2

P3P3P3 P4P4P4c1c1c1c2c2c2

c3c3c3shared

variables

5 / 131

Page 6: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Channel systems pc2.2-24

representation of data-dependent parallel systems with

• communication over shared variables• synchronous message passing• asynchronous message passing

}communicationover channels

P1P1P1

P2P2P2

P3P3P3 P4P4P4c1c1c1c2c2c2

c3c3c3shared

variables

channel types: synchronous or FIFO

6 / 131

Page 7: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Channel systems pc2.2-24

representation of data-dependent parallel systems with

• communication over shared variables• synchronous message passing• asynchronous message passing

}communicationover channels

P1P1P1

P2P2P2

P3P3P3

P4P4P4

c1c1c1

c2c2c2c3c3c3 shared

variables

channel types: synchronous or FIFO↑↑↑

capacity =̂̂=̂= number of buffer cells7 / 131

Page 8: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Channel systems pc2.2-24

representation of data-dependent parallel systems with

• communication over shared variables• synchronous message passing• asynchronous message passing

←−←−←− capacity 000←−←−←− capacity ≥ 1≥ 1≥ 1

P1P1P1

P2P2P2

P3P3P3

P4P4P4

c1c1c1

c2c2c2c3c3c3 shared

variables

channel types: synchronous or FIFO↗↗↗ ↑↑↑

capacity 000 capacity =̂̂=̂= number of buffer cells8 / 131

Page 9: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Channel systems pc2.2-24a

representation of data-dependent parallel systems with

• communication over shared variables• synchronous message passing• asynchronous message passing

}communicationover channels

formalization through program graphs for P1, ...,PnP1, ...,PnP1, ...,Pn

9 / 131

Page 10: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Channel systems pc2.2-24a

representation of data-dependent parallel systems with

• communication over shared variables• synchronous message passing• asynchronous message passing

}communicationover channels

formalization through program graphs for P1, ...,PnP1, ...,PnP1, ...,Pn

• with conditional transitions �ig :α↪→ �′i�i

g :α↪→ �′i�i

g :α↪→ �′i (as before)

10 / 131

Page 11: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Channel systems pc2.2-24a

representation of data-dependent parallel systems with

• communication over shared variables• synchronous message passing• asynchronous message passing

}communicationover channels

formalization through program graphs for P1, ...,PnP1, ...,PnP1, ...,Pn

• with conditional transitions �ig :α↪→ �′i�i

g :α↪→ �′i�i

g :α↪→ �′i (as before)

• and communication actions

�ic!v↪→ �′i�ic!v↪→ �′i�ic!v↪→ �′i sending value vvv via channel ccc

�ic?x↪→ �′i�ic?x↪→ �′i�ic?x↪→ �′i receiving a value for variable xxx

via channel ccc

11 / 131

Page 12: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Typed variables and channels pc2.2-channel-evaluation

typed variable: variable xxx with data domain Dom(x)Dom(x)Dom(x)

12 / 131

Page 13: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Typed variables and channels pc2.2-channel-evaluation

typed variable: variable xxx with data domain Dom(x)Dom(x)Dom(x)

evaluation for a set VarVarVar of typed variables:

type-consistent function η : Var → Valuesη : Var → Valuesη : Var → Values↑↑↑

i.e., η(x) ∈ Dom(x)η(x) ∈ Dom(x)η(x) ∈ Dom(x)

13 / 131

Page 14: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Typed variables and channels pc2.2-channel-evaluation

typed variable: variable xxx with data domain Dom(x)Dom(x)Dom(x)

evaluation for a set VarVarVar of typed variables:

type-consistent function η : Var → Valuesη : Var → Valuesη : Var → Values↑↑↑

i.e., η(x) ∈ Dom(x)η(x) ∈ Dom(x)η(x) ∈ Dom(x)

typed channel: channel ccc withcapacity cap(c) ∈ N ∪ {∞}cap(c) ∈ N ∪ {∞}cap(c) ∈ N ∪ {∞} and domain Dom(c)Dom(c)Dom(c)

14 / 131

Page 15: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Typed variables and channels pc2.2-channel-evaluation

typed variable: variable xxx with data domain Dom(x)Dom(x)Dom(x)

evaluation for a set VarVarVar of typed variables:

type-consistent function η : Var → Valuesη : Var → Valuesη : Var → Values↑↑↑

i.e., η(x) ∈ Dom(x)η(x) ∈ Dom(x)η(x) ∈ Dom(x)

typed channel: channel ccc withcapacity cap(c) ∈ N ∪ {∞}cap(c) ∈ N ∪ {∞}cap(c) ∈ N ∪ {∞} and domain Dom(c)Dom(c)Dom(c)

evaluation for a set ChanChanChan of typed channels:

type-consistent function ξ : Chan→ Values∗ξ : Chan → Values∗ξ : Chan → Values∗

15 / 131

Page 16: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Typed variables and channels pc2.2-channel-evaluation

typed variable: variable xxx with data domain Dom(x)Dom(x)Dom(x)

evaluation for a set VarVarVar of typed variables:

type-consistent function η : Var → Valuesη : Var → Valuesη : Var → Values↑↑↑

i.e., η(x) ∈ Dom(x)η(x) ∈ Dom(x)η(x) ∈ Dom(x)

typed channel: channel ccc withcapacity cap(c) ∈ N ∪ {∞}cap(c) ∈ N ∪ {∞}cap(c) ∈ N ∪ {∞} and domain Dom(c)Dom(c)Dom(c)

evaluation for a set ChanChanChan of typed channels:

type-consistent function ξ : Chan→ Values∗ξ : Chan → Values∗ξ : Chan → Values∗

s.t. ξ(c)ξ(c)ξ(c) is a word over Dom(c)Dom(c)Dom(c) of length ≤ cap(c)≤ cap(c)≤ cap(c)16 / 131

Page 17: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Channel system (CS) pc2.2-25[P1 | P2 | ... | Pn

][P1 | P2 | ... | Pn

][P1 | P2 | ... | Pn

]where PiPiPi are program graphs

17 / 131

Page 18: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Channel system (CS) pc2.2-25[P1 | P2 | ... | Pn

][P1 | P2 | ... | Pn

][P1 | P2 | ... | Pn

]where PiPiPi are program graphsover a pair (Var , Chan)(Var , Chan)(Var , Chan)

18 / 131

Page 19: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Channel system (CS) pc2.2-25[P1 | P2 | ... | Pn

][P1 | P2 | ... | Pn

][P1 | P2 | ... | Pn

]where PiPiPi are program graphsover a pair (Var , Chan)(Var , Chan)(Var , Chan)

↑↑↑VarVarVar set of typed variablesChanChanChan set of typed channels with

capacities cap(·)cap(·)cap(·) and domains Dom(·)Dom(·)Dom(·)

19 / 131

Page 20: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Channel system (CS) pc2.2-25[P1 | P2 | ... | Pn

][P1 | P2 | ... | Pn

][P1 | P2 | ... | Pn

]where PiPiPi are program graphsover a pair (Var , Chan)(Var , Chan)(Var , Chan)

↑↑↑VarVarVar set of typed variablesChanChanChan set of typed channels with

capacities cap(·)cap(·)cap(·) and domains Dom(·)Dom(·)Dom(·)

program graphs Pi = (Loci , Acti , Effecti , ↪→i , Loc0,i , g0)Pi = (Loci , Acti , Effecti , ↪→i , Loc0,i , g0)Pi = (Loci , Acti , Effecti , ↪→i , Loc0,i , g0)with conditional transitions

�g :α↪→i �′�g :α↪→i �′�g :α↪→i �′ guarded command

20 / 131

Page 21: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Channel system (CS) pc2.2-25[P1 | P2 | ... | Pn

][P1 | P2 | ... | Pn

][P1 | P2 | ... | Pn

]where PiPiPi are program graphsover a pair (Var , Chan)(Var , Chan)(Var , Chan)

↑↑↑VarVarVar set of typed variablesChanChanChan set of typed channels with

capacities cap(·)cap(·)cap(·) and domains Dom(·)Dom(·)Dom(·)

program graphs Pi = (Loci , Acti , Effecti , ↪→i , Loc0,i , g0)Pi = (Loci , Acti , Effecti , ↪→i , Loc0,i , g0)Pi = (Loci , Acti , Effecti , ↪→i , Loc0,i , g0)with conditional transitions

�g :α↪→i �′�g :α↪→i �′�g :α↪→i �′ where g ∈ Cond(Var)g ∈ Cond(Var)g ∈ Cond(Var), α ∈ Actiα ∈ Actiα ∈ Acti

21 / 131

Page 22: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Channel system (CS) pc2.2-25[P1 | P2 | ... | Pn

][P1 | P2 | ... | Pn

][P1 | P2 | ... | Pn

]where PiPiPi are program graphsover a pair (Var , Chan)(Var , Chan)(Var , Chan)

↑↑↑VarVarVar set of typed variablesChanChanChan set of typed channels with

capacities cap(·)cap(·)cap(·) and domains Dom(·)Dom(·)Dom(·)

program graphs Pi = (Loci , Acti , Effecti , ↪→i , Loc0,i , g0)Pi = (Loci , Acti , Effecti , ↪→i , Loc0,i , g0)Pi = (Loci , Acti , Effecti , ↪→i , Loc0,i , g0)with conditional transitions

�g :α↪→i �′�g :α↪→i �′�g :α↪→i �′ guarded command

�c!v↪→i �′�c!v↪→i �′�c!v↪→i �′ sending value vvv via channel ccc

22 / 131

Page 23: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Channel system (CS) pc2.2-25[P1 | P2 | ... | Pn

][P1 | P2 | ... | Pn

][P1 | P2 | ... | Pn

]where PiPiPi are program graphsover a pair (Var , Chan)(Var , Chan)(Var , Chan)

↑↑↑VarVarVar set of typed variablesChanChanChan set of typed channels with

capacities cap(·)cap(·)cap(·) and domains Dom(·)Dom(·)Dom(·)

program graphs Pi = (Loci , Acti , Effecti , ↪→i , Loc0,i , g0)Pi = (Loci , Acti , Effecti , ↪→i , Loc0,i , g0)Pi = (Loci , Acti , Effecti , ↪→i , Loc0,i , g0)with conditional transitions

�g :α↪→i �′�g :α↪→i �′�g :α↪→i �′ guarded command

�c!v↪→i �′�c!v↪→i �′�c!v↪→i �′ sending value vvv via channel ccc

�c?x↪→i �′�c?x↪→i �′�c?x↪→i �′ receiving a value for variable xxx via channel ccc

23 / 131

Page 24: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Effect of communication actions in CS pc2.2-26

asynchronous message passing via channels of capacity ≥ 1≥ 1≥ 1

enabled if ... effect

sendingc!vc!vc!v

receivingc?xc?xc?x

24 / 131

Page 25: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Effect of communication actions in CS pc2.2-26

asynchronous message passing via channels of capacity ≥ 1≥ 1≥ 1

enabled if ... effect

sendingc!vc!vc!v

channel ccc not full add(c , v)add(c , v)add(c, v)

receivingc?xc?xc?x

v1v1v1 ......... vrvrvrc!v−→c!v−→c!v−→ v1v1v1 ......... vrvrvr vvv

↑↑↑ ↑↑↑

25 / 131

Page 26: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Effect of communication actions in CS pc2.2-26

asynchronous message passing via channels of capacity ≥ 1≥ 1≥ 1

enabled if ... effect

sendingc!vc!vc!v

channel ccc not full add(c , v)add(c , v)add(c, v)

receivingc?xc?xc?x

channel ccc not emptyv = front(c)v = front(c)v = front(c)

x := vx := vx := vremove(c)remove(c)remove(c)

v1v1v1 ......... vrvrvrc!v−→c!v−→c!v−→ v1v1v1 ......... vrvrvr vvv

↑↑↑ ↑↑↑

26 / 131

Page 27: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Effect of communication actions in CS pc2.2-26

asynchronous message passing via channels of capacity ≥ 1≥ 1≥ 1

enabled if ... effect

sendingc!vc!vc!v

channel ccc not full add(c , v)add(c , v)add(c, v)

receivingc?xc?xc?x

channel ccc not emptyv = front(c)v = front(c)v = front(c)

x := vx := vx := vremove(c)remove(c)remove(c)

v1v1v1 ......... vrvrvrc!v−→c!v−→c!v−→ v1v1v1 ......... vrvrvr vvv

↑↑↑ ↑↑↑

vvv v2v2v2 ... vrvrvrc?x−→c?x−→c?x−→ v2v2v2 ......... vrvrvr

↑↑↑ ↑↑↑x = vx = vx = v

27 / 131

Page 28: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Effect of communication actions in CS pc2.2-26

asynchronous message passing via channels of capacity ≥ 1≥ 1≥ 1

enabled if ... effect

sendingc!vc!vc!v

channel ccc not full add(c , v)add(c , v)add(c, v)

receivingc?xc?xc?x

channel ccc not emptyv = front(c)v = front(c)v = front(c)

x := vx := vx := vremove(c)remove(c)remove(c)

synchronous message passing via channels of capacity 000

• c!vc!vc!v and c?xc?xc?x are executed at the same time

• effect x := vx := vx := v

28 / 131

Page 29: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

TS-semantics of channel systems pc2.2-27

channel system over (Var , Chan)(Var , Chan)(Var , Chan)C =

[P1 | . . . | Pn

]C =

[P1 | . . . | Pn

]C =

[P1 | . . . | Pn

]⇓⇓⇓

transition system TCTCTC

29 / 131

Page 30: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

TS-semantics of channel systems pc2.2-27

channel system over (Var , Chan)(Var , Chan)(Var , Chan)C =

[P1 | . . . | Pn

]C =

[P1 | . . . | Pn

]C =

[P1 | . . . | Pn

]⇓⇓⇓

transition system TCTCTC

states of TCTCTC have the form

〈�1, ..., �n,〈�1, ..., �n,〈�1, ..., �n, η,η,η, ξ〉ξ〉ξ〉↗↗↗

locations ofP1, . . . ,PnP1, . . . ,PnP1, . . . ,Pn

↖↖↖channel evaluation

variable valuation

30 / 131

Page 31: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

TS-semantics of channel systems pc2.2-27

states 〈�1, ..., �n, η, ξ〉〈�1, ..., �n, η, ξ〉〈�1, ..., �n, η, ξ〉 where

�i�i�i location of program graph PiPiPi ,η ∈ Eval(Var)η ∈ Eval(Var)η ∈ Eval(Var) variable evaluationξ ∈ Eval(Chan)ξ ∈ Eval(Chan)ξ ∈ Eval(Chan) channel evaluation

31 / 131

Page 32: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

TS-semantics of channel systems pc2.2-27

states 〈�1, ..., �n, η, ξ〉〈�1, ..., �n, η, ξ〉〈�1, ..., �n, η, ξ〉 where

�i�i�i location of program graph PiPiPi ,η ∈ Eval(Var)η ∈ Eval(Var)η ∈ Eval(Var) variable evaluationξ ∈ Eval(Chan)ξ ∈ Eval(Chan)ξ ∈ Eval(Chan) channel evaluation

variable evaluation:

η : Varη : Varη : Var −→−→−→⋃

x∈Var

⋃x∈Var

⋃x∈Var

Dom(x)Dom(x)Dom(x) with η(x) ∈ Dom(x)η(x) ∈ Dom(x)η(x) ∈ Dom(x)

channel evaluation:

ξ : Chanξ : Chanξ : Chan →→→⋃

c∈Chan

⋃c∈Chan

⋃c∈Chan

Dom(c)∗Dom(c)∗Dom(c)∗ with ξ(c) ∈ Dom(c)∗ξ(c) ∈ Dom(c)∗ξ(c) ∈ Dom(c)∗

and |ξ(c)| ≤ cap(c)|ξ(c)| ≤ cap(c)|ξ(c)| ≤ cap(c)

32 / 131

Page 33: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

TS-semantics of channel systems pc2.2-27

states 〈�1, ..., �n, η, ξ〉〈�1, ..., �n, η, ξ〉〈�1, ..., �n, η, ξ〉 where

�i�i�i location of program graph PiPiPi ,η ∈ Eval(Var)η ∈ Eval(Var)η ∈ Eval(Var) variable evaluationξ ∈ Eval(Chan)ξ ∈ Eval(Chan)ξ ∈ Eval(Chan) channel evaluation

variable evaluation:

η : Varη : Varη : Var −→−→−→⋃

x∈Var

⋃x∈Var

⋃x∈Var

Dom(x)Dom(x)Dom(x) with η(x) ∈ Dom(x)η(x) ∈ Dom(x)η(x) ∈ Dom(x)

channel evaluation:

ξ : Chanξ : Chanξ : Chan →→→⋃

c∈Chan

⋃c∈Chan

⋃c∈Chan

Dom(c)∗Dom(c)∗Dom(c)∗ with ξ(c) ∈ Dom(c)∗ξ(c) ∈ Dom(c)∗ξ(c) ∈ Dom(c)∗

and |ξ(c)| ≤ cap(c)|ξ(c)| ≤ cap(c)|ξ(c)| ≤ cap(c)

only channels ccc with cap(c) ≥ 1cap(c) ≥ 1cap(c) ≥ 1 are relevant33 / 131

Page 34: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Transition relation of channel systems pc2.2-28

states 〈�1, ..., �n, η, ξ〉〈�1, ..., �n, η, ξ〉〈�1, ..., �n, η, ξ〉 where �i ∈ Loci�i ∈ Loci�i ∈ Loci , η ∈ Eval(Var)η ∈ Eval(Var)η ∈ Eval(Var),ξ ∈ Eval(Chan)ξ ∈ Eval(Chan)ξ ∈ Eval(Chan)

34 / 131

Page 35: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Transition relation of channel systems pc2.2-28

states 〈�1, ..., �n, η, ξ〉〈�1, ..., �n, η, ξ〉〈�1, ..., �n, η, ξ〉 where �i ∈ Loci�i ∈ Loci�i ∈ Loci , η ∈ Eval(Var)η ∈ Eval(Var)η ∈ Eval(Var),ξ ∈ Eval(Chan)ξ ∈ Eval(Chan)ξ ∈ Eval(Chan)

transition relation −→−→−→ is given by SOS-rules:

• interleaving rules for α ∈ Actiα ∈ Actiα ∈ Acti

• rules for message passing along channels

35 / 131

Page 36: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Transition relation of channel systems pc2.2-28

states 〈�1, ..., �n, η, ξ〉〈�1, ..., �n, η, ξ〉〈�1, ..., �n, η, ξ〉 where �i ∈ Loci�i ∈ Loci�i ∈ Loci , η ∈ Eval(Var)η ∈ Eval(Var)η ∈ Eval(Var),ξ ∈ Eval(Chan)ξ ∈ Eval(Chan)ξ ∈ Eval(Chan)

transition relation −→−→−→ is given by SOS-rules:

• interleaving rules for α ∈ Actiα ∈ Actiα ∈ Acti

• rules for message passing along channels

interleaving rule for actions α ∈ Actiα ∈ Actiα ∈ Acti :

�i

g :α↪→i �′i ∧ η |= g

〈�1, ..,�i , ..., �n, η, ξ〉 α−→ 〈�1, ..,�′i , ..., �n, Effecti(α, η), ξ〉

�i

g :α↪→i �′i ∧ η |= g

〈�1, ..,�i , ..., �n, η, ξ〉 α−→ 〈�1, ..,�′i , ..., �n, Effecti(α, η), ξ〉

�i

g :α↪→i �′i ∧ η |= g

〈�1, ..,�i , ..., �n, η, ξ〉 α−→ 〈�1, ..,�′i , ..., �n, Effecti(α, η), ξ〉

36 / 131

Page 37: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Transition relation of channel systems pc2.2-28

states 〈�1, ..., �n, η, ξ〉〈�1, ..., �n, η, ξ〉〈�1, ..., �n, η, ξ〉 where �i ∈ Loci�i ∈ Loci�i ∈ Loci , η ∈ Eval(Var)η ∈ Eval(Var)η ∈ Eval(Var),ξ ∈ Eval(Chan)ξ ∈ Eval(Chan)ξ ∈ Eval(Chan)

transition relation −→−→−→ is given by SOS-rules:

• interleaving rules for α ∈ Actiα ∈ Actiα ∈ Acti

• rules for message passing along channels

interleaving rule for actions α ∈ Actiα ∈ Actiα ∈ Acti :

�i

g :α↪→i �′i ∧ η |= g

〈�1, ..,�i , ..., �n, η, ξ〉 α−→ 〈�1, ..,�′i , ..., �n, Effecti(α, η), ξ〉

�i

g :α↪→i �′i ∧ η |= g

〈�1, ..,�i , ..., �n, η, ξ〉 α−→ 〈�1, ..,�′i , ..., �n, Effecti(α, η), ξ〉

�i

g :α↪→i �′i ∧ η |= g

〈�1, ..,�i , ..., �n, η, ξ〉 α−→ 〈�1, ..,�′i , ..., �n, Effecti(α, η), ξ〉

↑↑↑does not affect the channel evaluation ξξξ

37 / 131

Page 38: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

SOS-rules for asynchronous message passing pc2.2-29

for channel ccc with cap(c) ≥ 1cap(c) ≥ 1cap(c) ≥ 1

38 / 131

Page 39: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

SOS-rules for asynchronous message passing pc2.2-29

for channel ccc with cap(c) ≥ 1cap(c) ≥ 1cap(c) ≥ 1

receiving a message:

�ic?x↪→i �′i ∧ ξ(c) = v1v2...vk ∧ k ≥ 1

〈�1, ...,�i , ..., �n, η, ξ〉 τ−→ 〈�1, ...,�′i , ..., �n, η

′, ξ′〉�i

c?x↪→i �′i ∧ ξ(c) = v1v2...vk ∧ k ≥ 1

〈�1, ...,�i , ..., �n, η, ξ〉 τ−→ 〈�1, ...,�′i , ..., �n, η

′, ξ′〉�i

c?x↪→i �′i ∧ ξ(c) = v1v2...vk ∧ k ≥ 1

〈�1, ...,�i , ..., �n, η, ξ〉 τ−→ 〈�1, ...,�′i , ..., �n, η

′, ξ′〉

39 / 131

Page 40: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

SOS-rules for asynchronous message passing pc2.2-29

for channel ccc with cap(c) ≥ 1cap(c) ≥ 1cap(c) ≥ 1

receiving a message:

�ic?x↪→i �′i ∧ ξ(c) = v1v2...vk ∧ k ≥ 1

〈�1, ...,�i , ..., �n, η, ξ〉 τ−→ 〈�1, ...,�′i , ..., �n, η

′, ξ′〉�i

c?x↪→i �′i ∧ ξ(c) = v1v2...vk ∧ k ≥ 1

〈�1, ...,�i , ..., �n, η, ξ〉 τ−→ 〈�1, ...,�′i , ..., �n, η

′, ξ′〉�i

c?x↪→i �′i ∧ ξ(c) = v1v2...vk ∧ k ≥ 1

〈�1, ...,�i , ..., �n, η, ξ〉 τ−→ 〈�1, ...,�′i , ..., �n, η

′, ξ′〉

where η′ = η[x :=v1]η′ = η[x :=v1]η′ = η[x :=v1]

η[x :=v1](y) =

{η(y) if y �= xv1 if y = x

η[x :=v1](y) =

{η(y) if y �= xv1 if y = x

η[x :=v1](y) =

{η(y) if y �= xv1 if y = x

40 / 131

Page 41: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

SOS-rules for asynchronous message passing pc2.2-29

for channel ccc with cap(c) ≥ 1cap(c) ≥ 1cap(c) ≥ 1

receiving a message:

�ic?x↪→i �′i ∧ ξ(c) = v1v2...vk ∧ k ≥ 1

〈�1, ...,�i , ..., �n, η, ξ〉 τ−→ 〈�1, ...,�′i , ..., �n, η

′, ξ′〉�i

c?x↪→i �′i ∧ ξ(c) = v1v2...vk ∧ k ≥ 1

〈�1, ...,�i , ..., �n, η, ξ〉 τ−→ 〈�1, ...,�′i , ..., �n, η

′, ξ′〉�i

c?x↪→i �′i ∧ ξ(c) = v1v2...vk ∧ k ≥ 1

〈�1, ...,�i , ..., �n, η, ξ〉 τ−→ 〈�1, ...,�′i , ..., �n, η

′, ξ′〉

where η′ = η[x :=v1]η′ = η[x :=v1]η′ = η[x :=v1] and ξ′ = ξ[c :=v2...vk]ξ′ = ξ[c:=v2...vk]ξ′ = ξ[c :=v2...vk]

η[x :=v1](y) =

{η(y) if y �= xv1 if y = x

η[x :=v1](y) =

{η(y) if y �= xv1 if y = x

η[x :=v1](y) =

{η(y) if y �= xv1 if y = x

ξ[c :=v2...vk](d) =

{ξ(d) if d �= cv2 . . . vk if d = c

ξ[c :=v2...vk](d) =

{ξ(d) if d �= cv2 . . . vk if d = c

ξ[c:=v2...vk](d) =

{ξ(d) if d �= cv2 . . . vk if d = c

41 / 131

Page 42: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

SOS-rules for asynchronous message passing pc2.2-29

for channel ccc with cap(c) ≥ 1cap(c) ≥ 1cap(c) ≥ 1

receiving a message:

�ic?x↪→i �′i ∧ ξ(c) = v1v2...vk ∧ k ≥ 1

〈�1, ...,�i , ..., �n, η, ξ〉 τ−→ 〈�1, ...,�′i , ..., �n, η

′, ξ′〉�i

c?x↪→i �′i ∧ ξ(c) = v1v2...vk ∧ k ≥ 1

〈�1, ...,�i , ..., �n, η, ξ〉 τ−→ 〈�1, ...,�′i , ..., �n, η

′, ξ′〉�i

c?x↪→i �′i ∧ ξ(c) = v1v2...vk ∧ k ≥ 1

〈�1, ...,�i , ..., �n, η, ξ〉 τ−→ 〈�1, ...,�′i , ..., �n, η

′, ξ′〉

where η′ = η[x :=v1]η′ = η[x :=v1]η′ = η[x :=v1] and ξ′ = ξ[c :=v2...vk]ξ′ = ξ[c:=v2...vk]ξ′ = ξ[c :=v2...vk]

sending a message:

�ic!v↪→i �

′i ∧ ξ(c) = v1...vk ∧ k<cap(c)

〈�1, ...,�i , ..., �n, η, ξ〉 τ→ 〈�1, ...,�′i , ..., �n, η, ξ[c :=v1...vkv ]〉

�ic!v↪→i �

′i ∧ ξ(c) = v1...vk ∧ k<cap(c)

〈�1, ...,�i , ..., �n, η, ξ〉 τ→ 〈�1, ...,�′i , ..., �n, η, ξ[c :=v1...vkv ]〉

�ic!v↪→i �

′i ∧ ξ(c) = v1...vk ∧ k<cap(c)

〈�1, ...,�i , ..., �n, η, ξ〉 τ→ 〈�1, ...,�′i , ..., �n, η, ξ[c :=v1...vkv ]〉

42 / 131

Page 43: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

SOS-rules for synchronous message passing pc2.2-30

43 / 131

Page 44: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

SOS-rules for synchronous message passing pc2.2-30

for synchronous channel ccc :

�ic?x↪→i �′i ∧ �j

c!v↪→j �′j ∧ i �= j

〈�1, ...,�i , ..., �j, ..., �n, η, ξ〉 τ→ 〈�1, ...,�′i , ..., �

′j , ..., �n, η

′, ξ′〉�i

c?x↪→i �′i ∧ �j

c!v↪→j �′j ∧ i �= j

〈�1, ...,�i , ..., �j , ..., �n, η, ξ〉 τ→ 〈�1, ...,�′i , ..., �

′j , ..., �n, η

′, ξ′〉�i

c?x↪→i �′i ∧ �j

c!v↪→j �′j ∧ i �= j

〈�1, ...,�i , ..., �j, ..., �n, η, ξ〉 τ→ 〈�1, ...,�′i , ..., �

′j, ..., �n, η

′, ξ′〉

44 / 131

Page 45: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

SOS-rules for synchronous message passing pc2.2-30

for synchronous channel ccc :

�ic?x↪→i �′i ∧ �j

c!v↪→j �′j ∧ i �= j

〈�1, ...,�i , ..., �j, ..., �n, η, ξ〉 τ→ 〈�1, ...,�′i , ..., �

′j , ..., �n, η

′, ξ′〉�i

c?x↪→i �′i ∧ �j

c!v↪→j �′j ∧ i �= j

〈�1, ...,�i , ..., �j , ..., �n, η, ξ〉 τ→ 〈�1, ...,�′i , ..., �

′j , ..., �n, η

′, ξ′〉�i

c?x↪→i �′i ∧ �j

c!v↪→j �′j ∧ i �= j

〈�1, ...,�i , ..., �j, ..., �n, η, ξ〉 τ→ 〈�1, ...,�′i , ..., �

′j, ..., �n, η

′, ξ′〉

where η′ = η[x :=v ]η′ = η[x :=v ]η′ = η[x :=v ]

45 / 131

Page 46: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

SOS-rules for synchronous message passing pc2.2-30

for synchronous channel ccc :

�ic?x↪→i �′i ∧ �j

c!v↪→j �′j ∧ i �= j

〈�1, ...,�i , ..., �j, ..., �n, η, ξ〉 τ→ 〈�1, ...,�′i , ..., �

′j , ..., �n, η

′, ξ′〉�i

c?x↪→i �′i ∧ �j

c!v↪→j �′j ∧ i �= j

〈�1, ...,�i , ..., �j , ..., �n, η, ξ〉 τ→ 〈�1, ...,�′i , ..., �

′j , ..., �n, η

′, ξ′〉�i

c?x↪→i �′i ∧ �j

c!v↪→j �′j ∧ i �= j

〈�1, ...,�i , ..., �j, ..., �n, η, ξ〉 τ→ 〈�1, ...,�′i , ..., �

′j, ..., �n, η

′, ξ′〉

where η′ = η[x :=v ]η′ = η[x :=v ]η′ = η[x :=v ] and ξ′ = ξξ′ = ξξ′ = ξ

46 / 131

Page 47: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

How many states... pc2.2-31

has a transition system for a channel system with ... ?

• 222 processes with 222 locations each

• 222 Boolean variables

• 222 channels of capacity 101010 and Boolean values

47 / 131

Page 48: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

How many states... pc2.2-31

has a transition system for a channel system with ... ?

• 222 processes with 222 locations each

• 222 Boolean variables

• 222 channels of capacity 101010 and Boolean values

answer:

2∗2∗2∗2∗(211−1)∗(211−1)2∗2∗2∗2∗(211−1)∗(211−1)2∗2∗2∗2∗(211−1)∗(211−1)

note: 211−1 = 1 + 2 + 22 + ... + 210211−1 = 1 + 2 + 22 + ... + 210211−1 = 1 + 2 + 22 + ... + 210

48 / 131

Page 49: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

How many states... pc2.2-31

has a transition system for a channel system with ... ?

• 222 processes with 222 locations each

• 222 Boolean variables

• 222 channels of capacity 101010 and Boolean values

answer:

2∗2∗2∗2∗(211−1)∗(211−1) > 224 > 252∗2∗2∗2∗(211−1)∗(211−1) > 224 > 252∗2∗2∗2∗(211−1)∗(211−1) > 224 > 25 mio

note: 211−1 = 1 + 2 + 22 + ... + 210211−1 = 1 + 2 + 22 + ... + 210211−1 = 1 + 2 + 22 + ... + 210

49 / 131

Page 50: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

How many states... pc2.2-31

has a transition system for a channel system with ... ?

• 222 processes with 222 locations each

• 222 Boolean variables

• 222 channels of capacity 101010 and Boolean values

answer:

2∗2∗2∗2∗(211−1)∗(211−1) > 224 > 252∗2∗2∗2∗(211−1)∗(211−1) > 224 > 252∗2∗2∗2∗(211−1)∗(211−1) > 224 > 25 mio

note: 211−1 = 1 + 2 + 22 + ... + 210211−1 = 1 + 2 + 22 + ... + 210211−1 = 1 + 2 + 22 + ... + 210

... with an unbounded channel ?

50/131

Page 51: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

How many states... pc2.2-31

has a transition system for a channel system with ... ?

• 222 processes with 222 locations each

• 222 Boolean variables

• 222 channels of capacity 101010 and Boolean values

answer:

2∗2∗2∗2∗(211−1)∗(211−1) > 224 > 252∗2∗2∗2∗(211−1)∗(211−1) > 224 > 252∗2∗2∗2∗(211−1)∗(211−1) > 224 > 25 mio

note: 211−1 = 1 + 2 + 22 + ... + 210211−1 = 1 + 2 + 22 + ... + 210211−1 = 1 + 2 + 22 + ... + 210

... with an unbounded channel ?

answer: ∞∞∞51 / 131

Page 52: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Alternating bit protocol (ABP) pc2.2-32

sender receiver

send acknowledgement

message

52 / 131

Page 53: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Alternating bit protocol (ABP) pc2.2-32

sender receiver

send acknowledgement

send message +++ bit yyyvia unreliable channel

53 / 131

Page 54: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Alternating bit protocol (ABP) pc2.2-32

sender receiver

return the received bit yyy

send message +++ bit yyyvia unreliable channel

54 / 131

Page 55: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Alternating bit protocol (ABP) pc2.2-32

sender

timer

receiver

return the received bit yyy

send message +++ bit yyyvia unreliable channel

55 / 131

Page 56: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Protocol for the sender pc2.2-32

sender

timer

timeoutreceiver

return the received bit yyy

send message +++ bit yyyvia unreliable channel

LOOP FOREVER

(1) send message +++ bit yyy and activate timer(2) AWAIT timeout or acknowledgement DO

IF timeout THEN goto (1)ELSE turn off timer; y :=¬yy :=¬yy :=¬y

FIOD

56 / 131

Page 57: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Protocol for the sender pc2.2-32

sender

timer

timeoutreceiver

return the received bit yyyvia a reliable channel

send message +++ bit yyyvia unreliable channel

LOOP FOREVER

(1) send message +++ bit yyy and activate timer(2) AWAIT timeout or acknowledgement DO

IF timeout THEN goto (1)ELSE turn off timer; y :=¬yy :=¬yy :=¬y

FIOD

57 / 131

Page 58: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

If both channels are unreliable ... pc2.2-33

sender

timer

receiver

timer

acknowledgement bit xxxvia unreliable channel d

message +++ bit yyyvia unreliable channel c

58 / 131

Page 59: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

If both channels are unreliable ... pc2.2-33

sender

timer

receiver

timer

acknowledgement bit xxxvia unreliable channel d

message +++ bit yyyvia unreliable channel c

LOOP FOREVER

(1) send message +++ bit yyy and activate timer(2) AWAIT timeout or acknowledgement xxx DO

IF timeout THEN goto (1)ELSE IF x=yx=yx=y THEN turn off timer; y :=¬yy :=¬yy :=¬y

ELSE ignore xxxFI

FIOD

59 / 131

Page 60: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Alternating bit protocol (ABP) pc2.2-34

SenderSenderSender

TimerTimerTimer

ReceiverReceiverReceiver

(un)reliable channel ddd

unreliable channel ccc

channel system:[Sender |Timer |Receiver

][Sender |Timer |Receiver

][Sender |Timer |Receiver

]

60 / 131

Page 61: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Alternating bit protocol (ABP) pc2.2-34

SenderSenderSender

TimerTimerTimer

ReceiverReceiverReceiver

(un)reliable channel ddd

unreliable channel ccc

channel system:[Sender |Timer |Receiver

][Sender |Timer |Receiver

][Sender |Timer |Receiver

]synchronous message passing between

TimerTimerTimer and SenderSenderSender

asynchronous message passing betweenReceiverReceiverReceiver and SenderSenderSender

61 / 131

Page 62: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Alternating bit protocol (ABP) pc2.2-34

SenderSenderSender

TimerTimerTimer

ReceiverReceiverReceiver

channel eee

channel fff

(un)reliable channel ddd

unreliable channel ccc

channel system:[Sender |Timer |Receiver

][Sender |Timer |Receiver

][Sender |Timer |Receiver

]synchronous message passing between

TimerTimerTimer and SenderSenderSender ←←← channels eee and fff

asynchronous message passing betweenReceiverReceiverReceiver and SenderSenderSender ←←← channels ccc ,ddd

62 / 131

Page 63: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Alternating bit protocol (ABP) pc2.2-34

SenderSenderSender

TimerTimerTimer

ReceiverReceiverReceiver

channel eee

channel fff

(un)reliable channel ddd

unreliable channel ccc

channel system:[Sender |Timer |Receiver

][Sender |Timer |Receiver

][Sender |Timer |Receiver

]

off one?ze?ze?z

f !timeoutf !timeoutf !timeout

e?ze?ze?zTimerTimerTimer

63 / 131

Page 64: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Alternating bit protocol (ABP) pc2.2-34

SenderSenderSender

TimerTimerTimer

ReceiverReceiverReceiver

channel eee

channel fff

(un)reliable channel ddd

unreliable channel ccc

channel system:[Sender |Timer |Receiver

][Sender |Timer |Receiver

][Sender |Timer |Receiver

]

off one?ze?ze?z

f !timeoutf !timeoutf !timeout

e?ze?ze?zTimerTimerTimer actions of SenderSenderSender :.........

e!timer one!timer one!timer one!timer offe!timer offe!timer offf ?z ′f ?z ′f ?z ′

...

...

...64 / 131

Page 65: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Program graph for the sender pc2.2-35

SenderSenderSender

TimerTimerTimer

ReceiverReceiverReceiver

eeefff

unreliable channel ddd

unreliable channel ccc

specify the sender by a program graph using

• asynchronous channels ccc and ddd

• synchronous channels eee and fff

65 / 131

Page 66: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Program graph for the sender pc2.2-35

SenderSenderSender

TimerTimerTimer

ReceiverReceiverReceiver

eeefff

unreliable channel ddd

unreliable channel ccc

specify the sender by a program graph using

• asynchronous channels ccc and ddd

• synchronous channels eee and fff↖↖↖↗↗↗

simply write !timeout!timeout!timeout?timer on?timer on?timer on?timer off?timer off?timer off

66 / 131

Page 67: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Program graph for the sender pc2.2-35

SenderSenderSender

TimerTimerTimer

ReceiverReceiverReceiver

eeefff

unreliable channel ddd

unreliable channel ccc

specify the sender by a program graph using

• asynchronous channels ccc and ddd

• synchronous channels eee and fff

• Boolean variable xxx for theacknowledgement bit sent by the receiver

67 / 131

Page 68: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

generatemessage(0)

try tosend(0)

68 / 131

Page 69: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

generatemessage(0)

try tosend(0)

activatetimer(0)

c!0c!0c!0

69 / 131

Page 70: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

generatemessage(0)

try tosend(0)

activatetimer(0)

c!0c!0c!0lostlostlost

70 / 131

Page 71: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

generatemessage(0)

try tosend(0)

activatetimer(0)

c!0c!0c!0lostlostlost

wait(0)

!timer on!timer on!timer on

?timeout?timeout?timeout

check ack(0)

d?xd?xd?xx=1x=1x=1

71 / 131

Page 72: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

generatemessage(0)

try tosend(0)

activatetimer(0)

c!0c!0c!0lostlostlost

wait(0)

!timer on!timer on!timer on

?timeout?timeout?timeout

check ack(0)

d?xd?xd?xx=1x=1x=1

generatemessage(1)

x=0:x=0:x=0:!timer off!timer off!timer off

72 / 131

Page 73: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

generatemessage(0)

try tosend(0)

activatetimer(0)

c!0c!0c!0lostlostlost

wait(0)

!timer on!timer on!timer on

?timeout?timeout?timeout

check ack(0)

d?xd?xd?xx=1x=1x=1

generatemessage(1)

try tosend(1)

activatetimer(1)

c!1c!1c!1 lostlostlost

wait(1)

!timer on!timer on!timer on

?timeout?timeout?timeout

check ack(1)

d?xd?xd?xx=0x=0x=0x=0:x=0:x=0:!timer off!timer off!timer off

x=1:x=1:x=1:!timer off!timer off!timer off

73 / 131

Page 74: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Program graph for the receiver pc2.2-36

SenderSenderSender

TimerTimerTimer

ReceiverReceiverReceiver

eee

fff

reliable channel ddd

unreliable channel ccc

wait formessage(0)

processmessage(0)

acknowledgereceipt(0)

acknowledgereceipt(1)

processmessage(1)

wait formessage(1)

c?yc?yc?y c?yc?yc?y

y=0y=0y=0 y=1y=1y=1

y=1y=1y=1 y=0y=0y=0

d !0d !0d !0

d !1d !1d !1

74 / 131

Page 75: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

75 / 131

Page 76: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

Generate(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε

76 / 131

Page 77: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

Generate(0) off Wait(0) c=εc=εc=ε d=εd=εd=εSend(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε

77 / 131

Page 78: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

Generate(0) off Wait(0) c=εc=εc=ε d=εd=εd=εSend(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε message lost

78 / 131

Page 79: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

Generate(0) off Wait(0) c=εc=εc=ε d=εd=εd=εSend(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε message lostTimer on(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε

79 / 131

Page 80: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

Generate(0) off Wait(0) c=εc=εc=ε d=εd=εd=εSend(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε message lostTimer on(0) off Wait(0) c=εc=εc=ε d=εd=εd=εWait(0) on Wait(0) c=εc=εc=ε d=εd=εd=ε

80 / 131

Page 81: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

Generate(0) off Wait(0) c=εc=εc=ε d=εd=εd=εSend(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε message lostTimer on(0) off Wait(0) c=εc=εc=ε d=εd=εd=εWait(0) on Wait(0) c=εc=εc=ε d=εd=εd=ε timeout

81 / 131

Page 82: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

Generate(0) off Wait(0) c=εc=εc=ε d=εd=εd=εSend(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε message lostTimer on(0) off Wait(0) c=εc=εc=ε d=εd=εd=εWait(0) on Wait(0) c=εc=εc=ε d=εd=εd=ε timeoutSend(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε

...

...

... try again

82 / 131

Page 83: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

83 / 131

Page 84: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

Generate(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε

84 / 131

Page 85: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

Generate(0) off Wait(0) c=εc=εc=ε d=εd=εd=εSend(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε

85 / 131

Page 86: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

Generate(0) off Wait(0) c=εc=εc=ε d=εd=εd=εSend(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε message 000 sent

86 / 131

Page 87: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

Generate(0) off Wait(0) c=εc=εc=ε d=εd=εd=εSend(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε message 000 sentTimer on(0) off Wait(0) c=0c=0c=0 d=εd=εd=ε

87 / 131

Page 88: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

Generate(0) off Wait(0) c=εc=εc=ε d=εd=εd=εSend(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε message 000 sentTimer on(0) off Wait(0) c=0c=0c=0 d=εd=εd=εWait(0) on Wait(0) c=0c=0c=0 d=εd=εd=ε

88 / 131

Page 89: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

Generate(0) off Wait(0) c=εc=εc=ε d=εd=εd=εSend(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε message 000 sentTimer on(0) off Wait(0) c=0c=0c=0 d=εd=εd=εWait(0) on Wait(0) c=0c=0c=0 d=εd=εd=ε timeout

89 / 131

Page 90: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

Generate(0) off Wait(0) c=εc=εc=ε d=εd=εd=εSend(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε message 000 sentTimer on(0) off Wait(0) c=0c=0c=0 d=εd=εd=εWait(0) on Wait(0) c=0c=0c=0 d=εd=εd=ε timeoutSend(0) off Wait(0) c=0c=0c=0 d=εd=εd=ε

90 / 131

Page 91: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

Generate(0) off Wait(0) c=εc=εc=ε d=εd=εd=εSend(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε message 000 sentTimer on(0) off Wait(0) c=0c=0c=0 d=εd=εd=εWait(0) on Wait(0) c=0c=0c=0 d=εd=εd=ε timeoutSend(0) off Wait(0) c=0c=0c=0 d=εd=εd=ε 000 sent againTimer on(0) off Wait(0) c=00c=00c=00 d=εd=εd=ε

91 / 131

Page 92: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

Generate(0) off Wait(0) c=εc=εc=ε d=εd=εd=εSend(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε message 000 sentTimer on(0) off Wait(0) c=0c=0c=0 d=εd=εd=εWait(0) on Wait(0) c=0c=0c=0 d=εd=εd=ε timeoutSend(0) off Wait(0) c=0c=0c=0 d=εd=εd=ε 000 sent againTimer on(0) off Wait(0) c=00c=00c=00 d=εd=εd=εTimer on(0) off Proc(0) c=0c=0c=0 d=εd=εd=ε message received

92 / 131

Page 93: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

Generate(0) off Wait(0) c=εc=εc=ε d=εd=εd=εSend(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε message 000 sentTimer on(0) off Wait(0) c=0c=0c=0 d=εd=εd=εWait(0) on Wait(0) c=0c=0c=0 d=εd=εd=ε timeoutSend(0) off Wait(0) c=0c=0c=0 d=εd=εd=ε 000 sent againTimer on(0) off Wait(0) c=00c=00c=00 d=εd=εd=εTimer on(0) off Proc(0) c=0c=0c=0 d=εd=εd=ε message receivedTimer on(0) off Ack(0) c=0c=0c=0 d=εd=εd=ε

93 / 131

Page 94: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

Generate(0) off Wait(0) c=εc=εc=ε d=εd=εd=εSend(0) off Wait(0) c=εc=εc=ε d=εd=εd=ε message 000 sentTimer on(0) off Wait(0) c=0c=0c=0 d=εd=εd=εWait(0) on Wait(0) c=0c=0c=0 d=εd=εd=ε timeoutSend(0) off Wait(0) c=0c=0c=0 d=εd=εd=ε 000 sent againTimer on(0) off Wait(0) c=00c=00c=00 d=εd=εd=εTimer on(0) off Proc(0) c=0c=0c=0 d=εd=εd=ε message receivedTimer on(0) off Ack(0) c=0c=0c=0 d=εd=εd=ε send ack via ddd

94 / 131

Page 95: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

...

...

............

...

...

............

...

...

...Wait(0) on Wait(0) c=0c=0c=0 d=εd=εd=ε timeoutSend(0) off Wait(0) c=0c=0c=0 d=εd=εd=ε 000 sent againTimer on(0) off Wait(0) c=00c=00c=00 d=εd=εd=εTimer on(0) off Proc(0) c=0c=0c=0 d=εd=εd=ε message receivedTimer on(0) off Ack(0) c=0c=0c=0 d=εd=εd=ε send ack via dddTimer on(0) off Wait(1) c=0c=0c=0 d=0d=0d=0 receiver changes

its mode95 / 131

Page 96: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

...

...

............

...

...

............

...

...

...Timer on(0) off Wait(1) c=0c=0c=0 d=0d=0d=0

96 / 131

Page 97: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

...

...

............

...

...

............

...

...

...Timer on(0) off Wait(1) c=0c=0c=0 d=0d=0d=0 receiver reads the

same message again

97 / 131

Page 98: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

...

...

............

...

...

............

...

...

...Timer on(0) off Wait(1) c=0c=0c=0 d=0d=0d=0 receiver reads the

same message againTimer on(0) off Proc(1) c=εc=εc=ε d=0d=0d=0

98 / 131

Page 99: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

...

...

............

...

...

............

...

...

...Timer on(0) off Wait(1) c=0c=0c=0 d=0d=0d=0 receiver reads the

same message againTimer on(0) off Proc(1) c=εc=εc=ε d=0d=0d=0 receiver discards

the message

99 / 131

Page 100: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

...

...

............

...

...

............

...

...

...Timer on(0) off Wait(1) c=0c=0c=0 d=0d=0d=0 receiver reads the

same message againTimer on(0) off Proc(1) c=εc=εc=ε d=0d=0d=0 receiver discards

the messageTimer on(0) off Wait(1) c=εc=εc=ε d=0d=0d=0

100 / 131

Page 101: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

...

...

............

...

...

............

...

...

...Timer on(0) off Wait(1) c=0c=0c=0 d=0d=0d=0 receiver reads the

same message againTimer on(0) off Proc(1) c=εc=εc=ε d=0d=0d=0 receiver discards

the messageTimer on(0) off Wait(1) c=εc=εc=ε d=0d=0d=0.........

...

...

............

...

...

............

101 / 131

Page 102: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Alternating bit protocol (ABP) pc2.2-37c

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

number of states in the TS:

10 · 2 · 6 ·10 · 2 · 6 ·10 · 2 · 6 · ###channel evaluations

102 / 131

Page 103: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Alternating bit protocol (ABP) pc2.2-37c

G(0)G(0)G(0)

S(0)S(0)S(0)

T (0)T (0)T (0)

W (0)W (0)W (0)

C (0)C (0)C (0)

G(1)G(1)G(1)

S(1)S(1)S(1)

T (1)T (1)T (1)

W (1)W (1)W (1)

C (1)C (1)C (1)

offoffoff

ononon

W (0)W (0)W (0)

P(0)P(0)P(0)

A(0)A(0)A(0)

W (1)W (1)W (1)

P(1)P(1)P(1)

A(1)A(1)A(1)

number of states in the TS:

10 · 2 · 6 ·10 · 2 · 6 ·10 · 2 · 6 · ###channel evaluations

> 108> 108> 108 for FIFOs with capacity 101010

103 / 131

Page 104: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Variants of channel systems pc2.2-38

• conditional communication actions �g :c?x↪→ �′�

g :c?x↪→ �′�

g :c?x↪→ �′

104 / 131

Page 105: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Variants of channel systems pc2.2-38

• conditional communication actions �g :c?x↪→ �′�

g :c?x↪→ �′�

g :c?x↪→ �′

• generalized sending instructions c!exprc!exprc!expr instead of c!vc!vc!v

��� �′�′�′e.g. d?xd?xd?x

c!2x+7c!2x+7c!2x+7

105 / 131

Page 106: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Variants of channel systems pc2.2-38

• conditional communication actions �g :c?x↪→ �′�

g :c?x↪→ �′�

g :c?x↪→ �′

• generalized sending instructions c!exprc!exprc!expr instead of c!vc!vc!v

��� �′�′�′e.g. d?xd?xd?x

c!2x+7c!2x+7c!2x+7

• communication as conditions �c?x :α↪→ �′�

c?x :α↪→ �′�

c?x :α↪→ �′

106 / 131

Page 107: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Variants of channel systems pc2.2-38

• conditional communication actions �g :c?x↪→ �′�

g :c?x↪→ �′�

g :c?x↪→ �′

• generalized sending instructions c!exprc!exprc!expr instead of c!vc!vc!v

��� �′�′�′e.g. d?xd?xd?x

c!2x+7c!2x+7c!2x+7

• communication as conditions �c?x :α↪→ �′�

c?x :α↪→ �′�

c?x :α↪→ �′

��� more compact TS-representations

107 / 131

Page 108: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Variants of channel systems pc2.2-38

• conditional communication actions �g :c?x↪→ �′�

g :c?x↪→ �′�

g :c?x↪→ �′

• generalized sending instructions c!exprc!exprc!expr instead of c!vc!vc!v

• communication as conditions �c?x :α↪→ �′�

c?x :α↪→ �′�

c?x :α↪→ �′

• open channel systems P1 | . . . | PnP1 | . . . | PnP1 | . . . | Pn

instead of closed channel systems [P1 | . . . | Pn ][P1 | . . . | Pn ][P1 | . . . | Pn ]

108 / 131

Page 109: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Variants of channel systems pc2.2-38

• conditional communication actions �g :c?x↪→ �′�

g :c?x↪→ �′�

g :c?x↪→ �′

• generalized sending instructions c!exprc!exprc!expr instead of c!vc!vc!v

• communication as conditions �c?x :α↪→ �′�

c?x :α↪→ �′�

c?x :α↪→ �′

• open channel systems P1 | . . . | PnP1 | . . . | PnP1 | . . . | Pn

instead of closed channel systems [P1 | . . . | Pn ][P1 | . . . | Pn ][P1 | . . . | Pn ]

P1P1P1 P2P2P2P3P3P3

c1c1c1

c2c2c2

d1d1d1

d5d5d5

d2d2d2

d3d3d3

d4d4d4

109 / 131

Page 110: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Summary: parallel operators pc2.2-39

110 / 131

Page 111: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Summary: parallel operators pc2.2-39

(pure) interleaving for TS T1 ||| T2T1 ||| T2T1 ||| T2

• only concurrency, no communication• not applicable for competing systems

111 / 131

Page 112: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Summary: parallel operators pc2.2-39

(pure) interleaving for TS T1 ||| T2T1 ||| T2T1 ||| T2

• only concurrency, no communication• not applicable for competing systems

synchronous message passing for TS T1 ‖Syn T2T1 ‖Syn T2T1 ‖Syn T2

• interleaving for concurrent actions• synchronization via actions in SynSynSyn

112 / 131

Page 113: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Summary: parallel operators pc2.2-39

(pure) interleaving for TS T1 ||| T2T1 ||| T2T1 ||| T2

• only concurrency, no communication• not applicable for competing systems

synchronous message passing for TS T1 ‖Syn T2T1 ‖Syn T2T1 ‖Syn T2

• interleaving for concurrent actions• synchronization via actions in SynSynSyn

interleaving for program graphs P1 ||| P2P1 ||| P2P1 ||| P2

• interleaving for concurrent actions• communication via shared variables

113 / 131

Page 114: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Summary: parallel operators pc2.2-39

(pure) interleaving for TS T1 ||| T2T1 ||| T2T1 ||| T2

• only concurrency, no communication• not applicable for competing systems

synchronous message passing for TS T1 ‖Syn T2T1 ‖Syn T2T1 ‖Syn T2

• interleaving for concurrent actions• synchronization via actions in SynSynSyn

interleaving for program graphs P1 ||| P2P1 ||| P2P1 ||| P2

• interleaving for concurrent actions• communication via shared variables

channel systems: open P1 | . . . |PnP1 | . . . |PnP1 | . . . |Pn or closed [P1 | . . . |Pn ][P1 | . . . |Pn ][P1 | . . . |Pn ]

• interleaving, shared variables, message passing114 / 131

Page 115: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Parallel operators pc2.2-39a

(pure) interleaving for TS T1 ||| T2T1 ||| T2T1 ||| T2

• only concurrency, no communication

synchronous message passing for TS T1 ‖Syn T2T1 ‖Syn T2T1 ‖Syn T2

• interleaving, synchronization via actions in SynSynSyn

interleaving for program graphs P1 ||| P2P1 ||| P2P1 ||| P2

• interleaving, shared variables

channel systems: open P1 | . . . |PnP1 | . . . |PnP1 | . . . |Pn or closed [P1 | . . . |Pn ][P1 | . . . |Pn ][P1 | . . . |Pn ]

• interleaving, shared variables• synchronous and asynchronous message passing

synchronous product for TS T1 ⊗ T2T1 ⊗ T2T1 ⊗ T2

• no interleaving, “pure” synchronization115 / 131

Page 116: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Synchronous product pc2.2-41

for parallel systems with fully synchronized processes

T1 = (S1, Act1,−→1, ...)T1 = (S1, Act1,−→1, ...)T1 = (S1, Act1,−→1, ...)T2 = (S2, Act2,−→2, ...)T2 = (S2, Act2,−→2, ...)T2 = (S2, Act2,−→2, ...)

}two TS

synchronous product:

T1 ⊗ T2 = (S1 × S2, Act,−→, ...)T1 ⊗ T2 = (S1 × S2, Act,−→, ...)T1 ⊗ T2 = (S1 × S2, Act,−→, ...)

116 / 131

Page 117: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Synchronous product pc2.2-41

for parallel systems with fully synchronized processes

T1 = (S1, Act1,−→1, ...)T1 = (S1, Act1,−→1, ...)T1 = (S1, Act1,−→1, ...)T2 = (S2, Act2,−→2, ...)T2 = (S2, Act2,−→2, ...)T2 = (S2, Act2,−→2, ...)

}two TS

synchronous product:

T1 ⊗ T2 = (S1 × S2, Act,−→, ...)T1 ⊗ T2 = (S1 × S2, Act,−→, ...)T1 ⊗ T2 = (S1 × S2, Act,−→, ...)

where the action set ActActAct is given by a function

Act1×Act2 −→ ActAct1×Act2 −→ ActAct1×Act2 −→ Act, (α, β) �→(α, β) �→(α, β) �→ α∗βα∗βα∗β↑↑↑

action name for the concurrentexecution of ααα and βββ

117 / 131

Page 118: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Synchronous product pc2.2-41

for parallel systems with fully synchronized processes

T1 = (S1, Act1,−→1, ...)T1 = (S1, Act1,−→1, ...)T1 = (S1, Act1,−→1, ...)T2 = (S2, Act2,−→2, ...)T2 = (S2, Act2,−→2, ...)T2 = (S2, Act2,−→2, ...)

}two TS

synchronous product:

T1 ⊗ T2 = (S1 × S2, Act,−→, ...)T1 ⊗ T2 = (S1 × S2, Act,−→, ...)T1 ⊗ T2 = (S1 × S2, Act,−→, ...)

where the action set ActActAct is given by a function

Act1×Act2 −→ ActAct1×Act2 −→ ActAct1×Act2 −→ Act, (α, β) �→(α, β) �→(α, β) �→ α∗βα∗βα∗β↑↑↑

action name for the concurrentexecution of ααα and βββ

if action names are irrelevant: Act1 = Act2 = Act = {τ}Act1 = Act2 = Act = {τ}Act1 = Act2 = Act = {τ}118 / 131

Page 119: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Synchronous product pc2.2-41

for parallel systems with fully synchronized processes

T1 = (S1, Act1,−→1, ...)T1 = (S1, Act1,−→1, ...)T1 = (S1, Act1,−→1, ...)T2 = (S2, Act2,−→2, ...)T2 = (S2, Act2,−→2, ...)T2 = (S2, Act2,−→2, ...)

}two TS

synchronous product:

T1 ⊗ T2 = (S1 × S2, Act,−→, ...)T1 ⊗ T2 = (S1 × S2, Act,−→, ...)T1 ⊗ T2 = (S1 × S2, Act,−→, ...)

transition relation −→−→−→:

s1α−→1 s ′1 ∧ s2

β−→2 s ′2

〈s1, s2〉α∗β−→ 〈s ′1, s ′2〉

s1α−→1 s ′1 ∧ s2

β−→2 s ′2

〈s1, s2〉α∗β−→ 〈s ′1, s ′2〉

s1α−→1 s ′1 ∧ s2

β−→2 s ′2

〈s1, s2〉α∗β−→ 〈s ′1, s ′2〉

119 / 131

Page 120: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Synchronous product for composing circuits pc2.2-40

C1C1C1x1, ..., xnx1, ..., xnx1, ..., xn y1, ..., yny1, ..., yny1, ..., yn

r1, . . . , rkr1, . . . , rkr1, . . . , rk

C2C2C2w1, ..., wiw1, ..., wiw1, ..., wi z1, ..., zjz1, ..., zjz1, ..., zj

t1, . . . , tht1, . . . , tht1, . . . , th

222 sequential circuits

120 / 131

Page 121: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Synchronous product for composing circuits pc2.2-40

C1C1C1x1, ..., xnx1, ..., xnx1, ..., xn y1, ..., yny1, ..., yny1, ..., yn

r1, . . . , rkr1, . . . , rkr1, . . . , rk

C2C2C2w1, ..., wiw1, ..., wiw1, ..., wi z1, ..., zjz1, ..., zjz1, ..., zj

t1, . . . , tht1, . . . , tht1, . . . , th

C1 ⊗ C2C1 ⊗ C2C1 ⊗ C2

x1, . . . , xnx1, . . . , xnx1, . . . , xn

w1, . . . , wiw1, . . . , wiw1, . . . , wi

y1, . . . , yny1, . . . , yny1, . . . , yn

z1, . . . , zjz1, . . . , zjz1, . . . , zj

r1, . . . , rkr1, . . . , rkr1, . . . , rk t1, . . . , tht1, . . . , tht1, . . . , th

121 / 131

Page 122: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Synchronous product: example pc2.2-52

yyy

not

r1r1r1

zzz

r2r2r2

orxxx

122 / 131

Page 123: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Synchronous product: example pc2.2-52

yyy

not

r1r1r1

T1T1T1 000 111

initially:r1 = 0r1 = 0r1 = 0

transition function:δr1 = ¬r1δr1 = ¬r1δr1 = ¬r1

zzz

r2r2r2

orxxx

123 / 131

Page 124: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Synchronous product: example pc2.2-52

yyy

not

r1r1r1

T1T1T1 000 111

initially:r1 = 0r1 = 0r1 = 0

transition function:δr1 = ¬r1δr1 = ¬r1δr1 = ¬r1

zzz

r2r2r2

orxxx

T2T2T2

000000 101010

010101

111111

initially:r2 = 0r2 = 0r2 = 0

transition function:δr2 = r2 ∨ xδr2 = r2 ∨ xδr2 = r2 ∨ x

124 / 131

Page 125: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Synchronous product: example pc2.2-52

yyy

not

r1r1r1

T1T1T1 000 111

zzz

r2r2r2

orxxx

T2T2T2

000000 101010

010101

111111

TS for thecompositecircuitT1 ⊗ T2T1 ⊗ T2T1 ⊗ T2

000000000

010010010

100100100

101101101

111111111

001001001

011011011

110110110

125 / 131

Page 126: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Synchronous product: example pc2.2-52

yyy

not

r1r1r1

T1T1T1 000 111

zzz

r2r2r2

orxxx

T2T2T2

000000 101010

010101

111111

TS for thecompositecircuitT1 ⊗ T2T1 ⊗ T2T1 ⊗ T2

000000000

010010010

100100100

101101101

111111111

001001001

011011011

110110110

126 / 131

Page 127: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Synchronous product: example pc2.2-52

yyy

not

r1r1r1

T1T1T1 000 111

zzz

r2r2r2

orxxx

T2T2T2

000000 101010

010101

111111

TS for thecompositecircuitT1 ⊗ T2T1 ⊗ T2T1 ⊗ T2

000000000

010010010

100100100

101101101

111111111

001001001

011011011

110110110

127 / 131

Page 128: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

State explosion problem pc2.2-42

TS for reactive systems can be enormously large

128 / 131

Page 129: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

State explosion problem pc2.2-42

TS for reactive systems can be enormously large

• infinite for systems with

∗∗∗ variables of infinite domains, e.g., N

∗∗∗ infinite data structures, e.g., stacks, queues, lists,...

129 / 131

Page 130: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

State explosion problem pc2.2-42

TS for reactive systems can be enormously large

• infinite for systems with

∗∗∗ variables of infinite domains, e.g., N

∗∗∗ infinite data structures, e.g., stacks, queues, lists,...

• if finite: exponential growth in

130 / 131

Page 131: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

State explosion problem pc2.2-42

TS for reactive systems can be enormously large

• infinite for systems with

∗∗∗ variables of infinite domains, e.g., N

∗∗∗ infinite data structures, e.g., stacks, queues, lists,...

• if finite: exponential growth in

∗∗∗ number of parallel components,e.g., state space of T1 ‖ ... ‖ TnT1 ‖ ... ‖ TnT1 ‖ ... ‖ Tn is S1×...×SnS1×...×SnS1×...×Sn

131 / 131

Page 132: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

State explosion problem pc2.2-42

TS for reactive systems can be enormously large

• infinite for systems with

∗∗∗ variables of infinite domains, e.g., N

∗∗∗ infinite data structures, e.g., stacks, queues, lists,...

• if finite: exponential growth in

∗∗∗ number of parallel components,e.g., state space of T1 ‖ ... ‖ TnT1 ‖ ... ‖ TnT1 ‖ ... ‖ Tn is S1×...×SnS1×...×SnS1×...×Sn

∗∗∗ number of variables and channels

132 / 131

Page 133: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

State explosion problem pc2.2-42

TS for reactive systems can be enormously large

• infinite for systems with

∗∗∗ variables of infinite domains, e.g., N

∗∗∗ infinite data structures, e.g., stacks, queues, lists,...

• if finite: exponential growth in

∗∗∗ number of parallel components,e.g., state space of T1 ‖ ... ‖ TnT1 ‖ ... ‖ TnT1 ‖ ... ‖ Tn is S1×...×SnS1×...×SnS1×...×Sn

∗∗∗ number of variables and channels

e.g., for channel systems: size of the state space is

|Loc1| · ... · |Locn| ·∏

x∈Var

|Dom(x)| ·∏

c∈Chan

|Dom(c)|cap(c)|Loc1| · ... · |Locn| ·∏

x∈Var

|Dom(x)| ·∏

c∈Chan

|Dom(c)|cap(c)|Loc1| · ... · |Locn| ·∏

x∈Var

|Dom(x)| ·∏

c∈Chan

|Dom(c)|cap(c)

133 / 131

Page 134: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Model checking pc2.2-43

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

transitionsystem TTT

requirements

specification specspecspec

model checkerdoes TTT satisfy specspecspec ?

yes no +++ error indication134 / 131

Page 135: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Model checking pc2.2-43

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

transition system TTTfor P1‖. . .‖PnP1‖. . .‖PnP1‖. . .‖Pn

requirements

specification specspecspec

model checkerdoes TTT satisfy specspecspec ?

yes no +++ error indication135 / 131

Page 136: Introduction - RWTH Aachen University · Introduction Modelling parallel systems Transition systems Modeling hard- and software systems Parallelism and communication ←− Linear

Model checking pc2.2-43

syntactic descriptionof P1, . . ., PnP1, . . ., PnP1, . . ., Pn

transition system TTTfor P1‖. . .‖PnP1‖. . .‖PnP1‖. . .‖Pn

requirements

specification specspecspec

model checkerdoes TTT satisfy specspecspec ?

yes no +++ error indication

SOS-rules

136 / 131