Correctness of Parallel Programs: The Church-Rosser Approach

Abstract For many purposes, asynchronous parallel programs may be viewed as sequential but nondeterministic programs. The direct translation to nondeterministic sequential form leads to a combinatorial explosion of program size before correctness proofs can even begin. The Church-Rosser approach to correctness of asynchronous parallel programs is a flexible way to divide a correctness proof into several lemmas, no one of which requires both deep reasoning and explicit enumeration of all the control states required in the nondeterministic sequential form of the program. The approach is stated and justified abstractly, demonstrated in detail for a simple example program, and compared with other approaches to the correctness of parallel programs. The abstract formulation is independent of the model of parallelism in the example and can also be applied to nondeterminism not derived from asynchronous parallelism. We conclude with a survey of prospects for computer assisted proofs structured by the Church-Rosser approach.

[1]  Hugh C. Lauer Correctness in operating systems , 1973 .

[2]  Jeffrey D. Ullman,et al.  Flow Graph Reducibility , 1972, SIAM J. Comput..

[3]  Richard J. Lipton Limitations of synchronization primitives with conditional branching and global variables , 1974, STOC '74.

[4]  Robert M. Keller,et al.  A Fundamental Tehoerem of Asynchronous Parallel Computation , 1974, Sagamore Computer Conference.

[5]  Ravi Sethi,et al.  Testing for the Church-Rosser Property , 1974, JACM.

[6]  ZOHAR MANNA,et al.  The Correctness of Programs , 1969, J. Comput. Syst. Sci..

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

[8]  William A. Wulf,et al.  Programming without the Goto , 1971, IFIP Congress.

[9]  S. Rao Kosaraju Analysis of Structured Programs , 1974, J. Comput. Syst. Sci..

[10]  Robin Milner,et al.  An Algebraic Definition of Simulation Between Programs , 1971, IJCAI.

[11]  F. Lockwood Morris,et al.  Advice on structuring compilers and proving them correct , 1973, POPL.

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

[13]  Frances E. Allen,et al.  A Basis for Program Optimization , 1971, IFIP Congress.

[14]  Edsger W. Dijkstra,et al.  A constructive approach to the problem of program correctness , 1968 .

[15]  Tadao Kasami,et al.  On the capabilities of while, repeat, and exit statements , 1973, Commun. ACM.

[16]  Joseph A. Goguen,et al.  Initial Algebra Semantics , 1974, SWAT.

[17]  Friedrich L. Bauer,et al.  Revised report on the algorithm language ALGOL 60 , 1963, CACM.

[18]  Edsger W. Dijkstra,et al.  Co-operating sequential processes , 1968 .

[19]  Edward S. Lowry,et al.  Object code optimization , 1969, CACM.

[20]  Richard M. Karp,et al.  Parallel Program Schemata , 1969, J. Comput. Syst. Sci..

[21]  Frances E. Allen,et al.  Interprocedural Data Flow Analysis , 1974, IFIP Congress.

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

[23]  Jeffrey D. Ullman,et al.  Analysis of a simple algorithm for global data flow problems , 1973, POPL.

[24]  Robert E. Tarjan,et al.  Finding Dominators in Directed Graphs , 1974, SIAM J. Comput..

[25]  William A. Wulf,et al.  A case against the GOTO , 1972, ACM '72.

[26]  Zohar Manna,et al.  The Correctness of Nondeterministic Programs , 1970, Artif. Intell..

[27]  Peter Naur Proof of Algorithms by General Snapshots , 1966 .

[28]  Mariangiola Dezani-Ciancaglini,et al.  Application of Church-Rosser Properties to Increase the Parallelism and Efficiency of Algorithms , 1974, ICALP.

[29]  Richard Lee Sites,et al.  Proving that computer programs terminate cleanly. , 1974 .

[30]  Zohar Manna Mathematical Theory of Partial Correctness , 1971, J. Comput. Syst. Sci..

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

[32]  Ken Kennedy,et al.  A global flow analysis algorithm , 1972 .

[33]  Maurice Nivat On some families of languages related to the Dyck language , 1970, STOC '70.

[34]  Alfred V. Aho,et al.  Code optimization and finite church-rosser systems , 1971 .

[35]  Alexander Birman On Proving Correctness of Microprograms , 1974, IBM J. Res. Dev..