process algebra c alculus of c ommunicating s ystems
Download
Skip this Video
Download Presentation
Process Algebra C alculus of C ommunicating S ystems

Loading in 2 Seconds...

play fullscreen
1 / 59

Process Algebra C alculus of C ommunicating S ystems - PowerPoint PPT Presentation


  • 132 Views
  • Uploaded on

Process Algebra C alculus of C ommunicating S ystems. Daniel Choi Provable Software Lab. KAIST. Content. Introduction Calculus of Communicating Systems Equivalence for CCS Discussions. Why are we going to study Process Algebra?. Need

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Process Algebra C alculus of C ommunicating S ystems' - deidra


An Image/Link below is provided (as is) to download presentation

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.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
process algebra c alculus of c ommunicating s ystems

Process AlgebraCalculus of Communicating Systems

Daniel Choi

Provable Software Lab.

KAIST

content
Content
  • Introduction
  • Calculus of Communicating Systems
  • Equivalence for CCS
  • Discussions

Provable Software Laboratory Seminar

why are we going to study process algebra
Why are we going to study Process Algebra?
  • Need
    • Mathematical models for concurrent communicating processes?
  • How
    • How can we define a mathematical models for concurrent communicating process?

Provable Software Laboratory Seminar

why are we going to study process algebra1
Why are we going to study Process Algebra?
  • Need
    • Mathematical models for concurrent communicating processes?
  • How
    • How can we define a mathematical models for concurrent communicating process?

Provable Software Laboratory Seminar

the reason why we study process algebra
The reason why we study Process Algebra
  • Need
    • Mathematical models for concurrent communicating processes?
    • Process Algebra, Petri Net, etc.
  • How
    • How can we define a mathematical models for concurrent communicating process?
    • By defining structured operational semantics

Provable Software Laboratory Seminar

families of algebraic approaches
Families of Algebraic Approaches
  • Milner’s Calculus of Communicating Systems (CCS)
  • Hoare’s theory of Communicating Sequential Processes
  • The Algebra of Communicating Processes (ACP) of Bergstra & Klop

Provable Software Laboratory Seminar

content1
Content
  • Introduction
    • Why are we going to study Process Algebra?
  • Calculus of Communicating Systems
    • Definitions
    • Operational Semantic of CCS Terms
    • Examples
  • Equivalence for CCS
  • Discussions

Provable Software Laboratory Seminar

definitions theoretical definitions
DefinitionsTheoretical definitions
  • Assume a non-empty set S of states, together with a finite, non-empty set of transition labels A and a finite set of predicate symbols
  • Signature
    • Consist of a finite set of function symbols f, g, … where each function symbol f has an arity ar(f), being its number of arguments.
    • Symbol of arity zero : constant (a, b, c, …)
    • Countably infinite set of variables (x, y, z, …)
  • Finite non-empty set A of (atomic) actions
    • Each atomic action a is a constant that can execute itself, after which it terminates successfully.
  • Term
    • Set T(∑) of open terms, s, t, u, … over ∑ is defined as the least set satisfying
      • Each variable is T(∑);
      • If f ∈ ∑ and t1, …, tar(f) ∈ T(∑), then f(t1, …, tar(f)) ∈ T(∑)
    • A term is closed if it does not contain variables. The set of closed terms is denoted by T(∑)
  • Labeled transition system
    • A transition is a triple (s, a, s’) with a ∈ A, or a pair (s, P) with P a predicate, where s, s’ ∈ S. A labeled transition system (LTS) is a possibly infinite set of transitions. An LTS is finitely branching if each of its states has only finitely many outgoing transitions
    • The states of an LTS are always the closed terms over a signature ∑.
    • In view of the syntactic structure of closed terms over a signature, such transitions can be derived by means of inductive proof rules, where the validity of a number of transitions (the premises) may imply the validity of some other transition (the conclusion)
  • Process graph
    • A Process (graph) p is an LTS in which one state s is elected to be the root. If the LTS contains a transition s – a -> s’, then p – a -> p’ where p’ has root state s’. Moreover, if the LTS contains a transition sP, then pP.

Provable Software Laboratory Seminar

definitions theoretical definitions1
DefinitionsTheoretical definitions
  • Assume a non-empty set S of states, together with a finite, non-empty set of transition labels A and a finite set of predicate symbols
  • Signature
    • Consist of a finite set of function symbols f, g, … where each function symbol f has an arity ar(f), being its number of arguments.
    • Symbol of arity zero : constant (a, b, c, …)
    • Countably infinite set of variables (x, y, z, …)
  • Finite non-empty set A of (atomic) actions
    • Each atomic action a is a constant that can execute itself, after which it terminates succefully.
  • Term
    • Set T(∑) of open terms, s, t, u, … over ∑ is defined as the least set satisfying
      • Each variable is T(∑);
      • If f ∈ ∑ and t1, …, tar(f) ∈ T(∑), then f(t1, …, tar(f)) ∈ T(∑)
    • A term is closed if it does not contain variables. The set of closed terms is denoted by T(∑)
  • Labeled transition system
    • A transition is a triple (s, a, s’) with a ∈ A, or a pair (s, P) with P a predicate, where s, s’ ∈ S. A labeled transition system (LTS) is a possibly infinite set of transitions. An LTS is finitely branching if each of its states has only finitely many outgoing transitions
    • The states of an LTS are always the closed terms over a signature ∑.
    • In view of the syntactic structure of closed terms over a signature, such transitions can be derived by means of inductive proof rules, where the validity of a number of transitions (the premises) may imply the validity of some other transition (the conclusion)
  • Process graph
    • A Process (graph) p is an LTS in which one state s is elected to be the root. If the LTS contains a transition s – a -> s’, then p – a -> p’ where p’ has root state s’. Moreover, if the LTS contains a transition sP, then pP.

Provable Software Laboratory Seminar

definitions definitions in ccs
DefinitionsDefinitions in CCS
  • Actions
    • Atomic
    • uninterruptible execution steps(with some other internal computation steps(τ))
    • Representing potential interactions with its environment (inputs/outputs on ports)

Provable Software Laboratory Seminar

definitions operator of ccs
DefinitionsOperator of CCS
  • nil
    • terminated process that has finished execution
  • a.p
    • Capable first of a and then behaves like p
  • +
    • Choice construct
    • p1 + p2 offers the potential of behaving like either p1 or p2, depending on the interactions offered by the environment
  • |
    • parallel composition
    • p1 | p2 offers interleaves the execution of p1 and p2
    • Permitting complementary actions of p1 and p2 to synchronize (τ)
  • Restriction operator
    • Permits actions to be localized within a system
  • [f]
    • Actions in a process to be renamed
    • P[f] behaves exactly like p except that f is applied to each action that p wishes to engage in
  • Defining equation
    • C represents a valid system

Provable Software Laboratory Seminar

definitions labeled transition systems
DefinitionsLabeled transition Systems
  • Labeled transition system (LTS)
    • Triple
      • Q : a set of states
      • A : a set of actions
      • → : transition relation →⊆Qⅹ A ⅹ Q
    • B = ((a.(b.B + c.0) + b.0)|a’.0 )\a

b

(B|0)\a

((b.B + c.0)|0)\a

τ

c

(0|0)\a

B

b

(0|a’.0)\a

Temporal Structure

Provable Software Laboratory Seminar

operation semantics of ccs terms
Operation Semantics of CCS Terms

Referenced from lecture note of Prof. Kim

Provable Software Laboratory Seminar

examples lovers
ExamplesLovers
  • Assume that there is a man and a woman in the society
  • Man and Woman can manifest their emotion independently (concurrently)
  • M = ‘man.(acc.M‘+ rej.M)
  • W = man.(‘acc.W’ + ‘rej.W)
  • M’ = lov.M’ + ‘lov.M’ + ‘neg_man.M
  • W’ = lov.W’ + ‘lov.W’ + neg_man.W
  • Does L = (M|W) is a model of happy lovers?

Provable Software Laboratory Seminar

examples lts of unhappy lovers
ExamplesLTS of Unhappy lovers

M|W

‘man

τ

man

neg_man

(acc.M‘+ rej.M)|(’acc.W’ + ‘rej.W)

(acc.M‘+ rej.M) |W

M|(’acc.W’ + ‘rej.W)

rej

rej

acc

‘rej

‘acc

acc

‘neg_man

lov,’lov

τ

‘acc

‘rej

lov,’lov

M’|W

M|W’

M’|(’acc.W’ + ‘rej.W)

(acc.M‘+ rej.M)|W’

‘man

man

‘neg_man

τ

neg_man

acc

‘acc

τ,lov,’lov

M‘|W’

τ

Provable Software Laboratory Seminar

examples lts of unhappy lovers1
ExamplesLTS of Unhappy lovers

M|W

‘man

τ

man

neg_man

(acc.M‘+ rej.M)|(’acc.W’ + ‘rej.W)

(acc.M‘+ rej.M) |W

M|(’acc.W’ + ‘rej.W)

rej

rej

acc

‘rej

‘acc

acc

‘neg_man

lov,’lov

τ

‘acc

‘rej

lov,’lov

M’|W

M|W’

M’|(’acc.W’ + ‘rej.W)

(acc.M‘+ rej.M)|W’

‘man

man

‘neg_man

τ

neg_man

acc

‘acc

One sided Love

τ,lov,’lov

M‘|W’

τ

Provable Software Laboratory Seminar

examples lts of happy lovers
ExamplesLTS of Happy lovers

M|W

τ

(acc.M‘+ rej.M)|(’acc.W’ + ‘rej.W)

τ

M‘|W’

HL = (M|W) \{man, lov, acc, rej}

τ

Provable Software Laboratory Seminar

examples lts of happy lovers1
ExamplesLTS of Happy lovers

M|W

τ

(acc.M‘+ rej.M)|(’acc.W’ + ‘rej.W)

proc HL = (M|W)\{manifest,love,neg_manifest,accept,reject}

proc UHL = (M|W)

proc M = 'manifest.(accept.M1 + reject.M)

proc W = manifest.('accept.W1 + 'reject.W)

proc M1 = love.M1 + 'love.M1 + 'neg_manifest.M

proc W1 = 'love.W1 + love.W1 + neg_manifest.W

τ

M‘|W’

HL = (M|W) \{man, lov, acc, rej}

τ

Provable Software Laboratory Seminar

examples proof
ExamplesProof
  • Proof of (M|W)\{man, lov, acc, rej} => (M|W)\{man, lov, acc, rej}

(M|W)\{man, lov, acc, rej} -τ->((acc.M‘+ rej.M)|(’acc.W’ + ‘rej.W)) \{man, lov, acc, rej}

Provable Software Laboratory Seminar

examples proof1
ExamplesProof
  • Proof of (M|W)\{man, lov, acc, rej} => (M|W)\{man, lov, acc, rej}

Res

(M|W)\{man, lov, acc, rej} -τ->((acc.M‘+ rej.M)|(’acc.W’ + ‘rej.W)) \{man, lov, acc, rej}

Provable Software Laboratory Seminar

examples proof2
ExamplesProof
  • Proof of (M|W)\{man, lov, acc, rej} => (M|W)\{man, lov, acc, rej}

Res

‘man.(acc.M‘+ rej.M) | man.(‘acc.W’ + ‘rej.W) -τ->(acc.M‘+ rej.M)|(’acc.W’ + ‘rej.W)

(M|W)\{man, lov, acc, rej} -τ->((acc.M‘+ rej.M)|(’acc.W’ + ‘rej.W)) \{man, lov, acc, rej}

Provable Software Laboratory Seminar

examples proof3
ExamplesProof
  • Proof of (M|W)\{man, lov, acc, rej} => (M|W)\{man, lov, acc, rej}

Parτ

Res

‘man.(acc.M‘+ rej.M) | man.(‘acc.W’ + ‘rej.W) -τ->(acc.M‘+ rej.M)|(’acc.W’ + ‘rej.W)

(M|W)\{man, lov, acc, rej} -τ->((acc.M‘+ rej.M)|(’acc.W’ + ‘rej.W)) \{man, lov, acc, rej}

Provable Software Laboratory Seminar

examples proof4
ExamplesProof
  • Proof of (M|W)\{man, lov, acc, rej} => (M|W)\{man, lov, acc, rej}

Act

Act

‘man.(acc.M‘+ rej.M) – ‘man-> (acc.M‘+ rej.M)

man.(‘acc.W’ + ‘rej.W) – man-> (‘acc.W’ + ‘rej.W)

Parτ

Res

‘man.(acc.M‘+ rej.M) | man.(‘acc.W’ + ‘rej.W) -τ->(acc.M‘+ rej.M)|(’acc.W’ + ‘rej.W)

(M|W)\{man, lov, acc, rej} -τ->((acc.M‘+ rej.M)|(’acc.W’ + ‘rej.W)) \{man, lov, acc, rej}

Provable Software Laboratory Seminar

examples proof5
ExamplesProof
  • Proof of (M|W)\{man, lov, acc, rej} => (M|W)\{man, lov, acc, rej}

Act

Act

‘acc.W‘ – ‘acc -> W’

acc.M‘ – acc -> M’

ChoiceL

ChoiceL

(acc.M‘+ rej.M) - acc-> M’

(‘acc.W’ + ‘rej.W) – ‘acc -> W’

Parτ

(acc.M‘+ rej.M) | (‘acc.W’ + ‘rej.W) -τ-> (M’|W’)

Res

((acc.M‘+ rej.M)|(’acc.W’ + ‘rej.W)) \{man, lov, acc, rej} -τ-> (M’|W’) \{man, lov, acc, rej}

Provable Software Laboratory Seminar

content2
Content
  • Introduction
    • Why are we going to study Process Algebra?
  • Calculus of Communicating Systems
    • Definitions
    • Operational Semantic of CCS Terms
    • Examples
  • Equivalence for CCS
    • Trace Equivalence
    • Strong Bisimulation Equivalence
    • Weak Bisimulation Equivalence
  • Discussions

Provable Software Laboratory Seminar

trace equivalence definition
Trace EquivalenceDefinition
  • Language Equivalence
    • Two machines are equivalent if they accept the same sequences of symbol
  • Can we directly apply language equivalence to rooted LTS? No
    • Identify every state in a rooted LTS as being accepting
  • Definition Let be a labeled transition system
    • Let A* consists of the set of finite sequences of elements of A
    • Let s = a1 … an∈A* be a sequence of actions. Then q – s-> q’ if there are states q0, ..., qnsuch thatq = q0, qi –ai-> qi+1 and q’ = qn
    • s is a strong trace of q if there exists q’ such that q – s -> q’. We use S(q) to represent the set of all strong traces of q
    • p ≈s q exactly when S(p) = S(q) (strong traces do not distinguish between internal and external actions)
  • Can we use trace equivalence to decide whether two system are behavioral congruent? No

Provable Software Laboratory Seminar

trace equivalence definition1
Trace Equivalence Definition
  • Language Equivalence
    • Two machines are equivalent if they accept the same sequences of symbol
  • Can we directly apply language equivalence to rooted LTS? No
    • Identify every state in a rooted LTS as being accepting
  • Definition Let be a labeled transition system
    • Let A* consists of the set of finite sequences of elements of A
    • Let s = a1 … an∈A* be a sequence of actions. Then q – s-> q’ if there are states q0, ..., qnsuch thatq = q0, qi –ai-> qi+1 and q’ = qn
    • s is a strong trace of q if there exists q’ such that q – s -> q’. We use S(q) to represent the set of all strong traces of q
    • p ≈s q exactly when S(p) = S(q) (strong traces do not distinguish between internal and external actions)
  • Can we use trace equivalence to decide whether two system are behavioral congruent? No

Provable Software Laboratory Seminar

trace equivalence definition2
Trace EquivalenceDefinition
  • Language Equivalence
    • Two machines are equivalent if they accept the same sequences of symbol
  • Can we directly apply language equivalence to rooted LTS? No
    • Identify every state in a rooted LTS as being accepting
  • Definition Let be a labeled transition system
    • Let A* consists of the set of finite sequences of elements of A
    • Let s = a1 … an∈A* be a sequence of actions. Then q – s-> q’ if there are states q0, ..., qnsuch thatq = q0, qi –ai-> qi+1 and q’ = qn
    • s is a strong trace of q if there exists q’ such that q – s -> q’. We use S(q) to represent the smallest set of all strong traces of q (prefix-closed)
    • p ≈s q exactly when S(p) = S(q) (strong traces do not distinguish between internal and external actions)
  • Can we use trace equivalence to decide whether two system are behavioral congruent? No

Provable Software Laboratory Seminar

trace equivalence definition3
Trace Equivalence Definition
  • Language Equivalence
    • Two machines are equivalent if they accept the same sequences of symbol
  • Can we directly apply language equivalence to rooted LTS? No
    • Identify every state in a rooted LTS as being accepting
  • Definition Let be a labeled transition system
    • Let A* consists of the set of finite sequences of elements of A
    • Let s = a1 … an∈A* be a sequence of actions. Then q – s-> q’ if there are states q0, ..., qnsuch thatq = q0, qi –ai-> qi+1 and q’ = qn
    • s is a strong trace of q if there exists q’ such that q – s -> q’. We use S(q) to represent the smallest set of all strong traces of q (prefix-closed)
    • p ≈s q exactly when S(p) = S(q) (strong traces do not distinguish between internal and external actions)
  • Can we use trace equivalence to decide whether two system are behavioral congruent? No

Provable Software Laboratory Seminar

example trace equivalence
ExampleTrace Equivalence

p0

q0

a

a

a

q1

q1’

p1

b

c

b

c

p2

p3

q2

q3

P = a.(b.nil + c.nil)S(P) = {ε,a,ab,ac}

Q = a.b.nil + a.c.nilS(Q) = {ε,a,ab,ac}

Provable Software Laboratory Seminar

example trace equivalence1
ExampleTrace Equivalence

p0

q0

a

a

a

S(P) = S(Q)

q1

q1’

p1

b

c

b

c

p2

p3

q2

q3

P = a.(b.nil + c.nil)S(P) = {ε,a,ab,ac}

Q = a.b.nil + a.c.nilS(Q) = {ε,a,ab,ac}

Provable Software Laboratory Seminar

example trace equivalence2
ExampleTrace Equivalence

p0

q0

a

a

a

S(P) = S(Q)

q1

q1’

p1

b

c

b

c

p2

p3

q2

q3

Trace Equivalent

P = a.(b.nil + c.nil)S(P) = {ε,a,ab,ac}

Q = a.b.nil + a.c.nilS(Q) = {ε,a,ab,ac}

Provable Software Laboratory Seminar

example trace equivalence3
ExampleTrace Equivalence

p0

q0

a

a

a

S(P) = S(Q)

q1

q1’

p1

b

c

b

c

p2

p3

q2

q3

Trace Equivalent

P = a.(b.nil + c.nil)S(P) = {ε,a,ab,ac}

Q = a.b.nil + a.c.nilS(Q) = {ε,a,ab,ac}

It is not behavioral congruent

Provable Software Laboratory Seminar

strong bisimulation equivalence definition
Strong Bisimulation EquivalenceDefinition
  • Execution sequences for equivalent systems ought to pass through equivalent states
  • Definition Let be an LTS. A relation R ⊆ Q x Q is a bisimulation if whenever ∈R, then the following conditions hold for any a, p’ and q’
    • If p –a-> p’ then q – a -> q’ for some q’ such that ∈R
    • If q –a-> q’ then p – a -> p’ for some p’ such that ∈R
  • Definition System p and q are bisimulation equivalent, or bisimilar, if there exists a bisimulation R containing . We write p ~ q whenever p and q are bisimilar

Provable Software Laboratory Seminar

strong bisimulation equivalence how to find out p and q are bisimular
Strong Bisimulation EquivalenceHow to find out P and Q are bisimular?
  • Strong Simulation
    • Let be an LTS, and let S be a binary relation over Q. Then S is called a strong simulation over if, whenever pSq, if p – a -> p’ then there exists q’ ∈ Q such that q – a -> q’ and p’ S q’
  • q strongly simulates p if there exists a strong simulation S such that pSq

Provable Software Laboratory Seminar

strong bisimulation equivalence how to find out p and q are bisimular example
Strong Bisimulation EquivalenceHow to find out P and Q are bisimular? : Example

p0

q0

a

a

a

q1

q1’

p1

b

c

b

c

p2

p3

q2

q3

Suppose, (p0, q0)∈ S

Provable Software Laboratory Seminar

strong bisimulation equivalence how to find out p and q are bisimular example1
Strong Bisimulation EquivalenceHow to find out P and Q are bisimular? : Example

Suppose p0 strongly simulates q0, (q0, p0)∈ S or q0Sp0

q0 S p0

a

a

q1p1

Provable Software Laboratory Seminar

strong bisimulation equivalence how to find out p and q are bisimular example2
Strong Bisimulation EquivalenceHow to find out P and Q are bisimular? : Example

Suppose p0 strongly simulates q0, (q0, p0)∈ S or q0Sp0

q0 S p0

q0 S p0

a

a

a

a

q1p1

q1'p1

q1 S p1

q1' S p1

Provable Software Laboratory Seminar

strong bisimulation equivalence how to find out p and q are bisimular example3
Strong Bisimulation EquivalenceHow to find out P and Q are bisimular? : Example

Suppose p0 strongly simulates q0, (q0, p0)∈ S or q0Sp0

q0 S p0

q0 S p0

q1 S p1

a

a

b

a

a

b

q1p1

q1'p1

q2p2

q1 S p1

q1' S p1

q2 S p2

Provable Software Laboratory Seminar

strong bisimulation equivalence how to find out p and q are bisimular example4
Strong Bisimulation EquivalenceHow to find out P and Q are bisimular? : Example

Suppose p0 strongly simulates q0, (q0, p0)∈ S or q0Sp0

q0 S p0

q0 S p0

q1 S p1

q1' S p1

a

a

b

c

a

a

b

c

q1p1

q1'p1

q2p2

q3p3

q1 S p1

q1' S p1

q2 S p2

q3 S p3

Provable Software Laboratory Seminar

strong bisimulation equivalence how to find out p and q are bisimular example5
Strong Bisimulation EquivalenceHow to find out P and Q are bisimular? : Example

Suppose p0 strongly simulates q0, (q0, p0)∈ S or q0Sp0

q0 S p0

q0 S p0

q1 S p1

q1' S p1

a

a

b

c

a

a

b

c

q1p1

q1'p1

q2p2

q3p3

q1 S p1

q1' S p1

q2 S p2

q3 S p3

Therefore S = {(q0, p0), (q1, p1), (q1’, p1), (q2, p2), (q3, p3)}

Provable Software Laboratory Seminar

strong bisimulation equivalence how to find out p and q are bisimular example6
Strong Bisimulation EquivalenceHow to find out P and Q are bisimular? : Example

Suppose q0 strongly simulates p0, (p0, q0)∈ S or p0Sq0

p0 S q0

p1 S q1

p1 S q1

a

b

c

a

b

p1q1

p2q2

p3

p1 S q1

q1' S p1

Provable Software Laboratory Seminar

strong bisimulation equivalence how to find out p and q are bisimular example7
Strong Bisimulation EquivalenceHow to find out P and Q are bisimular? : Example

Suppose q0 strongly simulates p0, (p0, q0)∈ S or p0Sq0

p0 S q0

p1 S q1’

p1 S q1’

a

c

b

a

c

p1q1’

p3q3

p2

p1 S q1’

p3 S q3

Provable Software Laboratory Seminar

strong bisimulation equivalence how to find out p and q are bisimular1
Strong Bisimulation EquivalenceHow to find out P and Q are bisimular?
  • Strong Simulation
    • Let be an LTS, and let S be a binary relation over Q. Then S is called a strong simulation over if, whenever pSq, if p – a -> p’ then there exists q’ ∈ Q such that q – a -> q’ and p’ S q’
  • q strongly simulates p if there exists a strong simulation S such that pSq
  • S-1 is the set of pairs (y, x) such that (x, y) ∈ S
  • Strong bisimulation
    • A binary relation S over Q is said to be a strong bisimulation over the LTS if both S and its converse are simulations

Provable Software Laboratory Seminar

strong bisimulation equivalence how to find out p and q are bisimular2
Strong Bisimulation EquivalenceHow to find out P and Q are bisimular?
  • Strong Simulation
    • Let be an LTS, and let S be a binary relation over Q. Then S is called a strong simulation over if, whenever pSq, if p – a -> p’ then there exists q’ ∈ Q such that q – a -> q’ and p’ S q’
  • q strongly simulates p if there exists a strong simulation S such that pSq
  • S-1 is the set of pairs (y, x) such that (x, y) ∈ S
  • Strong bisimulation
    • A binary relation S over Q is said to be a strong bisimulation over the LTS if both S and its converse are simulations

Provable Software Laboratory Seminar

strong bisimulation equivalence how to find out p and q are bisimular example8
Strong Bisimulation EquivalenceHow to find out P and Q are bisimular? : Example

b

a

p0

p1

q0

a

q1

a

a

a

b

b

p2

a

a

q2

S = {(p0, q0), (p1, q1), (p2, q1), (p0, q2)}

S’ = {(q0, p0), (q1, p1), (q1, p2), (q2, p0)}

Provable Software Laboratory Seminar

strong bisimulation equivalence how to find out p and q are bisimular example9
Strong Bisimulation EquivalenceHow to find out P and Q are bisimular? : Example

b

a

p0

p1

q0

a

q1

a

a

a

b

b

p2

a

a

q2

Strong Bisimulation

S = {(p0, q0), (p1, q1), (p2, q1), (p0, q2)}

S’ = {(q0, p0), (q1, p1), (q1, p2), (q2, p0)}

Provable Software Laboratory Seminar

strong bisimulation equivalence how to find out p and q are bisimular example10
Strong Bisimulation EquivalenceHow to find out P and Q are bisimular? : Example

a

p0

p1

q0

a

q1

a

b

q2

b

p2

p3

It is not Strong Bisimulation

P strongly simulates Q

S = {(q0, p0), (q1, p2), (q2, p3)}

Q strongly simulates P

S’ = {(p0, q0), (p1, q1), (p2, q1), (p3, q2)}

Provable Software Laboratory Seminar

strong bisimulation equivalence how to find out p and q are bisimular3
Strong Bisimulation EquivalenceHow to find out P and Q are bisimular?
  • Strong Simulation
    • Let be an LTS, and let S be a binary relation over Q. Then S is called a strong simulation over if, whenever pSq, if p – a -> p’ then there exists q’ ∈ Q such that q – a -> q’ and p’ S q’
  • q strongly simulates p if there exists a strong simulation S such that pSq
  • S-1 is the set of pairs (y, x) such that (x, y) ∈ S
  • Strong bisimulation (P ~ Q)
    • A binary relation S over Q is said to be a strong bisimulation over the LTS if both S and its converse are simulations
    • Strong bisimulation equivalence : reflexive, symmetric, transitive
    • P ~ Q implies P ≈s Q
  • What about internal computation τ?
    • Weak bisimulation

Provable Software Laboratory Seminar

strong bisimulation equivalence how to find out p and q are bisimular4
Strong Bisimulation EquivalenceHow to find out P and Q are bisimular?
  • Strong Simulation
    • Let be an LTS, and let S be a binary relation over Q. Then S is called a strong simulation over if, whenever pSq, if p – a -> p’ then there exists q’ ∈ Q such that q – a -> q’ and p’ S q’
  • q strongly simulates p if there exists a strong simulation S such that pSq
  • S-1 is the set of pairs (y, x) such that (x, y) ∈ S
  • Strong bisimulation (P ~ Q)
    • A binary relation S over Q is said to be a strong bisimulation over the LTS if both S and its converse are simulations
    • Strong bisimulation equivalence : reflexive, symmetric, transitive
    • P ~ Q implies P ≈s Q
  • What about internal computation τ?
    • Weak bisimulation

Provable Software Laboratory Seminar

weak bisimulation equivalence definition
Weak Bisimulation EquivalenceDefinition
  • How are we going to treat internal computation?
    • We cannot ignore τ.
  • DefinitionS is a weak simulation (observational simulation) if and only if, whenever PSQ, if P → P’ then there exists Q’∈ P such that Q ⇒ Q’ and P’SQ’if P -λ-> then there exists Q’ ∈ P such that Q = λ => Q’ and P’SQ’
  • → : unobservable reactions (like τ)

λ : observable actions ⇒ : zero or more reactions=λ => : observation – λ -> accompanied (before and after) by any number of reactions = λ =>  →* – λ -> →*= τ => : = at least one reaction

Provable Software Laboratory Seminar

weak bisimulation equivalence definition1
Weak Bisimulation EquivalenceDefinition
  • How are we going to treat internal computation?
    • We cannot ignore τ.
  • DefinitionS is a weak simulation (observational simulation) if and only if, whenever PSQ, if P → P’ then there exists Q’∈ P such that Q ⇒ Q’ and P’SQ’if P -λ-> then there exists Q’ ∈ P such that Q = λ => Q’ and P’SQ’
  • → : unobservable reactions (like τ)
  • λ : observable actions
  • ⇒ : zero or more reactions
  • =λ => : observation – λ -> accompanied (before and after) by any number of reactions
    • = λ =>  →* – λ -> →*
  • = τ => : = at least one reaction

Provable Software Laboratory Seminar

weak bisimulation equivalence how to find out weak bisimulation equivalence
Weak Bisimulation EquivalenceHow to find out weak bisimulation equivalence?
  • Similar to strong bisimulation
  • Definition A binary relation S over P is said to be a weak bisimulation if both S and its converse are weak simulations. We say that P and Q are weakly bisimilar, weakly equivalent, or observation equivalent, written P ≈ Q, if there exists a weak bisimulation S such that P S Q
  • q weakly simulates p if there exists a strong simulation S such that pSq

Provable Software Laboratory Seminar

weak bisimulation equivalence how to find out weak bisimulation equivalence example
Weak Bisimulation EquivalenceHow to find out weak bisimulation equivalence? : example

p0

A = a.A’ B = b.B’A’ = ‘b.A B’ = ‘c.B

p0 = (A|B)\{b}

p1 = (A’|B)\{b}

p2 = (A|B’)\{b}

p3 = (A’|B’)\{b}

a

‘c

p1

τ

p2

‘c

a

p3

‘c

E = a.E’ E’ = a.E’’ + ‘c.E

E’’ = ‘c.E

q0 = E

q1 = E’

q2 = E’’

q0

a

q1

a

‘c

q2

Provable Software Laboratory Seminar

weak bisimulation equivalence how to find out weak bisimulation equivalence example1
Weak Bisimulation EquivalenceHow to find out weak bisimulation equivalence? : example

p0

A = a.A’ B = b.B’A’ = ‘b.A B’ = ‘c.B

p0 = (A|B)\{b}

p1 = (A’|B)\{b}

p2 = (A|B’)\{b}

p3 = (A’|B’)\{b}

a

‘c

p1

τ

p2

‘c

a

p3

‘c

E = a.E’ E’ = a.E’’ + ‘c.E

E’’ = ‘c.E

q0 = E

q1 = E’

q2 = E’’

q0

a

q1

S = {(p0 ,q0), (p1 ,q1), (p2 ,q1), (p3 ,q2)}

a

‘c

q2

Provable Software Laboratory Seminar

weak bisimulation equivalence how to find out weak bisimulation equivalence example2
Weak Bisimulation EquivalenceHow to find out weak bisimulation equivalence? : example

p0

A = a.A’ B = b.B’A’ = ‘b.A B’ = ‘c.B

p0 = (A|B)\{b}

p1 = (A’|B)\{b}

p2 = (A|B’)\{b}

p3 = (A’|B’)\{b}

a

‘c

p1

τ

p2

‘c

a

p3

‘c

E = a.E’ E’ = a.E’’ + ‘c.E

E’’ = ‘c.E

q0 = E

q1 = E’

q2 = E’’

q0

a

Observational Bisimulation

q1

S = {(p0 ,q0), (p1 ,q1), (p2 ,q1), (p3 ,q2)}

a

‘c

q2

Provable Software Laboratory Seminar

content3
Content
  • Introduction
    • Why are we going to study Process Algebra?
  • Calculus of Communicating Systems
    • Definitions
    • Operational Semantic of CCS Terms
    • Examples
  • Equivalence for CCS
    • Trace Equivalence
    • Strong Bisimulation Equivalence
    • Weak Bisimulation Equivalence
  • Discussions

Provable Software Laboratory Seminar

discussions
Discussions

Provable Software Laboratory Seminar

reference
Reference
  • Communicating and mobile systems: the pi-calculusby Robin Milner, Cambridge,1999
  • Communication and Concurrencyby Robin Milner, Prentice Hall, 1989
  • Fundamentals of software engineeringby C. Chezzi, M. Jazayeri, D. Mandrioli, Prentice Hall, 2003
  • Lecture Notes of Professor Bae, http://se.kaist.ac.kr/~course/DrBae/cs550_2006/
  • Lecture Notes of Professor Kim, http://cs.kaist.ac.kr/~moonzoo/cs750b
  • Notes on the methodology of CCS and CSPby R.J. van Glabbeek, TCS 177(2), pp. 329-349. Originally appeared as Report CS-R8624, CWI, Amsterdam, 1986
  • Operational and algebraic semantics of concurrent processesbyR. Milner, in J. van Leeuwen, editor: Handbook of Theoretical Computer Science, Chapter 19, Elsevier Science Publishers B.V. (North-Holland), pp. 1201-1242. (1990)
  • Process Algebraby R. Cleaveland and S. Smolka, in J.G. Webster, editor, Encyclopedia of Electrical Engineering, John Wiley & Sons, 1999 (Chap. 1 ~ 3)

Provable Software Laboratory Seminar

ad