CCS: Operational Semantics And Process Algebra. Reading: Peled 8.3, 8.4, 8.6 – rest of ch. 8. Mads Dam. Value-passing combinators and definitions as abbreviations using labels of the form a(v) (receiving v) or b(v) (sending v)
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
Reading: Peled 8.3, 8.4, 8.6 – rest of ch. 8
Mads Dam
Value-passing combinators and definitions as abbreviations using labels of the form a(v) (receiving v) or b(v) (sending v)
Prefix a(x), b(v) a(x).P(x) = a(v0).P(v0) + ... + a(vn).P(vn)
b(v).P(v) = b(v).P(v)
Definition A(x) == P(x) Buf == in(x).Buf1(x)
Buf1(x) == out(x).Buf(x)
Conditionalif C then P Teller(x) == Deposit(x) + Withdrawal(x)
Deposit(x) == deposit(x).Teller(x + y)
Summation y: P(y)
Withdrawal(x) ==
y: if y x
then withdraw(y).Teller(x - y)
Value-passing CCS CombinatorsTo apply observational equivalence need a formalised semantics
Each CCS expression -> state in LTS derived from that expression
Compositionality: Construction of LTS follows expression syntax
Inference rules:
P1 P2
P1 | Q P2 | Q
Meaning: For all P1, P2, Q, , if there is an transition from P1 to P2 then there is an transition from P1 | Q to P2 | Q
Transition Semantics-
.P P
P Q
A Q
(no rule for 0!)
Prefix
Def
(A == P)
P P’
P+Q P’
Q Q’
P+Q Q’
ChoiceL
ChoiceL
P P’
P|Q P’|Q
Q Q’
P|Q P|Q’
P l P’ Q l Q’
P|Q P’|Q’
ComL
ComR
Com
P P’
PÂL P’ÂL
P P’
P[f] f() P’[f]
(, L)
Restr
Rel
Closure assumption: ! is least relation closed under the set of rules
Example derivation:
Buf1 == in.comm.Buf1
Buf2 == comm.out.Buf2
(Buf1 | Buf2)Â{comm}
in comm.Buf1 | Buf2
Buf1 | out.Buf2
out Buf1 | Buf2
Two ways of adding new operators:
Example: Buffer composition
P ÆQ = (P[comm/out]|Q[comm/in])Â{comm}
Example: Sequential composition of processes
Assume special (non-label) action X for termination
Let X = X and f(X) = X for relabelling functions f
P P’
P;Q P’;Q
P X P’ Q Q’
P|Q Q’
Seq1
Seq2
( X)
Semaphore: semantics
Unary semaphore:
S1 == p.S11
S11 == v.S1
Binary semaphore:
S2 == p.S21
S21 == p.S22 + v.S2
S22 == v.S21
Result:
S1 | S1 S2
Proof: Show that
{(S1 | S1, S2),
(S11 | S1, S21),
(S1 | S11, S21),
(S11 | S11, S22)}
is a strong bisimulation relation
Example: Semaphoresp
v
Spec == in.out.Spec
Sender == in.Transmit
Transmit == transmit.WaitAck
WaitAck == ack+.Sender + ack-.Transmit
Receiver == transmit.Analyze
Analyze == .out.ack+.Receiver + .ack-.Receiver
Protocol == (Sender | Receiver)Â{transmit,ack+,ack-}
Exercise: Prove Spec Protocol
i semanticsE: input of easy job
iN: input of neutral job
iD: input of difficult job
O: output of finished product
A == iE.A’ + iN.A’ + iD.A’
A’ == o.A
Spec = A | A
Hammer: H == gh.ph.H
Mallet: M == gm.pm.M
Jobber:
J == x{E,N,D}ix.Jx
JE == o.J
JN == gh.ph.JE + gm.pm.JE
JD == gh.ph.JE
Jobshop ==
(J | J | H | M)Â{gh,ph,gm,pm}
Theorem:
Spec Jobshop
Exercise: Prove this.
Example: JobshopTwo main methods for establishing an equivalence P Q:
(this is the canonical method)
But: What about substitutivity – replacing equals for equals?
Congruence: Equivalence preserved under substitution
But: P P’ does not imply P + Q P’ + Q
Example: a.0 .a.0 but a.0 + b.0 .a.0 + b.0 does not hold
Exercise: Show that ¼ is preserved by prefixing, parallel, restriction, and relabelling
Observational Congruence:
Let S Q Q. The relation S is an observational congruence relation if whenever q1 S q2 then:
Write P = Q if o.c.r. S exists such that P S Q
Problem is initial ’s in sums:
Proposition: P = P’ iff for all Q, P + Q ¼ P’ + Q
Exercise: Prove this.
Theorem: Observational congruence = is the largest congruence contained in
Exercise: Prove this too (follow hints in class).
Let C[.] be any CCS expression with a ”hole” in it
Corollary: P = Q iff for all C[.], C[P] C[Q]
Stable agents: P is stable if no Q exists such that P Q
Corollary: and = coincides on stable processes
Too many... ;-) semantics
Summation:
P + Q = Q + P
P + (Q + R) = (P + Q ) + R
P + P = P
P + 0 = P
Prefixing:
l..P = l.P
P + .P = .P
l.(P + .Q) + l.Q = l.(P + .Q)
P + .(P + Q) = .(P + Q)
Two non-laws:
P = .P
l.(P + Q) = l.P + l.Q
Definition:
If A == P then A = P
Expansion law:
(P | Q)ÂL =
{l.(P’|Q)ÂL | P l P’, l L} +
{l.(P|Q’)ÂL | Q l Q’, l L} +
{.(P’|Q’)ÂL | l.P l P’, Q l Q’}
Laws for Observational CongruenceP == a.P + .b.0
Q == a.Q + c.0
R == c.b.0
S == (Q | R) \ c
Task: Prove P = S
S = (Q | R) \ c
= (a.Q + c.0 | c.b.0) \ c
= a.(Q | c.b.0) \ c + .(0 | b.0) \ c
= a.(Q | R) \ c + .(0 | b.0) \ c
= a.S + .b.(0 | 0) \ c
= a.S + .b.0
Observe:
P = a.P + .b.0
and
S = a.S + .b.0
Can we conclude P = S ??
Let A == P be any definition
UFI principle: If
Then P = Q
Algorithm for deciding strong bisimulation equivalence
Note: Doesn’t work for on-the-fly state generation!
T2
T4,2
T1
T3
T4,1
Q = set of states
create initial partition P = {Q} ;
change := true ;
while change do
change := false
if exists partitions T1,T22P and action such that
T1,1 = {q 2 T1 | 9 q’ 2 T2. q ! q’} and T1,2 = T1Â T1,1 are both
nonempty
then
P := (PÂ {T1}) [ {T1,1,T1,2} ;
change := true
fi
od
Let Pi be partition at step i of algorithm, and limP be the final partition
Define:
Claim: ´ is a strong bisimulation relation
Exercise: Check this
Claim: If R is a strong bisimulation relation then R µ´i, for all i
Proof: Induction on i. The statement holds for i=0. Suppose that p R q and p,q 2 T 2Pi. Either T 2Pi+1 as well (and we’re done) or T = T1[ T2, T1Å T2 = ;, and T1, T22Pi+1. In the latter case, if p 2 T1 and q 2 T2, say, we find some T’2Pi and p’ such that p ! p’2 T’ and whenever q! q’ then not(q’2 T’). But then :(p’ R q’) by the induction hypothesis, so R cannot be a strong bisimulation relation.