Professional Documents
Culture Documents
Modelling, Specification and Verification of Reactive Systems
Modelling, Specification and Verification of Reactive Systems
Syntax of CCS
Semantics of CCS
Value Passing CCS
Syntax −→ Semantics
unknown entity known entity
−→ what (denotational) or
programming language
how (operational) it computes
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS Calculus of Communicating Systems
Syntax of CCS Process Algebra
Semantics of CCS CCS Intuitively
Value Passing CCS Parallelism and Renaming
Syntax −→ Semantics
unknown entity known entity
−→ what (denotational) or
programming language
how (operational) it computes
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS Calculus of Communicating Systems
Syntax of CCS Process Algebra
Semantics of CCS CCS Intuitively
Value Passing CCS Parallelism and Renaming
Syntax −→ Semantics
unknown entity known entity
−→ what (denotational) or
programming language
how (operational) it computes
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS Calculus of Communicating Systems
Syntax of CCS Process Algebra
Semantics of CCS CCS Intuitively
Value Passing CCS Parallelism and Renaming
Syntax −→ Semantics
unknown entity known entity
−→ what (denotational) or
programming language
how (operational) it computes
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS Calculus of Communicating Systems
Syntax of CCS Process Algebra
Semantics of CCS CCS Intuitively
Value Passing CCS Parallelism and Renaming
CCS
Process algebra called “Calculus of Communicating Systems”.
P1 op P2 ⇒ P1 op P2
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS Calculus of Communicating Systems
Syntax of CCS Process Algebra
Semantics of CCS CCS Intuitively
Value Passing CCS Parallelism and Renaming
Process Algebra
Basic Principle
1 Define a few atomic processes (modelling the simplest process
behaviour).
2 Define new composition operations (building more complex
process behaviour from simpler 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 )
Now e.g. (x:=1 | x:=2); x:=x+2; (x:=x-1 | x:=x+5) is a
process.
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS Calculus of Communicating Systems
Syntax of CCS Process Algebra
Semantics of CCS CCS Intuitively
Value Passing CCS Parallelism and Renaming
Process Algebra
Basic Principle
1 Define a few atomic processes (modelling the simplest process
behaviour).
2 Define new composition operations (building more complex
process behaviour from simpler 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 )
Now e.g. (x:=1 | x:=2); x:=x+2; (x:=x-1 | x:=x+5) is a
process.
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS Calculus of Communicating Systems
Syntax of CCS Process Algebra
Semantics of CCS CCS Intuitively
Value Passing CCS Parallelism and Renaming
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS Calculus of Communicating Systems
Syntax of CCS Process Algebra
Semantics of CCS CCS Intuitively
Value Passing CCS Parallelism and Renaming
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS Calculus of Communicating Systems
Syntax of CCS Process Algebra
Semantics of CCS CCS Intuitively
Value Passing CCS Parallelism and Renaming
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS Calculus of Communicating Systems
Syntax of CCS Process Algebra
Semantics of CCS CCS Intuitively
Value Passing CCS Parallelism and Renaming
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS Calculus of Communicating Systems
Syntax of CCS Process Algebra
Semantics of CCS CCS Intuitively
Value Passing CCS Parallelism and Renaming
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS Calculus of Communicating Systems
Syntax of CCS Process Algebra
Semantics of CCS CCS Intuitively
Value Passing CCS Parallelism and Renaming
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS Calculus of Communicating Systems
Syntax of CCS Process Algebra
Semantics of CCS CCS Intuitively
Value Passing CCS Parallelism and Renaming
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Notation
Syntax of CCS
CCS Process Expressions
Semantics of CCS
CCS Defining Equations
Value Passing CCS
The set of all terms generated by the abstract syntax is the set of
CCS process expressions (and is denoted by P).
Notation
P P
P1 + P2 = i∈{1,2} Pi Nil = 0 = i∈∅ Pi
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Notation
Syntax of CCS
CCS Process Expressions
Semantics of CCS
CCS Defining Equations
Value Passing CCS
The set of all terms generated by the abstract syntax is the set of
CCS process expressions (and is denoted by P).
Notation
P P
P1 + P2 = i∈{1,2} Pi Nil = 0 = i∈∅ Pi
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Notation
Syntax of CCS
CCS Process Expressions
Semantics of CCS
CCS Defining Equations
Value Passing CCS
The set of all terms generated by the abstract syntax is the set of
CCS process expressions (and is denoted by P).
Notation
P P
P1 + P2 = i∈{1,2} Pi Nil = 0 = i∈∅ Pi
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Notation
Syntax of CCS
CCS Process Expressions
Semantics of CCS
CCS Defining Equations
Value Passing CCS
The set of all terms generated by the abstract syntax is the set of
CCS process expressions (and is denoted by P).
Notation
P P
P1 + P2 = i∈{1,2} Pi Nil = 0 = i∈∅ Pi
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Notation
Syntax of CCS
CCS Process Expressions
Semantics of CCS
CCS Defining Equations
Value Passing CCS
The set of all terms generated by the abstract syntax is the set of
CCS process expressions (and is denoted by P).
Notation
P P
P1 + P2 = i∈{1,2} Pi Nil = 0 = i∈∅ Pi
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Notation
Syntax of CCS
CCS Process Expressions
Semantics of CCS
CCS Defining Equations
Value Passing CCS
The set of all terms generated by the abstract syntax is the set of
CCS process expressions (and is denoted by P).
Notation
P P
P1 + P2 = i∈{1,2} Pi Nil = 0 = i∈∅ Pi
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Notation
Syntax of CCS
CCS Process Expressions
Semantics of CCS
CCS Defining Equations
Value Passing CCS
The set of all terms generated by the abstract syntax is the set of
CCS process expressions (and is denoted by P).
Notation
P P
P1 + P2 = i∈{1,2} Pi Nil = 0 = i∈∅ Pi
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Notation
Syntax of CCS
CCS Process Expressions
Semantics of CCS
CCS Defining Equations
Value Passing CCS
Precedence
Precedence
1 restriction and relabelling (tightest binding)
2 action prefixing
3 parallel composition
4 summation
Example: R + a.P|b.Q r L means R + (a.P)|(b.(Q r L)) .
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Notation
Syntax of CCS
CCS Process Expressions
Semantics of CCS
CCS Defining Equations
Value Passing CCS
Precedence
Precedence
1 restriction and relabelling (tightest binding)
2 action prefixing
3 parallel composition
4 summation
Example: R + a.P|b.Q r L means R + (a.P)|(b.(Q r L)) .
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Notation
Syntax of CCS
CCS Process Expressions
Semantics of CCS
CCS Defining Equations
Value Passing CCS
CCS program
A collection of defining equations of the form
def
K = P
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Motivation
Syntax of CCS
SOS Rules for CCS
Semantics of CCS
Examples
Value Passing CCS
Semantics of CCS
Syntax Semantics
CCS −→ LTS
(collection of defining equations) (labelled transition systems)
HOW?
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Motivation
Syntax of CCS
SOS Rules for CCS
Semantics of CCS
Examples
Value Passing CCS
Semantics of CCS
Syntax Semantics
CCS −→ LTS
(collection of defining equations) (labelled transition systems)
HOW?
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Motivation
Syntax of CCS
SOS Rules for CCS
Semantics of CCS
Examples
Value Passing CCS
Semantics of CCS
Syntax Semantics
CCS −→ LTS
(collection of defining equations) (labelled transition systems)
HOW?
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Motivation
Syntax of CCS
SOS Rules for CCS
Semantics of CCS
Examples
Value Passing CCS
premises
RULE conditions
conclusion
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Motivation
Syntax of CCS
SOS Rules for CCS
Semantics of CCS
Examples
Value Passing CCS
premises
RULE conditions
conclusion
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Motivation
Syntax of CCS
SOS Rules for CCS
Semantics of CCS
Examples
Value Passing CCS
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Motivation
Syntax of CCS
SOS Rules for CCS
Semantics of CCS
Examples
Value Passing CCS
Why?
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Motivation
Syntax of CCS
SOS Rules for CCS
Semantics of CCS
Examples
Value Passing CCS
Why?
REL c
(A | a.Nil) | b.Nil [c/a] −→ (A | a.Nil) | b.Nil [c/a]
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Motivation
Syntax of CCS
SOS Rules for CCS
Semantics of CCS
Examples
Value Passing CCS
Why?
COM1 a
(A | a.Nil) | b.Nil −→ (A | a.Nil) | b.Nil
REL c
(A | a.Nil) | b.Nil [c/a] −→ (A | a.Nil) | b.Nil [c/a]
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Motivation
Syntax of CCS
SOS Rules for CCS
Semantics of CCS
Examples
Value Passing CCS
Why?
COM1 a
A | a.Nil −→ A | a.Nil
COM1 a
(A | a.Nil) | b.Nil −→ (A | a.Nil) | b.Nil
REL c
(A | a.Nil) | b.Nil [c/a] −→ (A | a.Nil) | b.Nil [c/a]
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Motivation
Syntax of CCS
SOS Rules for CCS
Semantics of CCS
Examples
Value Passing CCS
Why?
def
CON a A = a.A
A −→ A
COM1 a
A | a.Nil −→ A | a.Nil
COM1 a
(A | a.Nil) | b.Nil −→ (A | a.Nil) | b.Nil
REL c
(A | a.Nil) | b.Nil [c/a] −→ (A | a.Nil) | b.Nil [c/a]
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Motivation
Syntax of CCS
SOS Rules for CCS
Semantics of CCS
Examples
Value Passing CCS
Why?
ACT a
a.A −→ A def
CON a A = a.A
A −→ A
COM1 a
A | a.Nil −→ A | a.Nil
COM1 a
(A | a.Nil) | b.Nil −→ (A | a.Nil) | b.Nil
REL c
(A | a.Nil) | b.Nil [c/a] −→ (A | a.Nil) | b.Nil [c/a]
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Motivation
Syntax of CCS
SOS Rules for CCS
Semantics of CCS
Examples
Value Passing CCS
a.Nil | a.Nil
II
uu II
uu II
a uuu IIa
u II
uu II
uuu II
z u $
Nil | a.Nil τ a.Nil | Nil
II
II uu
II uu
IIa a uuu
II u
II uu
II uuu
$ z u
Nil | Nil
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Intuition
Syntax of CCS
Translation to standard CCS
Semantics of CCS
Turing Power
Value Passing CCS
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Intuition
Syntax of CCS
Translation to standard CCS
Semantics of CCS
Turing Power
Value Passing CCS
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Intuition
Syntax of CCS
Translation to standard CCS
Semantics of CCS
Turing Power
Value Passing CCS
Standard CCS
Value Passing CCS
def
X
def −→ C = in(i).Ci0
C = in(x).C 0 (x)
i∈N
0 def
C (x) = out(x).C def
Ci0 = out(i).C
C 0 (x) C10
symbolic LTS infinite LTS
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Intuition
Syntax of CCS
Translation to standard CCS
Semantics of CCS
Turing Power
Value Passing CCS
Fact
CCS can simulate a computation of any Turing machine.
Remark
Hence CCS is as expressive as any other programming language
but its use is to rather describe the behaviour of reactive systems
than to perform specific calculations.
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.
Introduction to CCS
Intuition
Syntax of CCS
Translation to standard CCS
Semantics of CCS
Turing Power
Value Passing CCS
Fact
CCS can simulate a computation of any Turing machine.
Remark
Hence CCS is as expressive as any other programming language
but its use is to rather describe the behaviour of reactive systems
than to perform specific calculations.
Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.