Modelling, Specification and Verification of Reactive Systems - - PowerPoint PPT Presentation

modelling specification and verification of reactive
SMART_READER_LITE
LIVE PREVIEW

Modelling, Specification and Verification of Reactive Systems - - PowerPoint PPT Presentation

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Modelling, Specification and Verification of Reactive Systems Milners Calculus of Communicating Systems (CCS) Plan for this part of the course: Informal introduction to


slide-1
SLIDE 1

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS

Modelling, Specification and Verification of Reactive Systems

Milner’s Calculus of Communicating Systems (CCS) Plan for this part of the course: Informal introduction to CCS Syntax of CCS Semantics of CCS

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-2
SLIDE 2

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Calculus of Communicating Systems Process Algebra CCS Intuitively Parallelism and Renaming

How to Describe LTSes?

Syntax unknown entity − → Semantics known entity programming language − → what (denotational) or how (operational) it computes ??? − → Labelled Transition Systems CCS (Milner 1980)

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-3
SLIDE 3

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Calculus of Communicating Systems Process Algebra CCS Intuitively Parallelism and Renaming

How to Describe LTSes?

Syntax unknown entity − → Semantics known entity programming language − → what (denotational) or how (operational) it computes ??? − → Labelled Transition Systems CCS (Milner 1980)

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-4
SLIDE 4

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Calculus of Communicating Systems Process Algebra CCS Intuitively Parallelism and Renaming

How to Describe LTSes?

Syntax unknown entity − → Semantics known entity programming language − → what (denotational) or how (operational) it computes ??? − → Labelled Transition Systems CCS (Milner 1980)

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-5
SLIDE 5

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Calculus of Communicating Systems Process Algebra CCS Intuitively Parallelism and Renaming

How to Describe LTSes?

Syntax unknown entity − → Semantics known entity programming language − → what (denotational) or how (operational) it computes ??? − → Labelled Transition Systems CCS (Milner 1980)

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-6
SLIDE 6

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Calculus of Communicating Systems Process Algebra CCS Intuitively Parallelism and Renaming

Calculus of Communicating Systems

CCS Process algebra called “Calculus of Communicating Systems”. Insight of Robin Milner (1980, developed from earlier work) Concurrent (parallel) processes have an algebraic structure. P1 op P2 ⇒ P1 op P2

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-7
SLIDE 7

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Calculus of Communicating Systems Process Algebra CCS Intuitively 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.

slide-8
SLIDE 8

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Calculus of Communicating Systems Process Algebra CCS Intuitively 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.

slide-9
SLIDE 9

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Calculus of Communicating Systems Process Algebra CCS Intuitively Parallelism and Renaming

A CCS Process: Black-Box View

What is a CCS Process to its Environment? A CCS process is a computing agent that may communicate with its environment via its interface. Interface = Collection of communication ports/channels, together with an indication of whether they are used for input or output. Example: A Computer Scientist Process interface: coffee (input port) coin, pub (output ports) Question: How do we describe the behaviour of the “black-box”?

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-10
SLIDE 10

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Calculus of Communicating Systems Process Algebra CCS Intuitively Parallelism and Renaming

A CCS Process: Black-Box View

What is a CCS Process to its Environment? A CCS process is a computing agent that may communicate with its environment via its interface. Interface = Collection of communication ports/channels, together with an indication of whether they are used for input or output. Example: A Computer Scientist Process interface: coffee (input port) coin, pub (output ports) Question: How do we describe the behaviour of the “black-box”?

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-11
SLIDE 11

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Calculus of Communicating Systems Process Algebra CCS Intuitively Parallelism and Renaming

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 described (up to isomorphism) by using the

  • perations above.

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-12
SLIDE 12

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Calculus of Communicating Systems Process Algebra CCS Intuitively Parallelism and Renaming

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 described (up to isomorphism) by using the

  • perations above.

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-13
SLIDE 13

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Calculus of Communicating Systems Process Algebra CCS Intuitively Parallelism and Renaming

CCS Basics (Parallelism and Renaming)

parallel composition (|) (synchronous communication between two components = handshake synchronization) restriction (P L) relabelling (P[f ])

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-14
SLIDE 14

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Calculus of Communicating Systems Process Algebra CCS Intuitively Parallelism and Renaming

CCS Basics (Parallelism and Renaming)

parallel composition (|) (synchronous communication between two components = handshake synchronization) restriction (P L) relabelling (P[f ])

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-15
SLIDE 15

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Calculus of Communicating Systems Process Algebra CCS Intuitively Parallelism and Renaming

CCS Basics (Parallelism and Renaming)

parallel composition (|) (synchronous communication between two components = handshake synchronization) restriction (P L) relabelling (P[f ])

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-16
SLIDE 16

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Notation CCS Process Expressions CCS Defining Equations

Definition of CCS (channels, actions, process names)

Let A be a set of channel names (e.g. tea, coffee are channel names) L = A ∪ A be a set of labels where

A = {a | a ∈ A} (elements of A are called names and those of 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).

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-17
SLIDE 17

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Notation CCS Process Expressions CCS Defining Equations

Definition of CCS (channels, actions, process names)

Let A be a set of channel names (e.g. tea, coffee are channel names) L = A ∪ A be a set of labels where

A = {a | a ∈ A} (elements of A are called names and those of 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).

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-18
SLIDE 18

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Notation CCS Process Expressions CCS Defining Equations

Definition of CCS (channels, actions, process names)

Let A be a set of channel names (e.g. tea, coffee are channel names) L = A ∪ A be a set of labels where

A = {a | a ∈ A} (elements of A are called names and those of 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).

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-19
SLIDE 19

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Notation CCS Process Expressions CCS Defining Equations

Definition of CCS (channels, actions, process names)

Let A be a set of channel names (e.g. tea, coffee are channel names) L = A ∪ A be a set of labels where

A = {a | a ∈ A} (elements of A are called names and those of 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).

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-20
SLIDE 20

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Notation CCS Process Expressions CCS Defining Equations

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 P L | restriction (L ⊆ 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 the set of CCS process expressions (and is denoted by P). Notation P1 + P2 =

i∈{1,2} Pi

Nil = 0 =

i∈∅ Pi

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-21
SLIDE 21

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Notation CCS Process Expressions CCS Defining Equations

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 P L | restriction (L ⊆ 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 the set of CCS process expressions (and is denoted by P). Notation P1 + P2 =

i∈{1,2} Pi

Nil = 0 =

i∈∅ Pi

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-22
SLIDE 22

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Notation CCS Process Expressions CCS Defining Equations

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 P L | restriction (L ⊆ 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 the set of CCS process expressions (and is denoted by P). Notation P1 + P2 =

i∈{1,2} Pi

Nil = 0 =

i∈∅ Pi

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-23
SLIDE 23

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Notation CCS Process Expressions CCS Defining Equations

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 P L | restriction (L ⊆ 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 the set of CCS process expressions (and is denoted by P). Notation P1 + P2 =

i∈{1,2} Pi

Nil = 0 =

i∈∅ Pi

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-24
SLIDE 24

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Notation CCS Process Expressions CCS Defining Equations

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 P L | restriction (L ⊆ 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 the set of CCS process expressions (and is denoted by P). Notation P1 + P2 =

i∈{1,2} Pi

Nil = 0 =

i∈∅ Pi

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-25
SLIDE 25

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Notation CCS Process Expressions CCS Defining Equations

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 P L | restriction (L ⊆ 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 the set of CCS process expressions (and is denoted by P). Notation P1 + P2 =

i∈{1,2} Pi

Nil = 0 =

i∈∅ Pi

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-26
SLIDE 26

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Notation CCS Process Expressions CCS Defining Equations

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 P L | restriction (L ⊆ 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 the set of CCS process expressions (and is denoted by P). Notation P1 + P2 =

i∈{1,2} Pi

Nil = 0 =

i∈∅ Pi

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-27
SLIDE 27

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Notation CCS Process Expressions CCS Defining Equations

Precedence

Precedence

1 restriction and relabelling (tightest binding) 2 action prefixing 3 parallel composition 4 summation

Example: R + a.P|b.Q L means R +

  • (a.P)|(b.(Q L))
  • .

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-28
SLIDE 28

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Notation CCS Process Expressions CCS Defining Equations

Precedence

Precedence

1 restriction and relabelling (tightest binding) 2 action prefixing 3 parallel composition 4 summation

Example: R + a.P|b.Q L means R +

  • (a.P)|(b.(Q L))
  • .

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-29
SLIDE 29

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Notation CCS Process Expressions CCS Defining Equations

Definition of CCS (defining equations)

CCS program A collection of defining equations of the form K def = P where K ∈ K is a process constant and P ∈ P is a CCS process expression. Only one defining equation per process constant. Recursion is allowed: e.g. A def = a.A | A.

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-30
SLIDE 30

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Motivation SOS Rules for CCS Examples

Semantics of CCS

Syntax CCS (collection of defining equations) − → Semantics LTS (labelled transition systems)

HOW?

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-31
SLIDE 31

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Motivation SOS Rules for CCS Examples

Semantics of CCS

Syntax CCS (collection of defining equations) − → Semantics LTS (labelled transition systems)

HOW?

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-32
SLIDE 32

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Motivation SOS Rules for CCS Examples

Semantics of CCS

Syntax CCS (collection of defining equations) − → Semantics LTS (labelled transition systems)

HOW?

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-33
SLIDE 33

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Motivation SOS Rules for CCS Examples

Structural Operational Semantics for CCS

Structural Operational Semantics (SOS)—G. Plotkin 1981 Small-step operational semantics where the behaviour of a system is inferred using syntax driven rules. Given a collection of CCS defining equations, we define the following 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:

RULE

premises conclusion conditions

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-34
SLIDE 34

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Motivation SOS Rules for CCS Examples

Structural Operational Semantics for CCS

Structural Operational Semantics (SOS)—G. Plotkin 1981 Small-step operational semantics where the behaviour of a system is inferred using syntax driven rules. Given a collection of CCS defining equations, we define the following 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:

RULE

premises conclusion conditions

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-35
SLIDE 35

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Motivation SOS Rules for CCS Examples

SOS rules for CCS (α ∈ Act, a ∈ L)

ACT α.P

α

− → P

SUMj

Pj

α

− → P′

j

  • i∈I Pi

α

− → P′

j

j ∈ I

COM1

P

α

− → P′ P|Q

α

− → P′|Q

COM2

Q

α

− → Q′ P|Q

α

− → P|Q′

COM3 P

a

− → P′ Q

a

− → Q′ P|Q

τ

− → P′|Q′

RES

P

α

− → P′ P L

α

− → P′ L α, α ∈ L

REL

P

α

− → P′ P[f ]

f (α)

− → P′[f ]

CON

P

α

− → P′ K

α

− → P′ K def = P

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-36
SLIDE 36

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Motivation SOS Rules for CCS Examples

Deriving Transitions in CCS

Let A def = a.A. Then

  • (A | a.Nil) | b.Nil
  • [c/a]

c

− →

  • (A | a.Nil) | b.Nil
  • [c/a].

Why?

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-37
SLIDE 37

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Motivation SOS Rules for CCS Examples

Deriving Transitions in CCS

Let A def = a.A. Then

  • (A | a.Nil) | b.Nil
  • [c/a]

c

− →

  • (A | a.Nil) | b.Nil
  • [c/a].

Why?

REL

(A | a.Nil) | b.Nil

  • [c/a]

c

− →

  • (A | a.Nil) | b.Nil
  • [c/a]

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-38
SLIDE 38

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Motivation SOS Rules for CCS Examples

Deriving Transitions in CCS

Let A def = a.A. Then

  • (A | a.Nil) | b.Nil
  • [c/a]

c

− →

  • (A | a.Nil) | b.Nil
  • [c/a].

Why?

REL COM1

(A | a.Nil) | b.Nil

a

− → (A | a.Nil) | b.Nil

  • (A | a.Nil) | b.Nil
  • [c/a]

c

− →

  • (A | a.Nil) | b.Nil
  • [c/a]

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-39
SLIDE 39

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Motivation SOS Rules for CCS Examples

Deriving Transitions in CCS

Let A def = a.A. Then

  • (A | a.Nil) | b.Nil
  • [c/a]

c

− →

  • (A | a.Nil) | b.Nil
  • [c/a].

Why?

REL COM1 COM1

A | a.Nil

a

− → A | a.Nil (A | a.Nil) | b.Nil

a

− → (A | a.Nil) | b.Nil

  • (A | a.Nil) | b.Nil
  • [c/a]

c

− →

  • (A | a.Nil) | b.Nil
  • [c/a]

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-40
SLIDE 40

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Motivation SOS Rules for CCS Examples

Deriving Transitions in CCS

Let A def = a.A. Then

  • (A | a.Nil) | b.Nil
  • [c/a]

c

− →

  • (A | a.Nil) | b.Nil
  • [c/a].

Why?

REL COM1 COM1 CON

A

a

− → A

A

def

= a.A

A | a.Nil

a

− → A | a.Nil (A | a.Nil) | b.Nil

a

− → (A | a.Nil) | b.Nil

  • (A | a.Nil) | b.Nil
  • [c/a]

c

− →

  • (A | a.Nil) | b.Nil
  • [c/a]

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-41
SLIDE 41

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Motivation SOS Rules for CCS Examples

Deriving Transitions in CCS

Let A def = a.A. Then

  • (A | a.Nil) | b.Nil
  • [c/a]

c

− →

  • (A | a.Nil) | b.Nil
  • [c/a].

Why?

REL COM1 COM1 CON ACT

a.A

a

− → A A

a

− → A

A

def

= a.A

A | a.Nil

a

− → A | a.Nil (A | a.Nil) | b.Nil

a

− → (A | a.Nil) | b.Nil

  • (A | a.Nil) | b.Nil
  • [c/a]

c

− →

  • (A | a.Nil) | b.Nil
  • [c/a]

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-42
SLIDE 42

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Motivation SOS Rules for CCS Examples

LTS of the Process a.Nil | a.Nil

a.Nil | a.Nil

a

  • a
  • τ
  • Nil | a.Nil

a

  • a.Nil | Nil

a

  • Nil | Nil

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-43
SLIDE 43

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Intuition Translation to standard CCS Turing Power

Value Passing CCS

Main Idea Handshake synchronization is extended with the possibility to exchange data (e.g., integers). pay(6).Nil | pay(x).save(x/2).Nil

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-44
SLIDE 44

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Intuition Translation to standard CCS Turing Power

Value Passing CCS

Main Idea Handshake synchronization is extended with the possibility to exchange data (e.g., integers). pay(6).Nil | pay(x).save(x/2).Nil ↓ τ Nil | save(3).Nil

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-45
SLIDE 45

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Intuition Translation to standard CCS Turing Power

Value Passing CCS

Main Idea Handshake synchronization is extended with the possibility to exchange data (e.g., integers). pay(6).Nil | pay(x).save(x/2).Nil ↓ τ Nil | save(3).Nil Parametrized Process Constants For example: Bank(total) def = save(x).Bank(total + x).

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-46
SLIDE 46

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Intuition Translation to standard CCS Turing Power

Value Passing CCS

Main Idea Handshake synchronization is extended with the possibility to exchange data (e.g., integers). pay(6).Nil | pay(x).save(x/2).Nil | Bank(100) ↓ τ Nil | save(3).Nil | Bank(100) Parametrized Process Constants For example: Bank(total) def = save(x).Bank(total + x).

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-47
SLIDE 47

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Intuition Translation to standard CCS Turing Power

Value Passing CCS

Main Idea Handshake synchronization is extended with the possibility to exchange data (e.g., integers). 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).

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-48
SLIDE 48

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Intuition Translation to standard CCS Turing Power

Translation of Value Passing CCS to Standard CCS

Value Passing CCS C def = in(x).C ′(x) C ′(x) def = out(x).C − → Standard CCS C def =

  • i∈N

in(i).C ′

i

C ′

i def

= out(i).C · · · C

in(x)

  • C ′(x)
  • ut(x)
  • C ′

i

  • ut(i)

C

in(1)

  • in(2)
  • in(i)
  • C ′

2

  • ut(2)
  • C ′

1

  • ut(1)
  • symbolic LTS

infinite LTS

Milner’s Calculus of Communicating Systems (CCS) Reactive Systems: Mod., Spec. and Ver.

slide-49
SLIDE 49

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Intuition Translation to standard CCS Turing Power

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 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.

slide-50
SLIDE 50

Introduction to CCS Syntax of CCS Semantics of CCS Value Passing CCS Intuition Translation to standard CCS Turing Power

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 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.