An axiomatic proof technique for parallel programs I

SummaryA language for parallel programming, with a primitive construct for synchronization and mutual exclusion, is presented. Hoare's deductive system for proving partial correctness of sequential programs is extended to include the parallelism described by the language. The proof method lends insight into how one should understand and present parallel programs. Examples are given using several of the standard problems in the literature. Methods for proving termination and the absence of deadlock are also given.

[1]  Richard J. Lipton Reduction: a new method of proving properties of systems of processes , 1975, POPL '75.

[2]  A. Habermann Synchronization of communicating processes , 1972, CACM.

[3]  Charles Antony Richard Hoare Towards a theory of parallel programming , 2002 .

[4]  Richard J. Lipton,et al.  On synchronization primitive systems , 1973 .

[5]  Barry K. Rosen,et al.  Correctness of Parallel Programs: The Church-Rosser Approach , 1976, Theor. Comput. Sci..

[6]  Peter E. Lauer,et al.  Consistent formal theories of the semantics of programming languages , 1971 .

[7]  Susan S. Owicki,et al.  Axiomatic Proof Techniques for Parallel Programs , 1975, Outstanding Dissertations in the Computer Sciences.

[8]  C. A. R. Hoare,et al.  Consistent and complementary formal theories of the semantics of programming languages , 1974, Acta Informatica.

[9]  Edsger W. Dijkstra,et al.  The structure of the “THE”-multiprogramming system , 1968, CACM.

[10]  Maurice Clint Program proving: Coroutines , 2004, Acta Informatica.

[11]  Jean-Jacques Lévy,et al.  Mechanizable Proofs about Parallel Processes , 1973, SWAT.

[12]  Zohar Manna,et al.  Formalization of properties of parallel programs , 1970 .

[13]  Glen E. Newton Proving properties of interacting processes , 2004, Acta Informatica.

[14]  Leslie Lamport,et al.  On-the-fly garbage collection: an exercise in cooperation , 1975, CACM.

[15]  Edward A. Ashcroft Proving Assertions about Parallel Programs , 1975, J. Comput. Syst. Sci..