Questions tagged [ccs]

CCS (Calculus of Communicating Systems) is a process calculus, one of the major models of concurrency, intended for modeling communications between two participants

CCS, the Calculus of Communicating Systems, is a model of concurrency that describes interactions between two participants. Its primitives cover synchronization across channels, parallel composition and choice between actions.

Syntax

$$\begin{align*} \alpha ::= &&& \hspace{-1em} \text{action} \\ & a && \text{input on channel \(a\)} \\ & \bar a && \text{output on channel \(a\)} \\ & \tau && \text{internal transition} \\ P ::= &&&\hspace{-1em} \text{process} \\ & M && \text{named process} \\ & 0 && \text{empty process} \\ & \alpha.P_1 && \text{perform action \(\alpha\) then continue as \(P\)} \\ & P_1 + P_2 && \text{non-deterministic choice: perform \(P_1\) or \(P_2\)} \\ & P_1 \mid P_2 && \text{parallel composition: \(P_1\) in parallel with \(P_2\)} \\ & \nu a.P_1 && \text{restriction: the scope of the channel name \(a\) is \(P_1\)} \\ \end{align*}$$

Processes can be defined recursively. Two formalisms exist:

  • Recursive definitions: $M_1 \stackrel{\mathrm{def}}= P_1 \mathrel; \ldots \mathrel; M_n \stackrel{\mathrm{def}}= P_n$
  • Fixpoint combinator: $P ::= \ldots \mid \mu M.P_1$

Semantics

The behavior of a process is described as a labelled transition system. The core rules are:

  • a process $\alpha.P$ can trigger the action $\alpha$;
  • when two processes emit corresponding input and output actions in parallel, their composition performs an internal transition.

$$ \alpha.P \stackrel{\alpha}\longrightarrow P \hspace{4em} \dfrac{P \stackrel{a}\longrightarrow P' \quad Q \stackrel{\bar a}\longrightarrow Q'} {P \mid \bar Q \stackrel{\tau}\longrightarrow P' \mid Q'} \\ $$

The semantic equivalence of two processes is defined through bisimilarity.

References

6 questions
11
votes
2 answers

CCS process for a drink dispenser with two different prices

A drink dispenser requires the user to insert a coin ($\bar c$), then press one of three buttons: $\bar d_{\text{tea}}$ requests a cup of tea $e_{\text{tea}}$, ditto for coffee, and $\bar r$ requests a refund (i.e. the machine gives back the coin:…
Gilles 'SO- stop being evil'
  • 44,159
  • 8
  • 120
  • 184
5
votes
1 answer

Are two CCS processes equivalent with respect to weak bisimilarity if and only if they satisfy exactly the same set of HML formulas?

I was skimming this recent paper and I was struck by the following statement: two processes are equivalent with respect to weak bisimilarity if and only if they satisfy exactly the same set of HML formulas I have trouble believing it. I reason…
Tobia Tesan
  • 268
  • 1
  • 9
2
votes
1 answer

Restriction and re-labeling on CCS

In a process like $$ R \stackrel{def}=((a.\bar{b}.0)\setminus\{b\})[a\to b]\mid(\bar{b}.b.0)+\bar{b}.c.0 $$ $b$ is restricted to perform on the inner process of RHS $(a.\bar{b}.0)\setminus\{b\}$, thereafter the $a$ is relabeled to $b$. What I am…
Amir-Mousavi
  • 268
  • 2
  • 13
1
vote
1 answer

CCS synchronization

Within CSS we talk about binary interactions. Does this prevent synchronizing multiple processes in one step? Example: $P_1 ::= a.D$ $P_2 ::= \overline{a}.D$ $P_3 ::= a.D$ Let's consider the following LTS: $(P_1 | P_2 | P_3)\restriction_a$ Do I get…
MoreOver
  • 135
  • 4
1
vote
1 answer

How to draw an LTS based on the parallel process "|" in CCS Milner's logic?

I'm trying to provide a Hennessy-Milner logic formula for CCS expressions that are not (strongly) bisimilar. An example with a sketch: For each of the following CCS expressions, decide whether they are strongly bisimilar and if no, find a…
user82869
0
votes
0 answers

How to draw a LTS for a process in CCS?

I don't fully understand how to draw a LTS (Labelled Transition System) for a given process in CCS (Calculus of Communicating Systems). Assume I have a simple process like: $$a.0$$ From my understanding the LTS should look like this: $$a.0…
Ski Mask
  • 463
  • 3
  • 15