Process Algebra (2IF45) Expressiveness of BPA rec

45
Process Algebra (2IF45) Expressiveness of BPA rec Suzana Andova

description

Process Algebra (2IF45) Expressiveness of BPA rec. Suzana Andova. Outline. How far can we go with recursive specifications in BPA rec (A)? How expressive is BPA rec (A)? If it is not expressive as we want can we do better? How?. Recursive specs vs. Transition systems. - PowerPoint PPT Presentation

Transcript of Process Algebra (2IF45) Expressiveness of BPA rec

Page 1: Process Algebra (2IF45) Expressiveness of BPA rec

Process Algebra (2IF45)

Expressiveness of BPArec

Suzana Andova

Page 2: Process Algebra (2IF45) Expressiveness of BPA rec

2

Outline

• How far can we go with recursive specifications in BPArec(A)? How expressive is BPArec(A)?

• If it is not expressive as we want can we do better? How?

Process Algebra (2IF45)

Page 3: Process Algebra (2IF45) Expressiveness of BPA rec

3

Recursive specs vs. Transition systems

• Every recursive specification in BPArec(A) has a solution that can be represented as an LTS

• For this purpose we use the SOS rules

• Sometimes we understand the process behaviour better from its LTS representation

Page 4: Process Algebra (2IF45) Expressiveness of BPA rec

4

Recursive specs vs. Transition systems

• But sometimes a process LTS has infinitely many states or infinitely many transitions

a(i)i<10, b

i10, c

• Symbolic (graphical) representation of the specification but this is not an LTS

Page 5: Process Algebra (2IF45) Expressiveness of BPA rec

5

Recursive specs vs. Transition systems

• LTSs are very simple but expressible language

• They can be finite or infinite,

• with countable or uncountable number of states or number of transitions

• The language defined with a given process algebra and its corresponding SOS semantics can specify a subset of LTSs

• A simple example: BPA(A) cannot be used to specify LTSs with time

Page 6: Process Algebra (2IF45) Expressiveness of BPA rec

6

Recursive specs vs. Transition systems

Question: What sort LTSs are specifiable by recursive specifications in BPArec(A)?

Page 7: Process Algebra (2IF45) Expressiveness of BPA rec

7

Recursive specs vs. Transition systems

Question: What sort LTSs are specifiable by recursive specifications in BPArec(A)?

1. LTSs with finite number of states and finite number of transitions and no loops closed BPA(A) terms

2. Can we specify LTSs with countable number of states or countable number of transitions?

Page 8: Process Algebra (2IF45) Expressiveness of BPA rec

8

Recursive specs vs. Transition systems

2. Can we specify LTSs with countable number of states and countable number of transitions?

a aa a …l1: States x Act ↦ StatesStates = NatA = {a}l1(n,a) = n+1, n Nat

l2: States x Act ↦ StatesStates = [0,1]A = {a}l2(0,a) = r, r [0,1]

l3: States x Act ↦ StatesStates = {s}A = {a}l3(s,a) = s

a

3. Can we specify LTSs with uncountable number of states or uncountable number of transitions?

a

l2 is bisimilar to

Page 9: Process Algebra (2IF45) Expressiveness of BPA rec

9

Expressivity of BPArec(A)

Question: What sort LTSs are specifiable by recursive specifications in BPArec(A)?

2. Can we specify any LTSs with countable number of states and transitions? YES! 3. Can we specify any LTSs with uncountable number of states or transitions? NO!

Theorem: Up to bisimulation, only LTSs with countable number of states and transitions, and only those are specifiable in BPArec(A).

Page 10: Process Algebra (2IF45) Expressiveness of BPA rec

10

Expressivity of BPArec(A)

Example:

0

1 2

a3

aa a… n

a…

a

a

a

a

a

X = n1 a.a. … a.0

n

Is this a proper recursive specification in BPArec(A)? NO!

Page 11: Process Algebra (2IF45) Expressiveness of BPA rec

11

Expressivity of BPArec(A)

Example: S0 = a.S11 + S01

S01 = a.S21 + S02

S02 = a.S31 + S03

S11 = 0S21 = a.0S31 = a.a.0…

0

1 2

a3

aa a… n

a…

a

a

a

a

a

Is this a proper recursive specification in BPArec(A)?

Page 12: Process Algebra (2IF45) Expressiveness of BPA rec

12

Expressivity of BPArec(A)

Example: S0 = a.S11 + S01

S01 = a.S21 + S02

S02 = a.S31 + S03

S11 = 0S21 = a.0S31 = a.a.0…

0

1 2

a3

aa a… n

a…

a

a

a

a

a

Is this a proper recursive specification in BPArec(A)? YES!

This process is specifiable in BPArec(A)!

Page 13: Process Algebra (2IF45) Expressiveness of BPA rec

13

Expressivity of BPArec(A)

Example: S0 = a.S11 + S01

S01 = a.S21 + S02

S02 = a.S31 + S03

S11 = 0S21 = a.0S31 = a.a.0…

0

1 2

a3

aa a… n

a…

a

a

a

a

a

Is this a proper recursive specification in BPArec(A)? YES!

Observe: - It is an infinite rec. spec- It is an unguarded rec. spec

- Some states are bisimilarbut the root does not change

Page 14: Process Algebra (2IF45) Expressiveness of BPA rec

14

Expressivity of BPArec(A)

Example: S0 = a.S11 + S01

S01 = a.S21 + S02

S02 = a.S31 + S03

S11 = 0S21 = a.0S31 = a.a.0…

0

1 2

a3

aa a… n

a…

a

a

a

a

a

Is this a proper recursive specification in BPArec(A)? YES!

Can we do better? Can we do guarded specification for this process?Can we do better? Can we do finite specification for this process?

Observe: -It is an infinite rec. spec- It is an unguarded rec. spec

- Some states are bisimilar but the root does not change

Page 15: Process Algebra (2IF45) Expressiveness of BPA rec

15

Expressivity of BPArec(A)

Example: S0 = a.S11 + S01

S01 = a.S21 + S02

S02 = a.S31 + S03

S11 = 0S21 = a.0S31 = a.a.0…

0

1 2

a3

aa a… n

a…

a

a

a

a

a

Is this a proper recursive specification in BPArec(A)? YES!

Can we do better? Can we do guarded specification for this process? NO!Can we do better? Can we do finite specification for this process? NO!

Observe: -It is an infinite rec. spec- It is an unguarded rec. spec

- Some states are bisimilar but the root does not change

Page 16: Process Algebra (2IF45) Expressiveness of BPA rec

16

Expressivity of BPArec(A)

Question: What sort LTSs are specifiable by guarded recursive specifications in BPArec(A)?

Theorem: Up to bisimulation, only finitely branching processes/LTSs and only those are specifiable by a guarded recursive specification in BPArec(A).

Page 17: Process Algebra (2IF45) Expressiveness of BPA rec

17

Expressivity of BPArec(A): Definability

Question: What sort LTSs are specifiable by guarded recursive specifications in BPArec(A)?

Theorem: Up to bisimulation, only finitely branching processes/LTSs and only those are specifiable by a guarded recursive specification in BPArec(A).

definable

Page 18: Process Algebra (2IF45) Expressiveness of BPA rec

18

Expressivity of BPArec(A): Definability

Example: S0 = a.S11 + S01

S01 = a.S21 + S02

S02 = a.S31 + S03

S11 = 0S21 = a.0S31 = a.a.0…

0

1 2

a3

aa a… n

a…

a

a

a

a

a

Can we do better? Can we do guarded specification for this process? NO!Can we do better? Can we do finite specification for this process? NO!

Observe: -It is an infinite rec. spec- It is an unguarded rec. spec

- Some states are bisimilar but the root does not change- It is infinitely branching

This process is not definable in BPArec(A)!

Page 19: Process Algebra (2IF45) Expressiveness of BPA rec

19

Expressivity of BPArec(A):Stack example

Example: We consider a Stack with unlimited capacity Elements are taken from a finite set of data elements D = {d1, d2, …, dn} (n N) Elements from D can be added to or removed from the top of the stack.

Page 20: Process Algebra (2IF45) Expressiveness of BPA rec

20

Expressivity of BPArec(A):Stack example

Example: We consider a Stack with unlimited capacity Elements are taken from a finite set of data elements D = {d1, d2, …, dn} (n N) Elements from D can be added to or removed from the top of the stack.

Steps: 1. First, define the set of atomic actions.

A = { push(d) | d D } {pop(d) | d D }

2. How many recursive variables may be needed S denotes the situation when the stack is empty S denotes the state of the stack process when the content is D*

Page 21: Process Algebra (2IF45) Expressiveness of BPA rec

21

Expressivity of BPArec(A):Stack example

1. Atomic actions A = { push(d) | d D } {pop(d) | d D }

2. recursive variables S denotes the situation when the stack is empty S denotes the state of the stack process when the content is D*

S = dD push(d).Sd, for any d D

Sd = eD push(e).Sed + pop(d).S , for any d D

Sd = eD push(e).Sed + pop(d).S, for any d D and D*

Page 22: Process Algebra (2IF45) Expressiveness of BPA rec

22

Expressivity of BPArec(A):Stack example

For D = {0,1}S = d{0,1} push(d).Sd, for any d {0,1},

Sd = eD{0,1} push(e).Sed + pop(d).S, for any d {0,1, {0,1}*

S

0 1

11011000

pp(1)pp(0)

pp(0) pp(0)

pp(1)

pp(1)

ps(0) ps(0)

ps(0) ps(1)ps(1)ps(0)

… … … …

Page 23: Process Algebra (2IF45) Expressiveness of BPA rec

23

Expressivity of BPArec(A):Stack example

For D = {0,1}S = d{0,1} push(d).Sd, for any d {0,1},

Sd = eD{0,1} push(e).Sed + pop(d).S, for any d {0,1, {0,1}*

S

0 1

11011000

pp(1)pp(0)

pp(0) pp(0)

pp(1)

pp(1)

ps(0) ps(0)

ps(0) ps(1)ps(1)ps(0)

… … … …

Observe: -It is a nice guarded rec. spec

This process is definable, therefore it is finitely branching

Page 24: Process Algebra (2IF45) Expressiveness of BPA rec

24

Expressivity of BPArec(A):Stack example

For D = {0,1}S = d{0,1} push(d).Sd, for any d {0,1},

Sd = eD{0,1} push(e).Sed + pop(d).S, for any d {0,1, {0,1}*

S

0 1

11011000

pp(1)pp(0)

pp(0) pp(0)

pp(1)

pp(1)

ps(0) ps(0)

ps(0) ps(1)ps(1)ps(0)

… … … …

Observe: - It is finitely branching

There is a guarded spec defining this process

Page 25: Process Algebra (2IF45) Expressiveness of BPA rec

25

Expressivity of BPArec(A):Stack example

For D = {0,1}S = d{0,1} push(d).Sd, for any d {0,1},

Sd = eD{0,1} push(e).Sed + pop(d).S, for any d {0,1, {0,1}*

S

0 1

11011000

pp(1)pp(0)

pp(0) pp(0)

pp(1)

pp(1)

ps(0) ps(0)

ps(0) ps(1)ps(1)ps(0)

… … … …

Observe: - It is finitely branching

There is a guarded spec defining this process

Can we do better in BPArec(A)? Can we do finite spec?

Page 26: Process Algebra (2IF45) Expressiveness of BPA rec

26

Expressivity of BPArec(A):Stack example

For D = {0,1}S = d{0,1} push(d).Sd, for any d {0,1},

Sd = eD{0,1} push(e).Sed + pop(d).S, for any d {0,1, {0,1}*

S

0 1

11011000

pp(1)pp(0)

pp(0) pp(0)

pp(1)

pp(1)

ps(0) ps(0)

ps(0) ps(1)ps(1)ps(0)

… … … …

Observe: - It has infinitely many states- None of them are bisimilar- Cannot be turned into a finite LTS

Can we do better in BPArec(A)? Can we do finite spec?

Page 27: Process Algebra (2IF45) Expressiveness of BPA rec

27

Expressivity of BPArec(A):Finite definability

Question: What sort LTSs are specifiable by finite guarded recursive specifications in BPArec(A)?

Theorem: Up to bisimulation, only processes with finitely many states and finitely many transitions and only those are definable by finite

guarded recursive specifications in BPArec(A).

Page 28: Process Algebra (2IF45) Expressiveness of BPA rec

28

Expressivity of BPArec(A):Finite definability

Question: What sort LTSs are specifiable by finite guarded recursive specifications in BPArec(A)?

Theorem: Up to bisimulation, only processes with finitely many states and finitely many transitions and only those are definable by finite

guarded recursive specifications in BPArec(A).

regular processes

Page 29: Process Algebra (2IF45) Expressiveness of BPA rec

29

Expressivity of BPArec(A):Finite definability

Question: What sort LTSs are specifiable by finite guarded recursive specifications in BPArec(A)?

Theorem: Up to bisimulation, only processes with finitely many states and finitely many transitions and only those are definable by finite

guarded recursive specifications in BPArec(A).

regular processes

finitely definable

Page 30: Process Algebra (2IF45) Expressiveness of BPA rec

30

Expressivity of BPArec(A):Finite definability

For D = {0,1}S = d{0,1} push(d).Sd, for any d {0,1},

Sd = eD{0,1} push(e).Sed + pop(d).S, for any d {0,1, {0,1}*

S

0 1

11011000

pp(1)pp(0)

pp(0) pp(0)

pp(1)

pp(1)

ps(0) ps(0)

ps(0) ps(1)ps(1)ps(0)

… … … …

Observe: - It has infinitely many states- None of them are bisimilar- Cannot be turned into a finite LTS- This is not a regular process

Can we do better in BPArec(A)? NO! Can we do finite spec? NO!

There is no finite rec. spec. in BPArec(A) !

Page 31: Process Algebra (2IF45) Expressiveness of BPA rec

31

Expressivity of BPArec(A)

Question: What do we need to add to BPArec(A) just sufficient that this is possible?

Page 32: Process Algebra (2IF45) Expressiveness of BPA rec

32

Expressivity of BPArec(A)

Question: What do we need to add to BPArec(A) just sufficient that this is possible?

Very simple extension: (general) sequential composition!

Page 33: Process Algebra (2IF45) Expressiveness of BPA rec

33 Process Algebra (2IF45)

Theory of Sequential Processes TSP

Page 34: Process Algebra (2IF45) Expressiveness of BPA rec

34 Process Algebra (2IF45)

TSPrec(A) = BPArec(A) + sequential composition

Language: TSPrec(A)

Signature: 0, 1, (a._ )aA, +, •, X

Axioms of BPArec(A):

(A1) – (A4)(A5) (x+ y) z = x z+y z(A6) (x y) z = x (y z)

(A7) 0 x = 0(A8) x 1 = x(A9) 1 x = x

(A10) a.x y = a.(x y)

Deduction rules for TSPrec(A):

a.x x a y

(x + y) ⑥

Page 35: Process Algebra (2IF45) Expressiveness of BPA rec

35 Process Algebra (2IF45)

TSPrec(A) = BPArec(A) + sequential composition

Language: TSPrec(A)

Signature: 0, 1, (a._ )aA, +, •, X

Axioms of TSPrec(A):

(A1) – (A4)(A5) (x+ y) z = x z+y z(A6) (x y) z = x (y z)

(A7) 0 x = 0(A8) x 1 = x(A9) 1 x = x

(A10) a.x y = a.(x y)

Deduction rules for TSPrec(A):

a.x x . . .a y

(x + y) ⑥

Deduction rules for sequential composition

x x’ x y x’

a

a

x y (x y)

x y y’ x y y’

a

a

Page 36: Process Algebra (2IF45) Expressiveness of BPA rec

36 Process Algebra (2IF45)

TSPrec(A) = BPArec(A) + sequential composition

Language: TSPrec(A)

Signature: 0, 1, (a._ )aA, +, •, X

Axioms of TSPrec(A):

(A1) – (A4)(A5) (x+ y) z = x z+y z(A6) (x y) z = x (y z)

(A7) 0 x = 0(A8) x 1 = x(A9) 1 x = x

(A10) a.x y = a.(x y)

Deduction rules for TSPrec(A):

a.x x . . .a y

(x + y) ⑥

Deduction rules for sequential comosition

x x’ x y x’

a

a

x y (x y)

x y y’ x y y’

a

a

Bisimilarity of LTSs Equality of terms

Page 37: Process Algebra (2IF45) Expressiveness of BPA rec

37

TSPrec(A) process algebra

- Congruence of bisimulation with respect to all operators in TSPrec(A)

- Elimination result: BPA(A) are still basic terms

- Soundness of TSPrec(A) with respect to the SOS semantic (term model)

- Ground completeness: bisimilarity between closed terms is derivable in TSP(A)

Page 38: Process Algebra (2IF45) Expressiveness of BPA rec

38

Stack process in TSPrec(A)

Revise the Stack example: We consider a Stack with unlimited capacity Elements are taken from a finite set of data elements D = {d1, d2, …, dn} (n N) Elements from D can be added to or removed from the top of the stack.

Page 39: Process Algebra (2IF45) Expressiveness of BPA rec

39

Stack process in TSPrec(A)

Revision of the Stack example: We consider a Stack with unlimited capacity Elements are taken from a finite set of data elements D = {d1, d2, …, dn} (n N) Elements from D can be added to or removed from the top of the stack.

Stack2 = T

T = dD push(d). ( U pop(d).1)

Page 40: Process Algebra (2IF45) Expressiveness of BPA rec

40

Stack process in TSPrec(A)

Revision of the Stack example: We consider a Stack with unlimited capacity Elements are taken from a finite set of data elements D = {d1, d2, …, dn} (n N) Elements from D can be added to or removed from the top of the stack.

Stack2 = T

T = dD push(d). ( U pop(d).1)U = 1 + T U

Page 41: Process Algebra (2IF45) Expressiveness of BPA rec

41

Stack process in TSPrec(A)

Stack1 = S

S = dD push(d).Sd, for any d D

Sd = eD push(e).Sed + pop(d).S, for any d D and D*

Stack2 = T

T = dD push(d). ( U pop(d).1)U = 1 + T U

Is Stack1 = Stack2 ?

YES! Can be proved using RDP+RSP principles*.

*See the proof in the book

Page 42: Process Algebra (2IF45) Expressiveness of BPA rec

42

Expressivity of TSPrec(A)

- BSPrec(A) and TSPrec(A) in general are equally expressive!

- A process is definable in TSPrec(A) if and only if it is a solution of a guarded recursive spec. the same as in BPSrec(A)

- Nevertheless in TSPrec(A) infinitely branching processes can be specified by a finite (unguarded) recursive spec.

Example: X = X • (a.1) + a.1

Page 43: Process Algebra (2IF45) Expressiveness of BPA rec

43

Expressivity of TSPrec(A)

Example 2: Consider recursive specification in TSPrec(A)X = a. (Y • a.1) Y = a. (Y • Z) + a.1Z = a.1 + 1

Observe:- the specification is guarded - the process is finitely branching- but “the degree of branching” is unbounded

Page 44: Process Algebra (2IF45) Expressiveness of BPA rec

44

Expressivity of TSPrec(A)

Example 2: Consider recursive specification in TSPrec(A)X = a. (Y • a.1) Y = a. (Y • Z) + a.1Z = a.1 + 1

Observe:- the specification is guarded - the process is finitely branching- but “the degree of branching” is unbounded

Results: - In TSPrec(A) unbounded branching processes can be defined by a

finite guarded specification- This is not the case with BPArec(A)

Page 45: Process Algebra (2IF45) Expressiveness of BPA rec

45

What about the Bag process?

- Can we find any BPArec(A) or TSPrec(A) specification of the Bag process?

- Can we find any which is finite guarded specification?- Or do we need to extend TSP(A) with more operators?