--------------------------------------------------------- -- COMMUNICATION RULES -- --------------------------------------------------------- INTER(P,Q) = P ||| Q COMM(P,Q,c1,c2) = (P ||| Q) [| {| c1,c2 |} |] BFIO(c1,c2) FEED(P,c1,c2) = P[| {| c1,c2 |} |] BFIO(c1,c2) REF(P,c1,c2) = P[| {| c1,c2 |} |] BFIO(c1,c2) -- BUFFERS BUFFER(ci,co, n) = let B(<>) = ci?x -> B() B(s) = (co!head(s) -> B(tail(s))) [] (#s B(s^)) within B(<>) BFIO(c1,c2) = BUFFER(c1.req, c2.req,1) ||| BUFFER(c2.ack, c1.ack,1)