# RE: many-to-one channel

Larry,

if by "definition" you mean a piece of CSP to describe the situation, then the interleaving operator (|||) probably covers the situation you are thinking of:

P \defs
(Q ||| R) [| {| a |} |] S

In the above process, if we assume {a} \in Q\cap R\cap S (ie all processed have "a" in their alphabet) then S will synchronise with either Q or R on a, but never both at the same time, and Q and R will never synchronise together on a.

This therefore is "many to one", and the LHS of the parallel operator could contain as many processes as you wish.

Hope this helps,

Alistair

________________________________________
From: Mailing_List_Robot [sympa@xxxxxxxxxx] On Behalf Of Larry Dickson [tjoccam@xxxxxxxxxxx]
Sent: 17 October 2008 01:16
To: P.H.Welch@xxxxxxxxxx
Cc: occam-com@xxxxxxxxxx
Subject: many-to-one channel

Hi Peter and all,

Can you point me to a "standard" definition of a many-output-to-one-
input channel? The subject came up in a discussion I am having with
the Stackless Python people. I cobbled up a two-word version but
cannot remember if it was the standard way. The input needs to be able
to do ALTs, which I (subject to correction) don't think the many-to-
many can do.

Larry