Abstract
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.
(first version)
The author is currently working in and partially supported by ESPRIT project P3096: “Formal Methods and Tools for the Development of Distributed and Real-Time Systems (SPEC)”.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
M. Abadi, L. Lamport (1988), “The Existence of Refinement Mappings”, Proc. 3d IEEE Conf. on Logic in Computer Science (LICS), pp. 165–175.
M. Abadi, L. Lamport (1990), “Composing Specifications”, this volume.
B. Alpern, F.B. Schneider (1986), “Recognizing Safety and Liveness”, Technical Report TR86-727, Dept. of Computer Science, Cornell University.
G. Berry, L. Cosserat (1985), The Synchronous Programming Language ESTEREL and its Mathematical Semantics, LNCS 197, pp. 389–449, Springer Verlag.
S. Brookes, C.A.R. Hoare, A. Roscoe (1984), A Theory of Communicating Sequential Processes, Journal of the ACM, Vol. 31, No. 7, pp. 560–599.
J. Bergstra, J.W. Klop (1984), Process Algebra for Synchronous Communication, Information and Computation, Vol. 60, pp. 109–137.
J. Bergstra, J.W. Klop, E.-R. Olderog (1986), “Failure semantics with fair abstraction”, Report CS-R8609, Center for Mathematics and Computer Science (CWI), Amsterdam.
K.M. Chandy, J. Misra (1988), Parallel Program Design, Addison-Wesley.
Ph. Darondeau (1982), “An Enlarged Definition and Complete Axiomatization of Observational Congruence of Finite Processes”, LNCS 137, pp. 47–62, Springer Verlag.
E.W. Dijkstra (1976), A Discipline of Programming, Prentice-Hall.
S. Eilenberg (1974), Automata, Languages and Machines, Volume A, Academic Press.
A. Fekete, N. Lynch, L. Shrira (1987), “A Modular Proof of Correctness for a Network Synchronizer”, Proc. 2nd International Workshop on Distributed Algorithms, LNCS 312, Springer Verlag.
R. Gerth, A. Boucher (1987), “A Timed Failures Model for Extended Communicating Processes”, Proc. 14th ICALP, LNCS 267, pp. 95–115, Springer Verlag.
R. Gerth, A. Pnueli (1989), “Rooting UNITY”, Proc. 5th IEEE International Workshop on Software Specification and Design, pp. 11–19.
R. Floyd (1967), “Assigning Meaning to Programs”, Proc. Sympos. in Appl. Math. 19, pp. 19–32, American Mathematical Society.
D. Harel (1987), Statecharts: a visual approach to complex systems, Science of Computer Programming, Vol. 8, No. 3.
M. Hennesy (1988), Algebraic Theory of Processes, The MIT press.
C.A.R. Hoare (1985), Communicating Sequential Processes, Prentice-Hall.
F. Jahanian, A. Mok (1988), Modecharts: a specification language for real-time systems, IEEE Transactions on Software Engineering, to appear.
L. Lamport (1983), Specifying concurrent program modules, ACM Transactions on Programming Languages and Systems, Vol. 5, No. 2, pp. 190–222.
L. Lamport (1986), “Specification Simplified”, Technical Report, DEC Systems Research Center, Alamaden.
N. Lynch (1990), “Multivalued Possibilities Mappings”, this volume.
S.S. Lam, A.U. Shankar (1984), Protocol verification via projection, IEEE Transactions on Software Engineering, Vol. 10, No. 4, pp. 325–342.
N. Lynch, M. Tuttle (1987), “Hierarchical correctness proofs for distributed algorithms”, Proc. 6th ACM Sympos. Principles of Distributed Computing (PODC), pp. 137–151, ACM.
M. Merrit (1990), “Completeness Theorems for Automata”, this volume.
R. Milner (1971), “An algebraic definition of simulation between programs”, Proc. 2nd Joint Confer. on Artificial Intelligence, BCS, pp. 481–489.
R. Milner (1980), A Calculus of Communicating Systems, LNCS 94, Springer-Verlag, New York.
R. Milner (1983), Calculi for Synchrony and Asynchrony, Theoretical Computer Science, Vol. 25, pp. 267–310.
R. Milner (1989), Communication and Concurrency, Prentice Hall.
Z. Manna, A. Pnueli (1981), “Verification of Concurrent Programs: The Temporal Framework”, The Correctness Problem in Computer Science (R. S. Boyer, J. S. Moore, eds.), pp. 215–274, Academic Press.
Z. Manna, A. Pnueli (1984), Adequate Proof Principles for Invariance and Liveness Properties of Concurrent Programs, Science of Computer Programming, Vol. 4, pp. 257–289.
R. De Nicola (1987), Extensional Equivalences for Transition Systems, Acta Informatica, Vol. 24, pp. 211–237.
R. De Nicola, M. Hennessy (1984), Testing Equivalences for Processes, Theoretical Computer Science, Vol. 34, pp. 83–133.
F. Stomp, W.P. de Roever (1987), “A correctness proof of a distributed minimum-weight spanning tree algorithm”, Proc. 7th IEEE International Conference on Distributed Computer Systems (ICDCS), pp. 440–448.
F. Stomp (1989), Design and Verification of Distributed Network Algorithms: Foundations and Applications, Ph.D. thesis, Eindhoven University of Technology.
J. Welch, L. Lamport, N. Lynch (1988), “A lattice-structured proof of a minimum spanning tree algorithm”, Proc. ACM Symposium on Principles of Distributed Computing (PODC).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1990 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gerth, R. (1990). Foundations of compositional program refinement. In: de Bakker, J.W., de Roever, W.P., Rozenberg, G. (eds) Stepwise Refinement of Distributed Systems Models, Formalisms, Correctness. REX 1989. Lecture Notes in Computer Science, vol 430. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-52559-9_87
Download citation
DOI: https://doi.org/10.1007/3-540-52559-9_87
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-52559-2
Online ISBN: 978-3-540-47035-9
eBook Packages: Springer Book Archive