An exercise in the formal derivation of parallel programs: maximum flows in graphs
- 1 April 1990
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 12 (2) , 203-223
- https://doi.org/10.1145/78942.78945
Abstract
We apply a new method for the development of parallel programs to the problem of finding maximum flows in graphs. The method facilitates concurrent program design by separating the concerns of correctness from those of hardware and implementation. It uses predicate transformer semantics to define a set of basic operators for the specification and verification of programs. From an initial specification program development proceeds by a series of refinement steps, each of which constitutes a strengthening of the specification of the previous refinement. The method is completely formal in the sense that all reasoning steps are performed within predicate calculus. A program is viewed as a mathematical object enjoying certain properties, rather than in terms of its possible executions. We demonstrate the usefulness of the approach by deriving an efficient algorithm for the Maximum Flow Problem in a top-down manner.Keywords
This publication has 4 references indexed in Scilit:
- The formal specification and design of a distributed electronic funds-transfer systemIEEE Transactions on Computers, 1988
- Proving Liveness Properties of Concurrent ProgramsACM Transactions on Programming Languages and Systems, 1982
- The Science of ProgrammingPublished by Springer Nature ,1981
- Flows in NetworksPublished by Walter de Gruyter GmbH ,1963