Table of contents
About these proceedings
The cooperation test [Apt, Francez & de Roever] was originally conceived to capture the proof theoretical analogue of distributed message exchange between disjoint processes, as opposed to the interference freedom test [Owicki & Gries], being the proof theoretical analogue of concurrent communication by means of interference through jointly shared variables. Some authors ([Levin & Gries, Lamport & Schneider, Schlichting and Schneider]) stress that both forms of communication can be proof theoretically characterized using interference freedom only, since proofs for both ultimately amount to an invariance proof of a big global assertion [Ashcroft], invariance of whose parts amounts to interference freedom. Yet I feel that the characteristic nature of the cooperation test is still preserved in the analysis of these authors, because in their analysis of CSP the part dealing with interference freedom specializes to maintenance of a global invariant, the expression of which requires per process the introduction of auxiliary variables which are updated in that process only, thus preserving the concept of disjointness (as opposed to sharing), since now all variables from different processes are disjoint. The cooperation test has been applied to characterize concurrent communication as occurring in Hoare's Communicating Sequential Processes (CSP) [Hoare 2], Ichbiah's ADA [ARM], and Brinch Hansen's Distributed Processes (DP) [Brinch Hansen]. This characterization has been certified through soundness and completeness proofs [Apt 2, Gerth]. As in the interference freedom test this characterization consists of two stages, a local sequential stage and a global stage.
Invariant Programm Systems algorithms communicating sequential process cooperation distributed systems form logic maintenance programming programming language semantics sound verification