Partial correctness of distributed programs
This paper presents a notation and proof system for distributed programs. A distributed program comprises a network of communicating processes whose execution may proceed concurrently. Processes communicate via named unidirectional streams. Processes are characterised in terms of their externally observable behaviour, that is by the way their communication activities affect the sequences of values transmitted by their input and output streams. By considering only processes whose overall effect on each stream is deterministic, the externally observable behaviour of a process may be specified as a set of sequence transforming functions. The proof system deals with partial correctness and proofs are purposely limited to showing consistency with a functional specification. The approach is distinguished by the ability to prove the partial correctness of processes in isolation and the properties of networks of processes using Hoare style proof rule. An example illustrates the use of the technique.
KeywordsData Item Proof System Process Network Input Stream Boolean Expression
Unable to display preview. Download preview PDF.
- 2.GALLIMORE, R.M. and COLEMAN, D. Specification of Distributed Programs, these Proceedings.Google Scholar
- 4.KAHN, G. and MacQUEEN, D.B. Coroutines and Networks of Parallel Processes, Proc. IFIP Congress, 1977, North-Holland, Amsterdam 1977, pp 993–998.Google Scholar
- 5.LEVIN, G.M. and GRIES, D. A Proof Technique for Communicating Sequential Processes, Acta Informatica 15, 281–302 (1981)Google Scholar
- 6.OWICKI, S.S., and GRIES, D. Verifying Properties of Parallel Programs: An Axiomatic Approach, Communications of the ACM, 19, 5 (May 1976), 279–285.Google Scholar