actions
a port name:
a
‾
\overline{a}
a
output on port a:
a
‾
\overline{a}
a
Inaction, prefixing and recursive definitions
no action: process 0
action prefixing: a.0. If P is a process and a is a label, then a.P is a proces.
recursive definitions: Clock
=
d
e
f
\overset{def}{=}
=def tick.Clock
Choice
either P or Q: P+Q
If P and Q are processes, then so is P+Q.
Parallel composition
P|Q
P and Q may proceed independently or
communicate via complementary ports
Restriction and relabelling
P is a process and L is a set of port names
P\L, the scope of L is restricted to P, L can only be used for communication within P.
P[f]
example:
CHM
=
d
e
f
\overset{def}{=}
=def coin.
c
h
o
c
‾
\overline{choc}
choc.CHM
VM
=
d
e
f
\overset{def}{=}
=def coin.
i
t
e
m
‾
\overline{item}
item.VM
=> CHM
=
d
e
f
\overset{def}{=}
=def VM[choc/item]
The behaviour of processes
τ
\tau
τ
example:
C
S
1
→
c
o
i
n
‾
C
S
2
,
CS_1 \overset{\overline{coin}}{\rightarrow} CS_2,
CS1→coinCS2,
C
M
→
c
o
i
n
C
M
1
.
CM \overset{coin}{\rightarrow} CM_1.
CM→coinCM1.
Then,
C
M
∣
C
S
1
→
τ
C
M
1
∣
C
S
2
.
CM|CS_1 \overset{\tau}{\rightarrow} CM_1|CS_2.
CM∣CS1→τCM1∣CS2.