Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal...
Transcript of Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal...
![Page 1: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/1.jpg)
Process CalculiA Brief, Gentle Introduction
Jorge A. Perez
University of BrasiliaJuly 20, 2015
![Page 2: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/2.jpg)
Introduction CCS The π-calculus
Acknowledgment
A part of this set of slides was originally produced by Jiri Srba, andmakes part of the course material for the book
Reactive Systems: Modelling, Specification and Verificationby L. Aceto, A. Ingolfsdottir, K. G. Larsen and J. Srba
URL: http://rsbook.cs.aau.dk
I have adapted them for the purposes of this talk.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 2 / 80
![Page 3: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/3.jpg)
Introduction CCS The π-calculus
Outline
Introduction
CCSIntroduction to CCSSyntax of CCSSemantics of CCSValue Passing CCSSemantic EquivalencesStrong BisimilarityWeak Bisimilarity
The π-calculusInformal IntroductionThe π-calculus, formally
Jorge A. Perez (Groningen) An Introduction to Process Calculi 3 / 80
![Page 4: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/4.jpg)
Introduction CCS The π-calculus
Classical View
Characterization of a Classical Program
Program transforms an input into an output.
• Denotational semantics:a meaning of a program is a partial function
states ↪→ states
• Nontermination is bad!
• In case of termination, the result is unique.
Is this all we need?
Jorge A. Perez (Groningen) An Introduction to Process Calculi 4 / 80
![Page 5: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/5.jpg)
Introduction CCS The π-calculus
Reactive systems
What about:
• Operating systems?
• Communication protocols?
• Control programs?
• Mobile phones?
• Vending machines?
Jorge A. Perez (Groningen) An Introduction to Process Calculi 5 / 80
![Page 6: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/6.jpg)
Introduction CCS The π-calculus
Reactive systems
Characterization of a Reactive System
Reactive System is a system that computes by reacting to stimulifrom its environment.
Key Issues:
• communication and interaction
• parallelism
Nontermination is good!
The result (if any) does not have to be unique.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 6 / 80
![Page 7: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/7.jpg)
Introduction CCS The π-calculus
Reactive systems
Characterization of a Reactive System
Reactive System is a system that computes by reacting to stimulifrom its environment.
Key Issues:
• communication and interaction
• parallelism
Nontermination is good!
The result (if any) does not have to be unique.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 6 / 80
![Page 8: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/8.jpg)
Introduction CCS The π-calculus
Analysis of Reactive Systems
Questions
• How can we develop (design) a system that “works”?
• How do we analyze (verify) such a system?
Fact of Life
Even short parallel programs may be hard to analyze.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 7 / 80
![Page 9: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/9.jpg)
Introduction CCS The π-calculus
The Need for a Theory
Conclusion
We need formal/systematic methods (tools), otherwise ...
• Intel’s Pentium-II bug in floating-point division unit
• Ariane-5 crash due to a conversion of 64-bit real to 16-bitinteger
• Mars Pathfinder
• ...
Jorge A. Perez (Groningen) An Introduction to Process Calculi 8 / 80
![Page 10: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/10.jpg)
Introduction CCS The π-calculus
Classical vs. Reactive Computing
Classical Reactive/Parallel
interaction no yesnontermination undesirable often desirable
unique result yes nosemantics states ↪→ states ?
Jorge A. Perez (Groningen) An Introduction to Process Calculi 9 / 80
![Page 11: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/11.jpg)
Introduction CCS The π-calculus
How to Model Reactive Systems
Question
What is the most abstract view of a reactive system (process)?
Answer
A process performs an action and becomes another process.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 10 / 80
![Page 12: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/12.jpg)
Introduction CCS The π-calculus
How to Model Reactive Systems
Question
What is the most abstract view of a reactive system (process)?
Answer
A process performs an action and becomes another process.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 10 / 80
![Page 13: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/13.jpg)
Introduction CCS The π-calculus
Labelled Transition System
Definition
A labelled transition system (LTS) is a triple(Proc,Act , { a−→| a ∈ Act}) where
• Proc is a set of states (or processes),
• Act is a set of labels (or actions), and
• for every a ∈ Act ,a−→ ⊆ Proc × Proc is a binary relation on
states called the transition relation.
We will use the infix notation sa−→ s′ meaning that (s, s′) ∈ a−→.
Sometimes we distinguish the initial (or start) state.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 11 / 80
![Page 14: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/14.jpg)
Introduction CCS The π-calculus
Sequencing, Nondeterminism, Parallelism
LTS explicitly focuses on interaction.
LTS can also describe:
• sequencing (a; b)
• choice (nondeterminism) (a+ b)
• limited notion of parallelism (by using interleaving) (a || b)
Jorge A. Perez (Groningen) An Introduction to Process Calculi 12 / 80
![Page 15: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/15.jpg)
Introduction CCS The π-calculus
Binary Relations
Definition
A binary relation R on a set A is a subset of A× A.
R ⊆ A× A
Sometimes we write xR y instead of (x, y) ∈ R.
Properties
• R is reflexive if (x, x) ∈ R for all x ∈ A• R is symmetric if (x, y) ∈ R implies (y, x) ∈ R for all x, y ∈ A• R is transitive if (x, y) ∈ R and (y, z) ∈ R implies that(x, z) ∈ R for all x, y, z ∈ A
We assume usual definitions of closures (reflexive, symmetric,transitive).
Jorge A. Perez (Groningen) An Introduction to Process Calculi 13 / 80
![Page 16: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/16.jpg)
Introduction CCS The π-calculus
Labelled Transition Systems – Notation
Let (Proc,Act , { a−→| a ∈ Act}) be an LTS.
• we extenda−→ to the elements of Act∗
• −→=⋃a∈Act
a−→• −→∗ is the reflexive and transitive closure of −→• s a−→ and s 6 a−→• reachable states
Jorge A. Perez (Groningen) An Introduction to Process Calculi 14 / 80
![Page 17: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/17.jpg)
Introduction CCS The π-calculus
Outline
Introduction
CCSIntroduction to CCSSyntax of CCSSemantics of CCSValue Passing CCSSemantic EquivalencesStrong BisimilarityWeak Bisimilarity
The π-calculusInformal IntroductionThe π-calculus, formally
Jorge A. Perez (Groningen) An Introduction to Process Calculi 15 / 80
![Page 18: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/18.jpg)
Introduction CCS The π-calculus
How to Describe LTS?
Syntax
unknown entity−→ Semantics
known entity
programming language−→ what (denotational) or
how (operational) it computes
???−→
Labelled Transition Systems
CCS
Jorge A. Perez (Groningen) An Introduction to Process Calculi 16 / 80
![Page 19: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/19.jpg)
Introduction CCS The π-calculus
How to Describe LTS?
Syntax
unknown entity−→ Semantics
known entity
programming language−→ what (denotational) or
how (operational) it computes
???−→
Labelled Transition Systems
CCS
Jorge A. Perez (Groningen) An Introduction to Process Calculi 16 / 80
![Page 20: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/20.jpg)
Introduction CCS The π-calculus
How to Describe LTS?
Syntax
unknown entity−→ Semantics
known entity
programming language−→ what (denotational) or
how (operational) it computes
???−→
Labelled Transition Systems
CCS
Jorge A. Perez (Groningen) An Introduction to Process Calculi 16 / 80
![Page 21: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/21.jpg)
Introduction CCS The π-calculus
How to Describe LTS?
Syntax
unknown entity−→ Semantics
known entity
programming language−→ what (denotational) or
how (operational) it computes
???−→
Labelled Transition Systems
CCS
Jorge A. Perez (Groningen) An Introduction to Process Calculi 16 / 80
![Page 22: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/22.jpg)
Introduction CCS The π-calculus
Calculus of Communicating Systems
CCS
Process calculus called “Calculus of Communicating Systems”.
Insight of Robin Milner (1989)
Concurrent (parallel) processes have an algebraic structure.
P1 op P2 ⇒ P1 op P2
Jorge A. Perez (Groningen) An Introduction to Process Calculi 17 / 80
![Page 23: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/23.jpg)
Introduction CCS The π-calculus
Process Calculus
Basic Principle
1 Define a few atomic processes (modeling the simplest processbehavior).
2 Define compositionally new operations (building more complexprocess behavior from simple ones).
Example
1 atomic instruction: assignment (e.g. x:=2 and x:=x+2)
2 new operators:• sequential composition (P1; P2)• parallel composition (P1 || P2)
E.g. (x:=1 || x:=2); x:=x+2; (x:=x-1 || x:=x+5) is aprocess.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 18 / 80
![Page 24: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/24.jpg)
Introduction CCS The π-calculus
Process Calculus
Basic Principle
1 Define a few atomic processes (modeling the simplest processbehavior).
2 Define compositionally new operations (building more complexprocess behavior from simple ones).
Example
1 atomic instruction: assignment (e.g. x:=2 and x:=x+2)
2 new operators:• sequential composition (P1; P2)• parallel composition (P1 || P2)
E.g. (x:=1 || x:=2); x:=x+2; (x:=x-1 || x:=x+5) is aprocess.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 18 / 80
![Page 25: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/25.jpg)
Introduction CCS The π-calculus
CCS Basics (Sequential Fragment)
• Nil (or 0) process (the only atomic process)
• action prefixing (a.P )
• names and recursive definitions (def=)
• nondeterministic choice (+)
This is Enough to Describe Sequential Processes
Any finite LTS can be (up to isomorphism) described by using theoperations above.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 19 / 80
![Page 26: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/26.jpg)
Introduction CCS The π-calculus
CCS Basics (Sequential Fragment)
• Nil (or 0) process (the only atomic process)
• action prefixing (a.P )
• names and recursive definitions (def=)
• nondeterministic choice (+)
This is Enough to Describe Sequential Processes
Any finite LTS can be (up to isomorphism) described by using theoperations above.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 19 / 80
![Page 27: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/27.jpg)
Introduction CCS The π-calculus
CCS Basics (Parallelism and Renaming)
• parallel composition ( || )(synchronous communication between two components =handshake synchronization)
• restriction ((νa1, . . . , an)P )Alternative notation: P r L, with L = {a1, . . . , an}
• relabelling (P [f ])
Jorge A. Perez (Groningen) An Introduction to Process Calculi 20 / 80
![Page 28: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/28.jpg)
Introduction CCS The π-calculus
CCS Basics (Parallelism and Renaming)
• parallel composition ( || )(synchronous communication between two components =handshake synchronization)
• restriction ((νa1, . . . , an)P )Alternative notation: P r L, with L = {a1, . . . , an}
• relabelling (P [f ])
Jorge A. Perez (Groningen) An Introduction to Process Calculi 20 / 80
![Page 29: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/29.jpg)
Introduction CCS The π-calculus
CCS Basics (Parallelism and Renaming)
• parallel composition ( || )(synchronous communication between two components =handshake synchronization)
• restriction ((νa1, . . . , an)P )Alternative notation: P r L, with L = {a1, . . . , an}
• relabelling (P [f ])
Jorge A. Perez (Groningen) An Introduction to Process Calculi 20 / 80
![Page 30: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/30.jpg)
Introduction CCS The π-calculus
Some Examples
Assigning names to processes (as in procedures) allows us to giverecursive definitions of process behaviors.
Some examples:
• Clock def= tick.Clock
• CM def= coin.coffee.CM
• VM def= coin.item.VM
• CTM def= coin.(coffee.CTM + tea.CTM)
• CS def= pub.coin.coffee.CS
• SmUni def= (νcoin, coffee)(CM ||CS)
Jorge A. Perez (Groningen) An Introduction to Process Calculi 21 / 80
![Page 31: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/31.jpg)
Introduction CCS The π-calculus
Definition of CCS
Let
• A be a set of channel names (e.g. tea, coffee)
• L = A ∪A be a set of labels where• A = {a | a ∈ A}
(A are called names and A are called co-names)• by convention a = a
• Act = L ∪ {τ} is the set of actions where• τ is the internal or silent action
(e.g. τ , tea, coffee are actions)
• K is a set of process names (constants) (e.g. CM).
Jorge A. Perez (Groningen) An Introduction to Process Calculi 22 / 80
![Page 32: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/32.jpg)
Introduction CCS The π-calculus
Definition of CCS
Let
• A be a set of channel names (e.g. tea, coffee)
• L = A ∪A be a set of labels where• A = {a | a ∈ A}
(A are called names and A are called co-names)• by convention a = a
• Act = L ∪ {τ} is the set of actions where• τ is the internal or silent action
(e.g. τ , tea, coffee are actions)
• K is a set of process names (constants) (e.g. CM).
Jorge A. Perez (Groningen) An Introduction to Process Calculi 22 / 80
![Page 33: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/33.jpg)
Introduction CCS The π-calculus
Definition of CCS
Let
• A be a set of channel names (e.g. tea, coffee)
• L = A ∪A be a set of labels where• A = {a | a ∈ A}
(A are called names and A are called co-names)• by convention a = a
• Act = L ∪ {τ} is the set of actions where• τ is the internal or silent action
(e.g. τ , tea, coffee are actions)
• K is a set of process names (constants) (e.g. CM).
Jorge A. Perez (Groningen) An Introduction to Process Calculi 22 / 80
![Page 34: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/34.jpg)
Introduction CCS The π-calculus
Definition of CCS
Let
• A be a set of channel names (e.g. tea, coffee)
• L = A ∪A be a set of labels where• A = {a | a ∈ A}
(A are called names and A are called co-names)• by convention a = a
• Act = L ∪ {τ} is the set of actions where• τ is the internal or silent action
(e.g. τ , tea, coffee are actions)
• K is a set of process names (constants) (e.g. CM).
Jorge A. Perez (Groningen) An Introduction to Process Calculi 22 / 80
![Page 35: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/35.jpg)
Introduction CCS The π-calculus
Definition of CCS (expressions)
P := K | process constants (K ∈ K)α.P | prefixing (α ∈ Act)∑
i∈I Pi | summation (I is an arbitrary index set)P1 ||P2 | parallel composition(νa1, . . . , an)P | restriction ({a1, . . . , an} ⊆ A)P [f ] | relabelling (f : Act → Act) such that
• f(τ) = τ
• f(a) = f(a)
The set of all terms generated by the abstract syntax is calledCCS process expressions (and denoted by P).
Notation
P1 + P2 =∑
i∈{1,2} Pi Nil = 0 =∑
i∈∅ Pi
Jorge A. Perez (Groningen) An Introduction to Process Calculi 23 / 80
![Page 36: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/36.jpg)
Introduction CCS The π-calculus
Precedence
Precedence
1 restriction and relabelling (tightest binding)
2 action prefixing
3 parallel composition
4 summation
Example: R + a.P || b.Qr L means R +((a.P ) || (b.(Qr L))
).
Jorge A. Perez (Groningen) An Introduction to Process Calculi 24 / 80
![Page 37: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/37.jpg)
Introduction CCS The π-calculus
Precedence
Precedence
1 restriction and relabelling (tightest binding)
2 action prefixing
3 parallel composition
4 summation
Example: R + a.P || b.Qr L means R +((a.P ) || (b.(Qr L))
).
Jorge A. Perez (Groningen) An Introduction to Process Calculi 24 / 80
![Page 38: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/38.jpg)
Introduction CCS The π-calculus
Definition of CCS (defining equations)
CCS program
A collection of defining equations of the form
Kdef= P
where K ∈ K is a process constant and P ∈ P is a CCS processexpression.
• Only one defining equation per process constant.
• Recursion is allowed: e.g. Adef= a.A || A.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 25 / 80
![Page 39: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/39.jpg)
Introduction CCS The π-calculus
Semantics of CCS
Syntax
CCS(collection of defining equations)
−→Semantics
LTS(labelled transition systems)
HOW?
Jorge A. Perez (Groningen) An Introduction to Process Calculi 26 / 80
![Page 40: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/40.jpg)
Introduction CCS The π-calculus
Semantics of CCS
Syntax
CCS(collection of defining equations)
−→Semantics
LTS(labelled transition systems)
HOW?
Jorge A. Perez (Groningen) An Introduction to Process Calculi 26 / 80
![Page 41: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/41.jpg)
Introduction CCS The π-calculus
Semantics of CCS
Syntax
CCS(collection of defining equations)
−→Semantics
LTS(labelled transition systems)
HOW?
Jorge A. Perez (Groningen) An Introduction to Process Calculi 26 / 80
![Page 42: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/42.jpg)
Introduction CCS The π-calculus
Structural Operational Semantics for CCS
Structural Operational Semantics (SOS) – G. Plotkin 1981
Small-step operational semantics where the behaviour of a systemis inferred using syntax driven rules.
Given a collection of CCS defining equations, we define thefollowing LTS (Proc,Act , { a−→| a ∈ Act}):• Proc = P (the set of all CCS process expressions)• Act = L ∪ {τ} (the set of all CCS actions including τ)• transition relation is given by SOS rules of the form:
RULEpremises
conclusionconditions
Jorge A. Perez (Groningen) An Introduction to Process Calculi 27 / 80
![Page 43: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/43.jpg)
Introduction CCS The π-calculus
Structural Operational Semantics for CCS
Structural Operational Semantics (SOS) – G. Plotkin 1981
Small-step operational semantics where the behaviour of a systemis inferred using syntax driven rules.
Given a collection of CCS defining equations, we define thefollowing LTS (Proc,Act , { a−→| a ∈ Act}):• Proc = P (the set of all CCS process expressions)• Act = L ∪ {τ} (the set of all CCS actions including τ)• transition relation is given by SOS rules of the form:
RULEpremises
conclusionconditions
Jorge A. Perez (Groningen) An Introduction to Process Calculi 27 / 80
![Page 44: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/44.jpg)
Introduction CCS The π-calculus
SOS rules for CCS (α ∈ Act , a ∈ L)
ACTα.P
α−→ PSUMj
Pjα−→ P ′j∑
i∈I Piα−→ P ′j
j ∈ I
COM1 Pα−→ P ′
P ||Q α−→ P ′ ||QCOM2
Qα−→ Q′
P ||Q α−→ P ||Q′
COM3P
a−→ P ′ Qa−→ Q′
P ||Q τ−→ P ′ ||Q′
RES Pα−→ P ′
P r Lα−→ P ′ r L
α, α 6∈ L REL Pα−→ P ′
P [f ]f(α)−→ P ′[f ]
CON Pα−→ P ′
Kα−→ P ′
Kdef= P
Jorge A. Perez (Groningen) An Introduction to Process Calculi 28 / 80
![Page 45: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/45.jpg)
Introduction CCS The π-calculus
Deriving Transitions in CCS
Let Adef= a.A. Then((A || a.Nil) || b.Nil
)[c/a]
c−→((A || a.Nil) || b.Nil
)[c/a].
REL
COM1
COM1
CON
ACTa.A
a−→ A
Aa−→ A
Adef= a.A
A || a.Nila−→ A || a.Nil
(A || a.Nil) || b.Nila−→ (A || a.Nil) || b.Nil
((A || a.Nil) || b.Nil
)[c/a]
c−→((A || a.Nil) || b.Nil
)[c/a]
Jorge A. Perez (Groningen) An Introduction to Process Calculi 29 / 80
![Page 46: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/46.jpg)
Introduction CCS The π-calculus
Deriving Transitions in CCS
Let Adef= a.A. Then((A || a.Nil) || b.Nil
)[c/a]
c−→((A || a.Nil) || b.Nil
)[c/a].
REL
COM1
COM1
CON
ACTa.A
a−→ A
Aa−→ A
Adef= a.A
A || a.Nila−→ A || a.Nil
(A || a.Nil) || b.Nila−→ (A || a.Nil) || b.Nil
((A || a.Nil) || b.Nil
)[c/a]
c−→((A || a.Nil) || b.Nil
)[c/a]
Jorge A. Perez (Groningen) An Introduction to Process Calculi 29 / 80
![Page 47: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/47.jpg)
Introduction CCS The π-calculus
Deriving Transitions in CCS
Let Adef= a.A. Then((A || a.Nil) || b.Nil
)[c/a]
c−→((A || a.Nil) || b.Nil
)[c/a].
REL
COM1
COM1
CON
ACTa.A
a−→ A
Aa−→ A
Adef= a.A
A || a.Nila−→ A || a.Nil
(A || a.Nil) || b.Nila−→ (A || a.Nil) || b.Nil(
(A || a.Nil) || b.Nil)[c/a]
c−→((A || a.Nil) || b.Nil
)[c/a]
Jorge A. Perez (Groningen) An Introduction to Process Calculi 29 / 80
![Page 48: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/48.jpg)
Introduction CCS The π-calculus
Deriving Transitions in CCS
Let Adef= a.A. Then((A || a.Nil) || b.Nil
)[c/a]
c−→((A || a.Nil) || b.Nil
)[c/a].
REL
COM1
COM1
CON
ACTa.A
a−→ A
Aa−→ A
Adef= a.A
A || a.Nila−→ A || a.Nil
(A || a.Nil) || b.Nila−→ (A || a.Nil) || b.Nil(
(A || a.Nil) || b.Nil)[c/a]
c−→((A || a.Nil) || b.Nil
)[c/a]
Jorge A. Perez (Groningen) An Introduction to Process Calculi 29 / 80
![Page 49: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/49.jpg)
Introduction CCS The π-calculus
Deriving Transitions in CCS
Let Adef= a.A. Then((A || a.Nil) || b.Nil
)[c/a]
c−→((A || a.Nil) || b.Nil
)[c/a].
REL
COM1
COM1
CON
ACTa.A
a−→ A
Aa−→ A
Adef= a.A
A || a.Nila−→ A || a.Nil
(A || a.Nil) || b.Nila−→ (A || a.Nil) || b.Nil(
(A || a.Nil) || b.Nil)[c/a]
c−→((A || a.Nil) || b.Nil
)[c/a]
Jorge A. Perez (Groningen) An Introduction to Process Calculi 29 / 80
![Page 50: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/50.jpg)
Introduction CCS The π-calculus
Deriving Transitions in CCS
Let Adef= a.A. Then((A || a.Nil) || b.Nil
)[c/a]
c−→((A || a.Nil) || b.Nil
)[c/a].
REL
COM1
COM1
CON
ACTa.A
a−→ A
Aa−→ A
Adef= a.A
A || a.Nila−→ A || a.Nil
(A || a.Nil) || b.Nila−→ (A || a.Nil) || b.Nil(
(A || a.Nil) || b.Nil)[c/a]
c−→((A || a.Nil) || b.Nil
)[c/a]
Jorge A. Perez (Groningen) An Introduction to Process Calculi 29 / 80
![Page 51: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/51.jpg)
Introduction CCS The π-calculus
LTS of the Process a.Nil || a.Nil
a.Nil || a.Nil
a
yy
a
%%τ
��
Nil || a.Nil
a
%%
a.Nil || Nil
a
yyNil || Nil
Jorge A. Perez (Groningen) An Introduction to Process Calculi 30 / 80
![Page 52: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/52.jpg)
Introduction CCS The π-calculus
Value Passing CCS
Main Idea
Handshake synchronization is extended with the possibility toexchange integer values.
pay(6).Nil || pay(x).save(x/2).Nil
|| Bank(100)
↓ τNil || save(3).Nil
|| Bank(100)
↓ τNil || Nil || Bank(103)
Parametrized Process Constants
For example: Bank(total)def= save(x).Bank(total + x).
Jorge A. Perez (Groningen) An Introduction to Process Calculi 31 / 80
![Page 53: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/53.jpg)
Introduction CCS The π-calculus
Value Passing CCS
Main Idea
Handshake synchronization is extended with the possibility toexchange integer values.
pay(6).Nil || pay(x).save(x/2).Nil
|| Bank(100)
↓ τNil || save(3).Nil
|| Bank(100)
↓ τNil || Nil || Bank(103)
Parametrized Process Constants
For example: Bank(total)def= save(x).Bank(total + x).
Jorge A. Perez (Groningen) An Introduction to Process Calculi 31 / 80
![Page 54: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/54.jpg)
Introduction CCS The π-calculus
Value Passing CCS
Main Idea
Handshake synchronization is extended with the possibility toexchange integer values.
pay(6).Nil || pay(x).save(x/2).Nil
|| Bank(100)
↓ τNil || save(3).Nil
|| Bank(100)
↓ τNil || Nil || Bank(103)
Parametrized Process Constants
For example: Bank(total)def= save(x).Bank(total + x).
Jorge A. Perez (Groningen) An Introduction to Process Calculi 31 / 80
![Page 55: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/55.jpg)
Introduction CCS The π-calculus
Value Passing CCS
Main Idea
Handshake synchronization is extended with the possibility toexchange integer values.
pay(6).Nil || pay(x).save(x/2).Nil || Bank(100)
↓ τNil || save(3).Nil || Bank(100)
↓ τNil || Nil || Bank(103)
Parametrized Process Constants
For example: Bank(total)def= save(x).Bank(total + x).
Jorge A. Perez (Groningen) An Introduction to Process Calculi 31 / 80
![Page 56: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/56.jpg)
Introduction CCS The π-calculus
Value Passing CCS
Main Idea
Handshake synchronization is extended with the possibility toexchange integer values.
pay(6).Nil || pay(x).save(x/2).Nil || Bank(100)
↓ τNil || save(3).Nil || Bank(100)
↓ τNil || Nil || Bank(103)
Parametrized Process Constants
For example: Bank(total)def= save(x).Bank(total + x).
Jorge A. Perez (Groningen) An Introduction to Process Calculi 31 / 80
![Page 57: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/57.jpg)
Introduction CCS The π-calculus
From Value Passing CCS to Standard CCS
Value Passing CCS
Cdef= in(x).C ′(x)
C ′(x)def= out(x).C
−→
Standard CCS
Cdef=∑i∈N
in(i).C ′i
C ′idef= out(i).C
· · ·C
in(x)
��C ′(x)
out(x)
JJ C ′i
out(i)** C
in(1)
in(2)++
in(i)
jj C ′2out(2)
jj
C ′1
out(1)
JJ
symbolic LTS infinite LTS
Jorge A. Perez (Groningen) An Introduction to Process Calculi 32 / 80
![Page 58: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/58.jpg)
Introduction CCS The π-calculus
CCS Has Full Turing Power
Fact
CCS can simulate a computation of any Turing machine.
Remark
Hence CCS is as expressive as any other programming language butits use is to rather describe the behaviour of reactive systems thanto perform specific calculations.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 33 / 80
![Page 59: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/59.jpg)
Introduction CCS The π-calculus
CCS Has Full Turing Power
Fact
CCS can simulate a computation of any Turing machine.
Remark
Hence CCS is as expressive as any other programming language butits use is to rather describe the behaviour of reactive systems thanto perform specific calculations.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 33 / 80
![Page 60: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/60.jpg)
Introduction CCS The π-calculus
Behavioural Equivalence
Implementation
CMdef= coin.coffee.CM
CSdef= pub.coin.coffee.CS
Unidef= (νcoin, coffee)(CM || CS )
Specification
Specdef= pub.Spec
Question
Are the processes Uni and Spec behaviorally equivalent?
Uni ≡ Spec
Jorge A. Perez (Groningen) An Introduction to Process Calculi 34 / 80
![Page 61: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/61.jpg)
Introduction CCS The π-calculus
Behavioural Equivalence
Implementation
CMdef= coin.coffee.CM
CSdef= pub.coin.coffee.CS
Unidef= (νcoin, coffee)(CM || CS )
Specification
Specdef= pub.Spec
Question
Are the processes Uni and Spec behaviorally equivalent?
Uni ≡ Spec
Jorge A. Perez (Groningen) An Introduction to Process Calculi 34 / 80
![Page 62: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/62.jpg)
Introduction CCS The π-calculus
Goals
What should a reasonable behavioral equivalence satisfy?
• abstract from states (consider only the behavior – actions)
• abstract from nondeterminism
• abstract from internal behavior
What else should a reasonable behavioural equivalence satisfy?
• reflexivity P ≡ P for any process P
• transitivity Spec0 ≡ Spec1 ≡ Spec2 ≡ · · · ≡ Impl gives thatSpec0 ≡ Impl
• symmetry P ≡ Q iff Q ≡ P
Jorge A. Perez (Groningen) An Introduction to Process Calculi 35 / 80
![Page 63: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/63.jpg)
Introduction CCS The π-calculus
Goals
What should a reasonable behavioral equivalence satisfy?
• abstract from states (consider only the behavior – actions)
• abstract from nondeterminism
• abstract from internal behavior
What else should a reasonable behavioural equivalence satisfy?
• reflexivity P ≡ P for any process P
• transitivity Spec0 ≡ Spec1 ≡ Spec2 ≡ · · · ≡ Impl gives thatSpec0 ≡ Impl
• symmetry P ≡ Q iff Q ≡ P
Jorge A. Perez (Groningen) An Introduction to Process Calculi 35 / 80
![Page 64: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/64.jpg)
Introduction CCS The π-calculus
Congruence
P
C
Q
C
C(P ) C(Q)
• We would like “equal” processes P and Q to “behave the same”under any context C(·).• A context is a process with a hole.
When the hole is filled in with a process P , we obtain anotherprocess (usually noted C(P ) or C[P ]).
Congruence Property
P ≡ Q implies that C(P ) ≡ C(Q)Jorge A. Perez (Groningen) An Introduction to Process Calculi 36 / 80
![Page 65: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/65.jpg)
Introduction CCS The π-calculus
Congruence
P
C
Q
C
C(P ) C(Q)
• We would like “equal” processes P and Q to “behave the same”under any context C(·).• A context is a process with a hole.
When the hole is filled in with a process P , we obtain anotherprocess (usually noted C(P ) or C[P ]).
Congruence Property
P ≡ Q implies that C(P ) ≡ C(Q)Jorge A. Perez (Groningen) An Introduction to Process Calculi 36 / 80
![Page 66: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/66.jpg)
Introduction CCS The π-calculus
Congruence
P
C
Q
C
C(P ) C(Q)
• We would like “equal” processes P and Q to “behave the same”under any context C(·).• A context is a process with a hole.
When the hole is filled in with a process P , we obtain anotherprocess (usually noted C(P ) or C[P ]).
Congruence Property
P ≡ Q implies that C(P ) ≡ C(Q)Jorge A. Perez (Groningen) An Introduction to Process Calculi 36 / 80
![Page 67: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/67.jpg)
Introduction CCS The π-calculus
Trace Equivalence
Let (Proc,Act , { a−→| a ∈ Act}) be an LTS.
Trace Set for s ∈ Proc
Traces(s) = {w ∈ Act∗ | ∃s′ ∈ Proc. sw−→ s′}
Let s ∈ Proc and t ∈ Proc.
Trace Equivalence
We say that s and t are trace equivalent (s ≡t t) if and only ifTraces(s) = Traces(t)
Jorge A. Perez (Groningen) An Introduction to Process Calculi 37 / 80
![Page 68: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/68.jpg)
Introduction CCS The π-calculus
Trace Equivalence
Let (Proc,Act , { a−→| a ∈ Act}) be an LTS.
Trace Set for s ∈ Proc
Traces(s) = {w ∈ Act∗ | ∃s′ ∈ Proc. sw−→ s′}
Let s ∈ Proc and t ∈ Proc.
Trace Equivalence
We say that s and t are trace equivalent (s ≡t t) if and only ifTraces(s) = Traces(t)
Jorge A. Perez (Groningen) An Introduction to Process Calculi 37 / 80
![Page 69: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/69.jpg)
Introduction CCS The π-calculus
Black-Box Experiments
Main Idea
Two processes are behaviorally equivalent if and only if an externalobserver cannot tell them apart.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 38 / 80
![Page 70: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/70.jpg)
Introduction CCS The π-calculus
Strong Bisimilarity
Let (Proc,Act , { a−→| a ∈ Act}) be an LTS.
Strong Bisimulation
A binary relation R ⊆ Proc × Proc is a strong bisimulation iffwhenever (s, t) ∈ R then for each a ∈ Act :
• if sa−→ s′ then t
a−→ t′ for some t′ such that (s′, t′) ∈ R• if t
a−→ t′ then sa−→ s′ for some s′ such that (s′, t′) ∈ R.
Strong Bisimilarity
Processes p1, p2 ∈ Proc are strongly bisimilar (p1 ∼ p2) if and onlyif there exists a strong bisimulation R such that (p1, p2) ∈ R.
∼ =⋃{R | R is a strong bisimulation}
Jorge A. Perez (Groningen) An Introduction to Process Calculi 39 / 80
![Page 71: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/71.jpg)
Introduction CCS The π-calculus
Strong Bisimilarity
Let (Proc,Act , { a−→| a ∈ Act}) be an LTS.
Strong Bisimulation
A binary relation R ⊆ Proc × Proc is a strong bisimulation iffwhenever (s, t) ∈ R then for each a ∈ Act :
• if sa−→ s′ then t
a−→ t′ for some t′ such that (s′, t′) ∈ R• if t
a−→ t′ then sa−→ s′ for some s′ such that (s′, t′) ∈ R.
Strong Bisimilarity
Processes p1, p2 ∈ Proc are strongly bisimilar (p1 ∼ p2) if and onlyif there exists a strong bisimulation R such that (p1, p2) ∈ R.
∼ =⋃{R | R is a strong bisimulation}
Jorge A. Perez (Groningen) An Introduction to Process Calculi 39 / 80
![Page 72: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/72.jpg)
Introduction CCS The π-calculus
Basic Properties of Strong Bisimilarity
Theorem
∼ is an equivalence (reflexive, symmetric and transitive)
Theorem
∼ is the largest strong bisimulation
Theorem
s ∼ t if and only if for each a ∈ Act :
• if sa−→ s′ then t
a−→ t′ for some t′ such that s′ ∼ t′
• if ta−→ t′ then s
a−→ s′ for some s′ such that s′ ∼ t′.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 40 / 80
![Page 73: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/73.jpg)
Introduction CCS The π-calculus
Basic Properties of Strong Bisimilarity
Theorem
∼ is an equivalence (reflexive, symmetric and transitive)
Theorem
∼ is the largest strong bisimulation
Theorem
s ∼ t if and only if for each a ∈ Act :
• if sa−→ s′ then t
a−→ t′ for some t′ such that s′ ∼ t′
• if ta−→ t′ then s
a−→ s′ for some s′ such that s′ ∼ t′.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 40 / 80
![Page 74: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/74.jpg)
Introduction CCS The π-calculus
Basic Properties of Strong Bisimilarity
Theorem
∼ is an equivalence (reflexive, symmetric and transitive)
Theorem
∼ is the largest strong bisimulation
Theorem
s ∼ t if and only if for each a ∈ Act :
• if sa−→ s′ then t
a−→ t′ for some t′ such that s′ ∼ t′
• if ta−→ t′ then s
a−→ s′ for some s′ such that s′ ∼ t′.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 40 / 80
![Page 75: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/75.jpg)
Introduction CCS The π-calculus
How to Show Nonbisimilarity?
sa��
ta
{{a
##s1
b
{{c
##
t1b ��
t2c��
s2 s3 t3 t4
To prove that s 6∼ t:
• Enumerate all binary relations and show that none of them at thesame time contains (s, t) and is a strong bisimulation.(Expensive: 2|Proc|
2relations.)
• Make certain observations which will enable to disqualify manybisimulation candidates in one step.
• Use game characterization of strong bisimilarity.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 41 / 80
![Page 76: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/76.jpg)
Introduction CCS The π-calculus
How to Show Nonbisimilarity?
sa��
ta
{{a
##s1
b
{{c
##
t1b ��
t2c��
s2 s3 t3 t4
To prove that s 6∼ t:
• Enumerate all binary relations and show that none of them at thesame time contains (s, t) and is a strong bisimulation.(Expensive: 2|Proc|
2relations.)
• Make certain observations which will enable to disqualify manybisimulation candidates in one step.
• Use game characterization of strong bisimilarity.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 41 / 80
![Page 77: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/77.jpg)
Introduction CCS The π-calculus
How to Show Nonbisimilarity?
sa��
ta
{{a
##s1
b
{{c
##
t1b ��
t2c��
s2 s3 t3 t4
To prove that s 6∼ t:
• Enumerate all binary relations and show that none of them at thesame time contains (s, t) and is a strong bisimulation.(Expensive: 2|Proc|
2relations.)
• Make certain observations which will enable to disqualify manybisimulation candidates in one step.
• Use game characterization of strong bisimilarity.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 41 / 80
![Page 78: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/78.jpg)
Introduction CCS The π-calculus
How to Show Nonbisimilarity?
sa��
ta
{{a
##s1
b
{{c
##
t1b ��
t2c��
s2 s3 t3 t4
To prove that s 6∼ t:
• Enumerate all binary relations and show that none of them at thesame time contains (s, t) and is a strong bisimulation.(Expensive: 2|Proc|
2relations.)
• Make certain observations which will enable to disqualify manybisimulation candidates in one step.
• Use game characterization of strong bisimilarity.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 41 / 80
![Page 79: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/79.jpg)
Introduction CCS The π-calculus
Bisimilarity is a Congruence for CCS
Theorem
Let P and Q be CCS processes such that P ∼ Q. Then
• α.P ∼ α.Q for each action α ∈ Act
• P +R ∼ Q+R and R+ P ∼ R+Q for each CCS process R
• P |R ∼ Q |R and R | P ∼ R |Q for each CCS process R
• (νa)P ∼ (νa)Q for any a.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 42 / 80
![Page 80: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/80.jpg)
Introduction CCS The π-calculus
Other Properties of Strong Bisimilarity
Following Properties Hold for any CCS Processes P , Q and R
• P +Q ∼ Q+ P
• P || Q ∼ Q || P• P + Nil ∼ P
• P || Nil ∼ P
• (P +Q) +R ∼ P + (Q+R)
• (P || Q) || R ∼ P || (Q || R)
Jorge A. Perez (Groningen) An Introduction to Process Calculi 43 / 80
![Page 81: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/81.jpg)
Introduction CCS The π-calculus
Example – Buffer
Buffer of Capacity 1
B10
def= in.B1
1
B11
def= out .B1
0
Buffer of Capacity n
Bn0
def= in.Bn
1
Bni
def= in.Bn
i+1 + out .Bni−1 for 0 < i < n
Bnn
def= out .Bn
n−1
Example: B20 ∼ B1
0 ||B10
B20
in��
B10 ||B1
0in
�� in++B2
1
in��
out
ZZ
B11 ||B1
0
in ++
out
DD
B10 ||B1
1
in
��
outkk
B22
out
ZZ
B11 ||B1
1
out
kk
out
DD
Jorge A. Perez (Groningen) An Introduction to Process Calculi 44 / 80
![Page 82: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/82.jpg)
Introduction CCS The π-calculus
Example – Buffer
Buffer of Capacity 1
B10
def= in.B1
1
B11
def= out .B1
0
Buffer of Capacity n
Bn0
def= in.Bn
1
Bni
def= in.Bn
i+1 + out .Bni−1 for 0 < i < n
Bnn
def= out .Bn
n−1
Example: B20 ∼ B1
0 ||B10
B20
in��
B10 ||B1
0in
�� in++B2
1
in��
out
ZZ
B11 ||B1
0
in ++
out
DD
B10 ||B1
1
in
��
outkk
B22
out
ZZ
B11 ||B1
1
out
kk
out
DD
Jorge A. Perez (Groningen) An Introduction to Process Calculi 44 / 80
![Page 83: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/83.jpg)
Introduction CCS The π-calculus
Example – Buffer
Buffer of Capacity 1
B10
def= in.B1
1
B11
def= out .B1
0
Buffer of Capacity n
Bn0
def= in.Bn
1
Bni
def= in.Bn
i+1 + out .Bni−1 for 0 < i < n
Bnn
def= out .Bn
n−1
Example: B20 ∼ B1
0 ||B10
B20
in��
B10 ||B1
0in
�� in++B2
1
in��
out
ZZ
B11 ||B1
0
in ++
out
DD
B10 ||B1
1
in
��
outkk
B22
out
ZZ
B11 ||B1
1
out
kk
out
DD
Jorge A. Perez (Groningen) An Introduction to Process Calculi 44 / 80
![Page 84: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/84.jpg)
Introduction CCS The π-calculus
Example – Buffer
Theorem
For all natural numbers n: Bn0 ∼ B1
0 ||B10 || · · · ||B1
0︸ ︷︷ ︸n times
Proof.
The co-inductive proof method: to show bisimilarity, show anappropriate strong bisimulation.Construct the following binary relation where i1, i2, . . . , in ∈ {0, 1}.
R = {(Bni , B
1i1||B1
i2|| · · · ||B1
in
)|
n∑j=1
ij = i}
•(Bn
0 , B10 ||B1
0 || · · · ||B10
)∈ R
• R is strong bisimulation
Jorge A. Perez (Groningen) An Introduction to Process Calculi 45 / 80
![Page 85: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/85.jpg)
Introduction CCS The π-calculus
Example – Buffer
Theorem
For all natural numbers n: Bn0 ∼ B1
0 ||B10 || · · · ||B1
0︸ ︷︷ ︸n times
Proof.
The co-inductive proof method: to show bisimilarity, show anappropriate strong bisimulation.Construct the following binary relation where i1, i2, . . . , in ∈ {0, 1}.
R = {(Bni , B
1i1||B1
i2|| · · · ||B1
in
)|
n∑j=1
ij = i}
•(Bn
0 , B10 ||B1
0 || · · · ||B10
)∈ R
• R is strong bisimulation
Jorge A. Perez (Groningen) An Introduction to Process Calculi 45 / 80
![Page 86: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/86.jpg)
Introduction CCS The π-calculus
Strong Bisimilarity – Summary
Properties of ∼• an equivalence relation
• the largest strong bisimulation
• a congruence
• enough to prove some natural rules like• P ||Q ∼ Q ||P• P ||Nil ∼ P• (P ||Q) ||R ∼ Q || (P ||R)• · · ·
Question
Should we look any further???
Jorge A. Perez (Groningen) An Introduction to Process Calculi 46 / 80
![Page 87: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/87.jpg)
Introduction CCS The π-calculus
Strong Bisimilarity – Summary
Properties of ∼• an equivalence relation
• the largest strong bisimulation
• a congruence
• enough to prove some natural rules like• P ||Q ∼ Q ||P• P ||Nil ∼ P• (P ||Q) ||R ∼ Q || (P ||R)• · · ·
Question
Should we look any further???
Jorge A. Perez (Groningen) An Introduction to Process Calculi 46 / 80
![Page 88: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/88.jpg)
Introduction CCS The π-calculus
Problems with Internal Actions
Question
Does a.τ.Nil ∼ a.Nil hold? NO!
Problem
Strong bisimilarity does not abstract away from τ actions.
Example: SmUni 6∼ SpecSmUni
pub��
6∼ Spec
pub
WW
(νcoin, coffee)(CM || CS1)τ��
(νcoin, coffee)(CM1 || CS2)τ��
(νcoin, coffee)(CM || CS)
pub
kk
Jorge A. Perez (Groningen) An Introduction to Process Calculi 47 / 80
![Page 89: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/89.jpg)
Introduction CCS The π-calculus
Problems with Internal Actions
Question
Does a.τ.Nil ∼ a.Nil hold? NO!
Problem
Strong bisimilarity does not abstract away from τ actions.
Example: SmUni 6∼ SpecSmUni
pub��
6∼ Spec
pub
WW
(νcoin, coffee)(CM || CS1)τ��
(νcoin, coffee)(CM1 || CS2)τ��
(νcoin, coffee)(CM || CS)
pub
kk
Jorge A. Perez (Groningen) An Introduction to Process Calculi 47 / 80
![Page 90: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/90.jpg)
Introduction CCS The π-calculus
Problems with Internal Actions
Question
Does a.τ.Nil ∼ a.Nil hold? NO!
Problem
Strong bisimilarity does not abstract away from τ actions.
Example: SmUni 6∼ SpecSmUni
pub��
6∼ Spec
pub
WW
(νcoin, coffee)(CM || CS1)τ��
(νcoin, coffee)(CM1 || CS2)τ��
(νcoin, coffee)(CM || CS)
pub
kk
Jorge A. Perez (Groningen) An Introduction to Process Calculi 47 / 80
![Page 91: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/91.jpg)
Introduction CCS The π-calculus
Problems with Internal Actions
Question
Does a.τ.Nil ∼ a.Nil hold? NO!
Problem
Strong bisimilarity does not abstract away from τ actions.
Example: SmUni 6∼ SpecSmUni
pub��
6∼ Spec
pub
WW
(νcoin, coffee)(CM || CS1)τ��
(νcoin, coffee)(CM1 || CS2)τ��
(νcoin, coffee)(CM || CS)
pub
kk
Jorge A. Perez (Groningen) An Introduction to Process Calculi 47 / 80
![Page 92: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/92.jpg)
Introduction CCS The π-calculus
Weak Transition Relation
Let (Proc,Act , { a−→| a ∈ Act}) be an LTS such that τ ∈ Act .
Definition of Weak Transition Relation
Below, ◦ stands for function composition.
a=⇒ =
{(
τ−→)∗◦ a−→ ◦( τ−→)∗ if a 6= τ
(τ−→)∗ if a = τ
What does sa
=⇒ t informally mean?
• If a 6= τ then sa
=⇒ t means thatfrom s we can get to t by doing zero or more τ actions,followed by the action a, followed by zero or more τ actions.
• If a = τ then sτ
=⇒ t means thatfrom s we can get to t by doing zero or more τ actions.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 48 / 80
![Page 93: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/93.jpg)
Introduction CCS The π-calculus
Weak Transition Relation
Let (Proc,Act , { a−→| a ∈ Act}) be an LTS such that τ ∈ Act .
Definition of Weak Transition Relation
Below, ◦ stands for function composition.
a=⇒ =
{(
τ−→)∗◦ a−→ ◦( τ−→)∗ if a 6= τ
(τ−→)∗ if a = τ
What does sa
=⇒ t informally mean?
• If a 6= τ then sa
=⇒ t means thatfrom s we can get to t by doing zero or more τ actions,followed by the action a, followed by zero or more τ actions.
• If a = τ then sτ
=⇒ t means thatfrom s we can get to t by doing zero or more τ actions.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 48 / 80
![Page 94: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/94.jpg)
Introduction CCS The π-calculus
Weak Bisimilarity
Let (Proc,Act , { a−→| a ∈ Act}) be an LTS such that τ ∈ Act .
Weak Bisimulation
A binary relation R ⊆ Proc × Proc is a weak bisimulation iffwhenever (s, t) ∈ R then for each a ∈ Act (including τ):
• if sa−→ s′ then t
a=⇒ t′ for some t′ such that (s′, t′) ∈ R
• if ta−→ t′ then s
a=⇒ s′ for some s′ such that (s′, t′) ∈ R.
Weak Bisimilarity
Two processes p1, p2 ∈ Proc are weakly bisimilar (p1 ≈ p2) if andonly if there exists a weak bisimulation R such that (p1, p2) ∈ R.
≈ =⋃{R | R is a weak bisimulation}
Jorge A. Perez (Groningen) An Introduction to Process Calculi 49 / 80
![Page 95: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/95.jpg)
Introduction CCS The π-calculus
Weak Bisimilarity
Let (Proc,Act , { a−→| a ∈ Act}) be an LTS such that τ ∈ Act .
Weak Bisimulation
A binary relation R ⊆ Proc × Proc is a weak bisimulation iffwhenever (s, t) ∈ R then for each a ∈ Act (including τ):
• if sa−→ s′ then t
a=⇒ t′ for some t′ such that (s′, t′) ∈ R
• if ta−→ t′ then s
a=⇒ s′ for some s′ such that (s′, t′) ∈ R.
Weak Bisimilarity
Two processes p1, p2 ∈ Proc are weakly bisimilar (p1 ≈ p2) if andonly if there exists a weak bisimulation R such that (p1, p2) ∈ R.
≈ =⋃{R | R is a weak bisimulation}
Jorge A. Perez (Groningen) An Introduction to Process Calculi 49 / 80
![Page 96: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/96.jpg)
Introduction CCS The π-calculus
Weak Bisimilarity – Properties
Properties of ť an equivalence relation
• the largest weak bisimulation
• validates lots of natural laws, e.g.• a.τ.P ≈ a.P• P + τ.P ≈ τ.P• a.(P + τ.Q) ≈ a.(P + τ.Q) + a.Q• P +Q ≈ Q+ P P ||Q ≈ Q ||P P +Nil ≈ P . . .
• strong bisimilarity is included in weak bisimilarity (∼⊆≈)
• abstracts from τ loops
�� ��• a
&&
τ%% ≈ • a
&&• •Jorge A. Perez (Groningen) An Introduction to Process Calculi 50 / 80
![Page 97: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/97.jpg)
Introduction CCS The π-calculus
Is Weak Bisimilarity a Congruence?
Theorem
Let P and Q be CCS processes such that P ≈ Q. Then
• α.P ≈ α.Q for each action α ∈ Act
• P |R ≈ Q |R and R | P ≈ R |Q for each CCS process R
• (νa)P ≈ (νa)Q for each set of labels L.
What about choice?
τ.a.Nil ≈ a.Nil but τ.a.Nil + b.Nil 6≈ a.Nil + b.Nil
Conclusion
Weak bisimilarity is not a congruence for CCS.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 51 / 80
![Page 98: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/98.jpg)
Introduction CCS The π-calculus
Is Weak Bisimilarity a Congruence?
Theorem
Let P and Q be CCS processes such that P ≈ Q. Then
• α.P ≈ α.Q for each action α ∈ Act
• P |R ≈ Q |R and R | P ≈ R |Q for each CCS process R
• (νa)P ≈ (νa)Q for each set of labels L.
What about choice?
τ.a.Nil ≈ a.Nil but τ.a.Nil + b.Nil 6≈ a.Nil + b.Nil
Conclusion
Weak bisimilarity is not a congruence for CCS.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 51 / 80
![Page 99: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/99.jpg)
Introduction CCS The π-calculus
Is Weak Bisimilarity a Congruence?
Theorem
Let P and Q be CCS processes such that P ≈ Q. Then
• α.P ≈ α.Q for each action α ∈ Act
• P |R ≈ Q |R and R | P ≈ R |Q for each CCS process R
• (νa)P ≈ (νa)Q for each set of labels L.
What about choice?
τ.a.Nil ≈ a.Nil but τ.a.Nil + b.Nil 6≈ a.Nil + b.Nil
Conclusion
Weak bisimilarity is not a congruence for CCS.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 51 / 80
![Page 100: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/100.jpg)
Introduction CCS The π-calculus
Outline
Introduction
CCSIntroduction to CCSSyntax of CCSSemantics of CCSValue Passing CCSSemantic EquivalencesStrong BisimilarityWeak Bisimilarity
The π-calculusInformal IntroductionThe π-calculus, formally
Jorge A. Perez (Groningen) An Introduction to Process Calculi 52 / 80
![Page 101: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/101.jpg)
Introduction CCS The π-calculus
A Calculus of Mobile Processes
Arguably, the π-calculus is the paradigmatic concurrent calculus
• Proposed by Milner, Parrow, and Walker in 1992.Developed significantly by Sangiorgi.
Interactive systems with dynamic connectivity (topology).A dual role:
• A model of networked computation:Exchanged messages which contain links referring tocommunication channels themselves
• A basic model of computation:Interaction as the primitive notion of concurrent computing(Just as the λ-calculus for functional computing)
Jorge A. Perez (Groningen) An Introduction to Process Calculi 53 / 80
![Page 102: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/102.jpg)
Introduction CCS The π-calculus
The π-calculus, in This Talk
• The theory of the π-calculus is richer than that of CCS.In some aspects, however, it is also more involved.
• We will overview this theory, contrasting it with CCS
• Hence, we present the π-calculus without going too much intotechnical details
Jorge A. Perez (Groningen) An Introduction to Process Calculi 54 / 80
![Page 103: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/103.jpg)
Introduction CCS The π-calculus
Mobility as dynamic connectivity (1)
Towards the meaning of ‘mobility’:
• What kind of entity moves? In what space does it move?
Many possibilities—the two most relevant are:
1 Processes move, in the virtual space of linked processes
2 Links move, in the virtual space of linked processes
Observe that
• A process’ location is given by the links it has to other processes(think of your contacts in your mobile phone)
• Hence, the movement of a process can be represented by themovement of its links
Jorge A. Perez (Groningen) An Introduction to Process Calculi 55 / 80
![Page 104: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/104.jpg)
Introduction CCS The π-calculus
Mobility as dynamic connectivity (1)
Towards the meaning of ‘mobility’:
• What kind of entity moves? In what space does it move?
Many possibilities—the two most relevant are:
1 Processes move, in the virtual space of linked processes
2 Links move, in the virtual space of linked processes
Observe that
• A process’ location is given by the links it has to other processes(think of your contacts in your mobile phone)
• Hence, the movement of a process can be represented by themovement of its links
Jorge A. Perez (Groningen) An Introduction to Process Calculi 55 / 80
![Page 105: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/105.jpg)
Introduction CCS The π-calculus
Mobility as dynamic connectivity (2)
1 Processes move, in the virtual space of linked processes
2 Links move, in the virtual space of linked processes
The π-calculus commits to mobility in the sense of (2)...
• Economy, flexibility, and simplicity (at least wrt CCS)
...while models of higher-order concurrency stick to (1):
• Inspired in the λ-calculus
• It might be difficult/inconvenient to “normalize” all concurrencyphenomena in the sense of (2)
We will argue that (1) and (2) need not be mutually exclusive
Jorge A. Perez (Groningen) An Introduction to Process Calculi 56 / 80
![Page 106: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/106.jpg)
Introduction CCS The π-calculus
Mobility as dynamic connectivity (2)
1 Processes move, in the virtual space of linked processes
2 Links move, in the virtual space of linked processes
The π-calculus commits to mobility in the sense of (2)...
• Economy, flexibility, and simplicity (at least wrt CCS)
...while models of higher-order concurrency stick to (1):
• Inspired in the λ-calculus
• It might be difficult/inconvenient to “normalize” all concurrencyphenomena in the sense of (2)
We will argue that (1) and (2) need not be mutually exclusive
Jorge A. Perez (Groningen) An Introduction to Process Calculi 56 / 80
![Page 107: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/107.jpg)
Introduction CCS The π-calculus
Mobility as dynamic connectivity (2)
1 Processes move, in the virtual space of linked processes
2 Links move, in the virtual space of linked processes
The π-calculus commits to mobility in the sense of (2)...
• Economy, flexibility, and simplicity (at least wrt CCS)
...while models of higher-order concurrency stick to (1):
• Inspired in the λ-calculus
• It might be difficult/inconvenient to “normalize” all concurrencyphenomena in the sense of (2)
We will argue that (1) and (2) need not be mutually exclusive
Jorge A. Perez (Groningen) An Introduction to Process Calculi 56 / 80
![Page 108: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/108.jpg)
Introduction CCS The π-calculus
Dynamic connectivity in CCS is limited (1)
What’s the main difference of the π-calculus wrt CCS?Dynamic connectivity.
Suppose a CCS process Sdef= (νc)(A || C) || B.
Name a is free in A, while b is free in B. Graphically:
(1)
Jorge A. Perez (Groningen) An Introduction to Process Calculi 57 / 80
![Page 109: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/109.jpg)
Introduction CCS The π-calculus
Dynamic connectivity in CCS is limited (1)
What’s the main difference of the π-calculus wrt CCS?Dynamic connectivity.
Suppose a CCS process Sdef= (νc)(A || C) || B.
Name a is free in A, while b is free in B. Graphically:
(1)
Jorge A. Perez (Groningen) An Introduction to Process Calculi 57 / 80
![Page 110: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/110.jpg)
Introduction CCS The π-calculus
Dynamic connectivity in CCS is limited (2)
Suppose a CCS process Sdef= (νc)(A || C) || B.
Name a is free in A, while b is free in B.
Suppose now that Adef= a.(νd)(A || A′) + c.A′′. Graphically:
(2)
Jorge A. Perez (Groningen) An Introduction to Process Calculi 58 / 80
![Page 111: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/111.jpg)
Introduction CCS The π-calculus
Dynamic connectivity in CCS is limited (3)
Suppose a CCS process Sdef= (νx)(A || C) || B.
Name a is free in A, while b is free in B.
Suppose now that Adef= a.(νd)(A || A′) + c.A′′.
Finally, suppose that A′ = c.0. Process A′ then dies. Graphically:
(3)
Jorge A. Perez (Groningen) An Introduction to Process Calculi 59 / 80
![Page 112: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/112.jpg)
Introduction CCS The π-calculus
Dynamic connectivity in CCS is limited (4)
In CCS, links can proliferate and die:
Jorge A. Perez (Groningen) An Introduction to Process Calculi 60 / 80
![Page 113: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/113.jpg)
Introduction CCS The π-calculus
Dynamic connectivity in CCS is limited (5)
However, new links between existing processes cannot be created.A transition such as
→
is not possible in CCS.
Dynamic connectivity refers precisely to this kind of transitions.The π-calculus goes beyond CCS by allowing dynamiccommunication topologies.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 61 / 80
![Page 114: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/114.jpg)
Introduction CCS The π-calculus
Dynamic connectivity in CCS is limited (5)
However, new links between existing processes cannot be created.A transition such as
→
is not possible in CCS.
Dynamic connectivity refers precisely to this kind of transitions.The π-calculus goes beyond CCS by allowing dynamiccommunication topologies.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 61 / 80
![Page 115: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/115.jpg)
Introduction CCS The π-calculus
Mobile phones and cars (1)
A simple (yet probably outdated) application of mobility.
• Vehicles on the move; each connected to a transmitter T• Transmitters have fixed connections to a central control• A vehicle can be switched to another transmitter• Virtual movement of links between cars and transmitters
Before:
Jorge A. Perez (Groningen) An Introduction to Process Calculi 62 / 80
![Page 116: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/116.jpg)
Introduction CCS The π-calculus
Mobile phones and cars (1)
A simple (yet probably outdated) application of mobility.
• Vehicles on the move; each connected to a transmitter T• Transmitters have fixed connections to a central control• A vehicle can be switched to another transmitter• Virtual movement of links between cars and transmitters
Before:
Jorge A. Perez (Groningen) An Introduction to Process Calculi 62 / 80
![Page 117: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/117.jpg)
Introduction CCS The π-calculus
Mobile phones and cars (2)
A simple (yet probably outdated) application of mobility.
• Vehicles on the move; each connected to a transmitter T• Transmitters have fixed connections to a central control• A vehicle can be switched to another transmitter• Virtual movement of links between cars and transmitters
After:
Jorge A. Perez (Groningen) An Introduction to Process Calculi 63 / 80
![Page 118: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/118.jpg)
Introduction CCS The π-calculus
Mobile phones and cars (3)
The handover protocol in the π-calculus, schematically:
→
Jorge A. Perez (Groningen) An Introduction to Process Calculi 64 / 80
![Page 119: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/119.jpg)
Introduction CCS The π-calculus
Mobile phones and cars (4)
Main novelty: Communications may transmit names as messages
Trans〈t, s, g, l〉 def= t.T rans〈t, s, g, l〉 + l(t, s).s〈t, s〉.Idtrans〈g, l〉
Idtrans〈g, l〉 def= g(t, s).T rans〈t, s, g, l〉
Jorge A. Perez (Groningen) An Introduction to Process Calculi 65 / 80
![Page 120: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/120.jpg)
Introduction CCS The π-calculus
Mobile phones and cars (5)
Control issues a new pair of links to be communicated to Car:
Control1def= l1〈t2, s2〉.g2〈t2, s2〉.Control2
Control2def= l2〈t1, s1〉.g1〈t1, s1〉.Control1
Car can either talk or switch to another transmitter (if requested):
Car〈t, s〉 def= t.Car〈t, s〉+ s(t, s).Car〈t, s〉
Jorge A. Perez (Groningen) An Introduction to Process Calculi 66 / 80
![Page 121: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/121.jpg)
Introduction CCS The π-calculus
Mobile phones and cars (6)
The system is the restricted composition of the previous processes:
System1def= (νt1, s1, g1, l1, t2, s2, g2, l2)
(Car〈t1, s1〉 || Trans1 || Idtrans2 || Control1)where we have use the abbreviations (i = 1, 2)
Transidef= Trans〈ti, si, gi, li〉 Idtransi
def= Idtrans〈gi, li〉
Jorge A. Perez (Groningen) An Introduction to Process Calculi 67 / 80
![Page 122: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/122.jpg)
Introduction CCS The π-calculus
Mobile phones and cars (7)
The semantics of the π-calculus will allows to infer that System1
evolves to System2 where
System2def= (νt1, s1, g1, l1, t2, s2, g2, l2)
(Car〈t2, s2〉 || Trans2 || Idtrans1 || Control2)
(The process obtained from System1 by exchanging the indexes.)
Jorge A. Perez (Groningen) An Introduction to Process Calculi 68 / 80
![Page 123: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/123.jpg)
Introduction CCS The π-calculus
The π-calculus, more formally
We now formally introduce the π-calculus. Some highlights:
• The major novelty is name communication
• Dynamic connectivity formalized as scope extrusion
• A structural congruence relation
Jorge A. Perez (Groningen) An Introduction to Process Calculi 69 / 80
![Page 124: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/124.jpg)
Introduction CCS The π-calculus
The π-calculus, more formally
We use x, y, z, . . . to range over N , an infinite set of names.
The action prefixes of the π-calculus generalize the actions of CCS:
α ::= x〈y〉 send name y along xx(y) receive a name along xτ unobservable action
Brackets in x〈y〉 represent a tuple of values.
• Above, monadic communication: exactly one name is sent.
• In polyadic communication more than one value may be sent.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 70 / 80
![Page 125: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/125.jpg)
Introduction CCS The π-calculus
Process expressions of the π-calculus
P,Q ::= 0 Inactive process
| α.P Prefix
| P + P Sum
| P ||Q Parallel composition
| (νy)P Name Restriction
| A〈y1, . . . , yn〉 Identifier
We assume each identifier A is equipped with a recursive definition
A(x1, . . . , xn)def= P , where i 6= j implies xi 6= xj.
• Restriction and input actions are name binders:In (νy)P and x(y).P name y is bound with scope P .
• In contrast, in x〈y〉 name y is free.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 71 / 80
![Page 126: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/126.jpg)
Introduction CCS The π-calculus
Structural Congruence
A few intuitions:
• The syntax of processes is too concrete: syntactically differentthings that represent the same behavior. Examples:
a(x).b〈x〉 and a(y).b〈y〉P ||Q and Q ||P
[We often omit trailing 0s, and write b〈y〉 instead of b〈y〉.0.]
• Structural congruence identifies processes which are “obviouslythe same” based on their structure
• In this sense, structural congruence will be stronger (that is, willequate less process) than any behavioral equivalence.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 72 / 80
![Page 127: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/127.jpg)
Introduction CCS The π-calculus
Structural Congruence, ≡
P and Q structurally congruent, written P ≡ Q, if we cantransform one into the other by using the following equations:
1 α-conversion: change of bound names2 Laws for parallel composition:
P || 0 ≡ P
P || Q ≡ Q || PP || (Q || R) ≡ (P || Q) || R
3 Law for recursive definitions: A〈y〉 ≡ P{y/x} if A(x)def= P
4 Laws for restriction:(νx)(P || Q) ≡ P || (νx)Q if x 6∈ fn(P )
(νx)0 ≡ 0
(νx)(P +Q) ≡ P + (νx)Q if x 6∈ fn(P )
(νx)(νy)P ≡ (νy)(νx)PJorge A. Perez (Groningen) An Introduction to Process Calculi 73 / 80
![Page 128: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/128.jpg)
Introduction CCS The π-calculus
Scope Extrusion (1)
A process P || Q || R.Name x is free in P and Q, while z is free in Q and R:
Jorge A. Perez (Groningen) An Introduction to Process Calculi 74 / 80
![Page 129: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/129.jpg)
Introduction CCS The π-calculus
Scope Extrusion (2)
Suppose that z is restricted to P and R, while x is free in P and Q.That is, we have the process (νz)(P || R) || Q:
What happens if P wishes to send z to Q?
Jorge A. Perez (Groningen) An Introduction to Process Calculi 75 / 80
![Page 130: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/130.jpg)
Introduction CCS The π-calculus
Scope Extrusion (3)
Suppose P = x〈z〉.P ′, with z 6∈ fn(P ′).Suppose also Q = x(y).Q′, with z 6∈ fn(Q′).
where Q′′ = Q′{z/y}. We have graphically described the reduction
(νz)(P || R) || Q −→ P ′ || (νz)(R || Q′′)
The above describes a movement of a way of accessing R (ratherthan a movement of R).
Jorge A. Perez (Groningen) An Introduction to Process Calculi 76 / 80
![Page 131: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/131.jpg)
Introduction CCS The π-calculus
Some Simple Examples
We present some simple examples of scope extrusion.We exploit three (informal) postulates for this:
1 A law for inferring interactions:
a(x).P || a〈b〉.Q τ−→ P{b/x} ||Q
2 Restrictions respect silent transitions:
Pτ−→ Q implies (νx)P
τ−→ (νx)Q
3 Structurally congruent processes should have the samebehavior.
Jorge A. Perez (Groningen) An Introduction to Process Calculi 77 / 80
![Page 132: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/132.jpg)
Introduction CCS The π-calculus
A Simple Example
We use str. congruence to infer an interaction for the process
a(x).c〈x〉 || (νb)a〈b〉
Since b /∈ fn(a(x).c〈x〉), we have
a(x).c〈x〉 || (νb)a〈b〉 ≡ (νb)(a(x).c〈x〉 || a〈b〉)We can infer that
(νb)(a(x).c〈x〉 || a〈b〉) τ−→ (νb)(c〈b〉 ||0)because a(x).c〈x〉 || a〈b〉 τ−→ c〈b〉 ||0 is a valid interaction.
Removing 0, in general we have, for any b /∈ fn(P ):a(x).P || (νb)a〈b〉.Q τ−→ (νb)(P ||Q{b/x})
and the scope of b has moved from the right to the left.Jorge A. Perez (Groningen) An Introduction to Process Calculi 78 / 80
![Page 133: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/133.jpg)
Introduction CCS The π-calculus
A Simple Example
We use str. congruence to infer an interaction for the process
a(x).c〈x〉 || (νb)a〈b〉
Since b /∈ fn(a(x).c〈x〉), we have
a(x).c〈x〉 || (νb)a〈b〉 ≡ (νb)(a(x).c〈x〉 || a〈b〉)We can infer that
(νb)(a(x).c〈x〉 || a〈b〉) τ−→ (νb)(c〈b〉 ||0)because a(x).c〈x〉 || a〈b〉 τ−→ c〈b〉 ||0 is a valid interaction.
Removing 0, in general we have, for any b /∈ fn(P ):a(x).P || (νb)a〈b〉.Q τ−→ (νb)(P ||Q{b/x})
and the scope of b has moved from the right to the left.Jorge A. Perez (Groningen) An Introduction to Process Calculi 78 / 80
![Page 134: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/134.jpg)
Introduction CCS The π-calculus
A Simple Example
We use str. congruence to infer an interaction for the process
a(x).c〈x〉 || (νb)a〈b〉
Since b /∈ fn(a(x).c〈x〉), we have
a(x).c〈x〉 || (νb)a〈b〉 ≡ (νb)(a(x).c〈x〉 || a〈b〉)We can infer that
(νb)(a(x).c〈x〉 || a〈b〉) τ−→ (νb)(c〈b〉 ||0)because a(x).c〈x〉 || a〈b〉 τ−→ c〈b〉 ||0 is a valid interaction.
Removing 0, in general we have, for any b /∈ fn(P ):a(x).P || (νb)a〈b〉.Q τ−→ (νb)(P ||Q{b/x})
and the scope of b has moved from the right to the left.Jorge A. Perez (Groningen) An Introduction to Process Calculi 78 / 80
![Page 135: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/135.jpg)
Introduction CCS The π-calculus
Another Example
Consider the process:
P = (νz)((x〈y〉+ z(w).w〈y〉) || x(u).u〈v〉 || x〈z〉)Observe: fn(P ) = {x, v, y}, bn(P ) = {z, w, u}. Two possibilities:
1 Interaction among the first and second components:
Pτ−→ (νz)(0 || u〈v〉{y/u} || x〈z〉)= (νz)(0 || y〈v〉 || x〈z〉) = P1
P{y/u} is the process P in which the free occurrences ofname u have been substituted with y.
2 Interaction among the second and third components:
Pτ−→ (νz)((x〈y〉+ z(w).w〈y〉) || u〈v〉{z/u} || 0)= (νz)((x〈y〉+ z(w).w〈y〉) || z〈v〉 || 0) = P2
While P1 6τ−→, we do have P2
τ−→ (νz)(z〈y〉 || 0 || 0) ≡ (νz)z〈y〉Jorge A. Perez (Groningen) An Introduction to Process Calculi 79 / 80
![Page 136: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/136.jpg)
Introduction CCS The π-calculus
Another Example
Consider the process:
P = (νz)((x〈y〉+ z(w).w〈y〉) || x(u).u〈v〉 || x〈z〉)Observe: fn(P ) = {x, v, y}, bn(P ) = {z, w, u}. Two possibilities:
1 Interaction among the first and second components:
Pτ−→ (νz)(0 || u〈v〉{y/u} || x〈z〉)= (νz)(0 || y〈v〉 || x〈z〉) = P1
P{y/u} is the process P in which the free occurrences ofname u have been substituted with y.
2 Interaction among the second and third components:
Pτ−→ (νz)((x〈y〉+ z(w).w〈y〉) || u〈v〉{z/u} || 0)= (νz)((x〈y〉+ z(w).w〈y〉) || z〈v〉 || 0) = P2
While P1 6τ−→, we do have P2
τ−→ (νz)(z〈y〉 || 0 || 0) ≡ (νz)z〈y〉Jorge A. Perez (Groningen) An Introduction to Process Calculi 79 / 80
![Page 137: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/137.jpg)
Introduction CCS The π-calculus
Another Example
Consider the process:
P = (νz)((x〈y〉+ z(w).w〈y〉) || x(u).u〈v〉 || x〈z〉)Observe: fn(P ) = {x, v, y}, bn(P ) = {z, w, u}. Two possibilities:
1 Interaction among the first and second components:
Pτ−→ (νz)(0 || u〈v〉{y/u} || x〈z〉)= (νz)(0 || y〈v〉 || x〈z〉) = P1
P{y/u} is the process P in which the free occurrences ofname u have been substituted with y.
2 Interaction among the second and third components:
Pτ−→ (νz)((x〈y〉+ z(w).w〈y〉) || u〈v〉{z/u} || 0)= (νz)((x〈y〉+ z(w).w〈y〉) || z〈v〉 || 0) = P2
While P1 6τ−→, we do have P2
τ−→ (νz)(z〈y〉 || 0 || 0) ≡ (νz)z〈y〉Jorge A. Perez (Groningen) An Introduction to Process Calculi 79 / 80
![Page 138: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/138.jpg)
Introduction CCS The π-calculus
Another Example
Consider the process:
P = (νz)((x〈y〉+ z(w).w〈y〉) || x(u).u〈v〉 || x〈z〉)Observe: fn(P ) = {x, v, y}, bn(P ) = {z, w, u}. Two possibilities:
1 Interaction among the first and second components:
Pτ−→ (νz)(0 || u〈v〉{y/u} || x〈z〉)= (νz)(0 || y〈v〉 || x〈z〉) = P1
P{y/u} is the process P in which the free occurrences ofname u have been substituted with y.
2 Interaction among the second and third components:
Pτ−→ (νz)((x〈y〉+ z(w).w〈y〉) || u〈v〉{z/u} || 0)= (νz)((x〈y〉+ z(w).w〈y〉) || z〈v〉 || 0) = P2
While P1 6τ−→, we do have P2
τ−→ (νz)(z〈y〉 || 0 || 0) ≡ (νz)z〈y〉Jorge A. Perez (Groningen) An Introduction to Process Calculi 79 / 80
![Page 139: Process Calculi - A Brief, Gentle Introductionayala/EVENTS/JorgeAPerezCalculi.pdf · Informal Introduction The ˇ-calculus, formally Jorge A. P erez (Groningen) An Introduction to](https://reader034.fdocument.pub/reader034/viewer/2022042802/5f40b33df487f223522bd7c6/html5/thumbnails/139.jpg)
Process CalculiA Brief, Gentle Introduction
Jorge A. Perez
University of BrasiliaJuly 20, 2015