Abstract
This paper explores a compositional approach to program specification, development and proof. We apply a theory of composition to a problem in distributed computing with the goal of understanding the strengths and weaknesses of this compositional approach. First, we describe the theory briefly. Then we give a specification of a desired system. Next, we propose a design of the desired system as a composition of components and prove its correctness. Finally, we show how the proof can be reused for a slightly different compositional structure by using the concept of observation.
Similar content being viewed by others
References
J.-R. Abrial, The B-Book: Assigning Programs to Meanings, Cambridge University Press, 1996.
K.M. Chandy and J. Misra, Parallel Program Design: A Foundation, Addison-Wesley, 1988.
K.M. Chandy and B.A. Sanders, “Predicate transformers for reasoning about concurrent computation,” Science of Computer Programming, Vol. 24, pp. 129-148, 1995.
K.M. Chandy and B.A. Sanders, “Reasoning about program composition,” Technical Report 96-035, University of Florida, Department of Computer and Information Science and Engineering, 1996.
M. Charpentier, “Assistance à la Répartition de Systèmes Réactifs,” PhD Thesis, Institut National Polytechnique de Toulouse, France, Nov. 1997.
M. Charpentier and K.M. Chandy, “Towards a compositional approach to the design and verification of distributed systems,” Technical Report CS-TR-99-02, California Institute of Technology, Jan. 1999, pp. 29.
M. Charpentier and K.M. Chandy, “Examples of program composition illustrating the use of universal properties,” in J. Rolim (Ed.), International Workshop on Formal Methods for Parallel Programming: Theory and Applications (FMPPTA'99), Lecture Notes in Computer Science, Vol. 1586, Springer-Verlag, April 1999, pp. 1215-1227.
M. Charpentier, M. Filali, P. Mauran, G. Padiou, and P. Quéinnec, “Tailoring UNITY to distributed program design,” in J. Rolim (Ed.), International Workshop on Formal Methods for Parallel Programming: Theory and Applications (FMPPTA'98), Lecture Notes in Computer Science, Vol. 1388, Springer-Verlag, April 1998, pp. 820-832.
O. Grumberg and D.E. Long, “Model checking and modular verification,” ACMTransactions on Programming Languages and Systems, Vol. 16, No. 3, pp. 843-871, 1994.
L. Lamport, “The temporal togic of actions,” ACM Transactions on Programming Languages and Systems, Vol. 16, No. 3, pp. 872-923, 1994.
Z. Manna and A. Pnueli, The Temporal Logic of Reactive and Concurrent Systems: Specification, Springer-Verlag, 1992.
J. Misra, “A logic for concurrent programming: Progress,” Journal of Computer and Software Engineering, Vol. 3, No. 2, pp. 273-300, 1995.
J. Misra, “A logic for concurrent programming: Safety,” Journal of Computer and Software Engineering, Vol. 3, No. 2, pp. 239-272, 1995.
C. Morgan, P. Gardiner, K. Robinson, and T. Vickers, On the Refinement Calculus, FACIT, Springer-Verlag, 1994.
B.A. Sanders, “Eliminating the substitution axiom from UNITY logic,” Formal Aspects of Computing, Vol. 3, No. 2, pp. 189-205, 1991.
A.U. Shankar, “An introduction to assertional reasoning for concurrent systems,” ACM Computing Surveys, Vol. 25, No. 3, pp. 225-262, 1993.
P.A.G. Sivilotti, “A Method for the Specification, Composition, and Testing of Distributed Object Systems,” PhD Thesis, California Institute of Technology, 256-80 Caltech, Pasadena, California 91125, Dec. 1997.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Chandy, K.M., Charpentier, M. An Experiment in Program Composition and Proof. Formal Methods in System Design 20, 7–21 (2002). https://doi.org/10.1023/A:1012952311559
Issue Date:
DOI: https://doi.org/10.1023/A:1012952311559