= Solution
For each node let
$$
\begin{aligned}
A_n&=\{\mathit{active}.n,\mathit{idle}.n,\mathit{shutdown}.n\}\\
&\quad\cup\{\mathit{ring}.n.b,\mathit{ring}.(n\oplus1).b:b\in\mathrm{Bool}\},\\
P_0&=\mathrm{Coordinator},\qquad P_n=\mathrm{Node}(n)\quad(1\leq n<N).
\end{aligned}
$$
The required <CSP alphabetized parallel composition> is
$$
\boxed{\mathrm{System}=\mathop{\Vert}_{n=0}^{N-1}[A_n]\ P_n.}
$$
Each message <CSP event> belongs to exactly the sender's and receiver's alphabets and synchronizes those two processes. A status signal belongs only to its own node. Using the common set of all message events as an all-node synchronization alphabet would be incorrect: unrelated nodes would then have to participate in each point-to-point transfer. The initial definitions in parts (a) and (b) make every node active. Keep the message <CSP events> visible here; later checks can apply <CSP hiding> as needed.
Back to article page