Skip to main content
Log in

Specification transformers: a predicate transformer approach to composition

  • Published:
Acta Informatica Aims and scope Submit manuscript

Abstract.

This paper explores theories that help in (i) proving that a system composed from components satisfies a system specification given only specifications of components and the composition operator, and (ii) deducing desirable properties of components from the system specification and properties of the composition operator. The paper studies compositional systems in general without making assumptions that components are computer programs. The results obtained from such abstract representations are general but also weaker than results that can be obtained from more restrictive assumptions such as assuming that systems are parallel compositions of concurrent programs. Explorations of general theories of composition can help identify fundamental issues common to many problem domains. The theory presented here is based on predicate transformers.

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. Abadi M, Lamport L (1993) Composing specifications. ACM Transactions on Programming Languages and Systems 15(1): 73-132

    Article  Google Scholar 

  2. Abadi M, Lamport L (1995) Conjoining specifications. ACM Transactions on Programming Languages and Systems 17(3): 507-534

    Article  Google Scholar 

  3. Abadi M, Merz S (1995) An abstract account of composition. In: Wiedermann J, Hajek P (eds) Mathematical Foundations of Computer Science, vol 969. Lecture Notes in Computer Science, pp 499-508. Springer, Berlin Heidelberg New York

  4. Abadi M, Plotkin G (1993) A logical view of composition. Theoretical Computer Science 114(1): 3-30

    Article  MathSciNet  MATH  Google Scholar 

  5. Alur R, Henzinger TA, Kupferman O (1997) Alternating-time temporal logic. In: 38th Annual Symposium on Foundations of Computer Science, pp 100-109. IEEE Computer Society Press

  6. Andrade H, Sanders BA (2002) An approach to compositional model checking. In: International Parallel and Distributed Processing Symposium. Workshop on Formal Methods for Parallel Programming: Theory and Applications (FMPPTA’02). IEEE

    Google Scholar 

  7. Chandy KM, Charpentier M (2002) An experiment in program composition and proof. Formal Methods in System Design 20(1): 7-21

    Article  MATH  Google Scholar 

  8. Chandy KM, Sanders BA Reasoning about program composition. http://www.cise.ufl.edu/\(\sim\)sanders/pubs/composition.ps

  9. Charpentier M (2002) An approach to composition motivated by wp. In: Kutsche RD, Weber H (eds) Fundamental Approaches to Software Engineering (FASE’2002), vol 2306 of Lecture Notes in Computer Science, pp 1-14. Springer, Berlin Heidelberg New York

  10. Charpentier M (2003) Composing invariants. In: Araki K, Gnesi S, Mandrioli D (eds) 12th International Symposium of Formal Methods Europe (FME’2003), vol 2805 of Lecture Notes in Computer Science. Springer, Berlin Heidelberg New York

  11. Charpentier M, Chandy KM (1999) Examples of program composition illustrating the use of universal properties. In: Rolim J (ed) International workshop on Formal Methods for Parallel Programming: Theory and Applications (FMPPTA’99), vol 1586 of Lecture Notes in Computer Science, pp 1215-1227. Springer, Berlin Heidelberg New York

  12. Charpentier M, Chandy KM (1999) Towards a compositional approach to the design and verification of distributed systems. In: Wing J, Woodcock J, Davies J (eds) World Congress on Formal Methods in the Development of Computing Systems (FM’99), (Volume I), vol 1708 of Lecture Notes in Computer Science, pp 570-589. Springer, Berlin Heidelberg New York

  13. Charpentier M, Chandy KM (2000) Reasoning about composition using property transformers and their conjugates. In: van Leeuwen J, Watanabe O, Hagiya M, Mosses PD, Ito T (eds) Theoretical Computer Science: Exploring New Frontiers of Theoretical Informatics (IFIP-TCS’2000), vol 1872 of Lecture Notes in Computer Science, pp 580-595. Springer, Berlin Heidelberg New York

  14. Charpentier M, Chandy KM (2000) Theorems about composition. In: Backhouse R, Nuno Oliveira J (eds) International Conference on Mathematics of Program Construction (MPC’2000), vol 1837 of Lecture Notes in Computer Science, pp 167-186. Springer, Berlin Heidelberg New York

  15. Collette P (1994) Composition of assumption-commitment specifications in a Unity style. Science of Computer Programming 23: 107-125

    Article  MathSciNet  MATH  Google Scholar 

  16. Collette P (1994) Design of Compositional Proof Systems Based on Assumption-Commitment Specifications. Application to Unity. Doctoral thesis, Faculté des Sciences Appliquées, Université Catholique de Louvain

  17. Collette P, Knapp E (1995) Logical foundations for compositional verification and development of concurrent programs in Unity. In: International Conference on Algebraic Methodology and Software Technology, vol 936 of Lecture Notes in Computer Science, pp 353-367. Springer, Berlin Heidelberg New York

  18. Dijkstra EW, Scholten CS (1990) Predicate calculus and program semantics. Texts and monographs in computer science. Springer, Berlin Heidelberg New York

  19. Ehmety SO, Paulson LC (2002) Program composition in isabelle/Unity. In: International Parallel and Distributed Processing Symposium. Workshop on Formal Methods for Parallel Programming: Theory and Applications (FMPPTA’02). IEEE

    Google Scholar 

  20. Fiadeiro JL, Maibaum T (1995) Verifying for reuse: foundations of object-oriented system verification. In: Makie I, Hankin C, Nagarajan R (eds) Theory and Formal Methods, pp 235-257. World Scientific Publishing Company

  21. Hennessy M, Milner R (1985) Algebraic laws for nondeterminism and concurrency. Journal of the ACM 32(1): 137-161

    Article  MATH  Google Scholar 

  22. Hoare CAR (1984) Communicating Sequential Processes. Prentice-Hall International, Englewoood Cliffs, NJ

  23. Hoare CAR, He J (1998) Unifying theories of programming (first edn). Prentice Hall, London New York

  24. Lamport L (1997) Composition: A way to make proofs harder. In: de Roever W-P, Langmaack H, Pnueli A (eds) Compositionality: The Significant Difference. International Symposium, COMPOS’97, vol 1536 of Lecture Notes in Computer Science, pp 402-423. Springer, Berlin Heidelberg New York

  25. Leavens GT, Sitaraman M (eds) (2000) Foundations of Component-Based Systems. Cambridge University Press, Cambridge (UK) New York

  26. Manna Z, Pnueli A (1992) The Temporal Logic of Reactive and Concurrent Systems: Specification. Springer, Berlin Heidelberg New York

    Google Scholar 

  27. Meier D, Sanders B (2000) Composing leads-to properties. Theoretical Computer Science 243(1-2): 339-361

    Google Scholar 

  28. Microsoft Corporation (1997) The Component Object Model specification.

  29. Misra J (1995) A logic for concurrent programming: Progress. Journal of Computer and Software Engineering 3(2): 273-300

    Google Scholar 

  30. Misra J (1995) A logic for concurrent programming: Safety. Journal of Computer and Software Engineering 3(2): 239-272

    MATH  Google Scholar 

  31. Misra J (2001) A discipline of multiprogramming: programming theory for distributed applications. Monographs in Computer Science. Springer, Berlin Heidelberg New York

    Google Scholar 

  32. Object Management Group. The Common Object Request Broker: Architecture and Specification. Version 2.0.

    Google Scholar 

  33. Paulson LC (2001) Mechanizing a theory of program composition for Unity. ACM Transactions on Computational Logic (To appear)

  34. Sanders BA (1991) Eliminating the substitution axiom from Unity logic. Formal Aspects of Computing 3(2): 189-205

    MATH  Google Scholar 

  35. Udink RT (1995) Program Refinement in Unity-like Environments. PhD thesis, Utrecht University

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Michel Charpentier.

Additional information

Received: 30 May 2002, Revised: 16 August 2003, Published online: 30 October 2003

Rights and permissions

Reprints and permissions

About this article

Cite this article

Charpentier, M., Chandy, K.M. Specification transformers: a predicate transformer approach to composition. Acta Informatica 40, 265–301 (2004). https://doi.org/10.1007/s00236-003-0130-y

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00236-003-0130-y

Keywords

Navigation