Skip to main content
Log in

An Experiment in Program Composition and Proof

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. J.-R. Abrial, The B-Book: Assigning Programs to Meanings, Cambridge University Press, 1996.

  2. K.M. Chandy and J. Misra, Parallel Program Design: A Foundation, Addison-Wesley, 1988.

  3. K.M. Chandy and B.A. Sanders, “Predicate transformers for reasoning about concurrent computation,” Science of Computer Programming, Vol. 24, pp. 129-148, 1995.

    Google Scholar 

  4. 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.

  5. M. Charpentier, “Assistance à la Répartition de Systèmes Réactifs,” PhD Thesis, Institut National Polytechnique de Toulouse, France, Nov. 1997.

    Google Scholar 

  6. 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.

  7. 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.

  8. 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.

  9. 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.

    Google Scholar 

  10. L. Lamport, “The temporal togic of actions,” ACM Transactions on Programming Languages and Systems, Vol. 16, No. 3, pp. 872-923, 1994.

    Google Scholar 

  11. Z. Manna and A. Pnueli, The Temporal Logic of Reactive and Concurrent Systems: Specification, Springer-Verlag, 1992.

  12. J. Misra, “A logic for concurrent programming: Progress,” Journal of Computer and Software Engineering, Vol. 3, No. 2, pp. 273-300, 1995.

    Google Scholar 

  13. J. Misra, “A logic for concurrent programming: Safety,” Journal of Computer and Software Engineering, Vol. 3, No. 2, pp. 239-272, 1995.

    Google Scholar 

  14. C. Morgan, P. Gardiner, K. Robinson, and T. Vickers, On the Refinement Calculus, FACIT, Springer-Verlag, 1994.

  15. B.A. Sanders, “Eliminating the substitution axiom from UNITY logic,” Formal Aspects of Computing, Vol. 3, No. 2, pp. 189-205, 1991.

    Google Scholar 

  16. A.U. Shankar, “An introduction to assertional reasoning for concurrent systems,” ACM Computing Surveys, Vol. 25, No. 3, pp. 225-262, 1993.

    Google Scholar 

  17. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints 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

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1012952311559

Navigation