Algebraic Laws for Nondeterminism and Concurrency


Since a nondeterministic and concurrent program may, in general, communicate repeatedly with its environment, its meaning cannot be presented naturally as an input/output function (as is often done in the denotational approach to semantics). In this paper, an alternative is put forth. First, a definition is given of what it is for two programs or program parts to be equivalent for all observers; then two program parts are said to be <italic>observation congruent</italic> if they are, in all program contexts, equivalent. The <italic>behavior</italic> of a program part, that is, its meaning, is defined to be its observation congruence class. The paper demonstrates, for a sequence of simple languages expressing finite (terminating) behaviors, that in each case observation congruence can be axiomatized algebraically. Moreover, with the addition of recursion and another simple extension, the algebraic language described here becomes a calculus for writing and specifying concurrent programs and for proving their properties.

DOI: 10.1145/2455.2460

Extracted Key Phrases

Citations per Year

1,401 Citations

Semantic Scholar estimates that this publication has 1,401 citations based on the available data.

See our FAQ for additional information.

Cite this paper

@article{Hennessy1985AlgebraicLF, title={Algebraic Laws for Nondeterminism and Concurrency}, author={Matthew Hennessy and Robin Milner}, journal={J. ACM}, year={1985}, volume={32}, pages={137-161} }