Foundations of Compositional Program Refinement - Safety Properties

The aim of this paper is twofold: first is to formulate a foundation for refinement of parallel programs that may synchronously communicate and/or share variables; programs rendered as 1st order transition systems. The second aim is to bring closer and to show the relevance of the algebraic theory of parallel processes to that of the refinement of such 1st order systems. We do this by first developing a notion of refinement and a complete verification criteria for it for algebraic, uninterpreted transition systems—basing ourselves on already existing theory. Then we show how 1st order transition systems can be translated—while preserving those aspects of their semantics that we are interested in—into uninterpreted transition systems. Since this translation is canonical, it is used to lift the algebraic refinement and verification criteria to the level of 1st order systems. Specifically, we show that they yield assertional methods for refinement of such systems that resemble the methods used in Z. Manna and A. Pnueli's temporal logic proof system.

[1]  Zohar Manna,et al.  Adequate Proof Principles for Invariance and Liveness Properties of Concurrent Programs , 1984, Sci. Comput. Program..

[2]  Nancy A. Lynch,et al.  A Modular Proof of Correctness for a Network Synchronizer (Research Summary) , 1987, WDAG.

[3]  Jan A. Bergstra,et al.  Process Algebra for Synchronous Communication , 1984, Inf. Control..

[4]  K. Mani Chandy Parallel program design , 1989 .

[5]  Philippe Darondeau,et al.  An enlarged definition and complete axiomatization of observational congruence of finite processes , 1982, Symposium on Programming.

[6]  Zohar Manna,et al.  Verification of concurrent programs, Part I: The temporal framework , 1981 .

[7]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

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

[9]  Rocco De Nicola,et al.  Testing Equivalences for Processes , 1984, Theor. Comput. Sci..

[10]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[11]  Willem P. de Roever,et al.  A Correctness Proof of a Distributed Minimum-Weight Spanning Tree Algorithm (extended abstract) , 1987, ICDCS.

[12]  Andy Boucher,et al.  A Timed Failures Model for Extended Communicating Processes , 1987, ICALP.

[13]  A. Udaya Shankar,et al.  Protocol Verification via Projections , 1984, IEEE Transactions on Software Engineering.

[14]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[15]  Leslie Lamport,et al.  Specifying Concurrent Program Modules , 1983, TOPL.

[16]  Jan Willem Klop,et al.  Failure semantics with fair abstraction , 1986 .

[17]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[18]  Michael Merritt,et al.  Completeness Theorems for Automata , 1990, REX Workshop.

[19]  Nancy A. Lynch Multivalued Possibilities Mappings , 1989, REX Workshop.

[20]  Nancy A. Lynch,et al.  A lattice-structured proof of a minimum spanning , 1988, PODC '88.

[21]  C. A. R. Hoare,et al.  A Theory of Communicating Sequential Processes , 1984, JACM.

[22]  Nancy A. Lynch,et al.  Hierarchical correctness proofs for distributed algorithms , 1987, PODC '87.

[23]  Martín Abadi,et al.  Composing Specifications , 1989, REX Workshop.

[24]  Matthew Hennessy,et al.  Algebraic theory of processes , 1988, MIT Press series in the foundations of computing.

[25]  Martín Abadi,et al.  The existence of refinement mappings , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[26]  Robin Milner,et al.  Calculi for Synchrony and Asynchrony , 1983, Theor. Comput. Sci..

[27]  R. Gerth,et al.  Rooting UNITY , 1989, IWSSD '89.

[28]  Robert W. Floyd,et al.  Assigning meaning to programs , 1967 .

[29]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.