Skip to main content

A CALCULUS OF TOTAL CORRECTNESS FOR COMMUNICATING PROCESSES

C.A.R. Hoare

Abstract

A process communicates with its environment and with other processes by synchronised output and input on named channels. The current state of a process is defined by the sequences of messages which have passed along each of the channels, and by the sets of messages that may next be passed on each channel. A process satisfies an assertion if the assertion is at all times true of all possible states of the process. We present a calculus for proving that a process satisfies the assertion describing its intended behaviour. The following constructs are axiomatised: output; input; simple recursion; disjoint parallelism; channel renaming, connection and hiding; process chaining; nondeterminism; conditional; alternation; and mutual recursion. The calculus is illustrated by proof of a number of simple buffering protocols.

Institution
OUCL
Month
April
Number
PRG23
Pages
36
Year
1981