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.
Similar content being viewed by others
References
Abadi M, Lamport L (1993) Composing specifications. ACM Transactions on Programming Languages and Systems 15(1): 73-132
Abadi M, Lamport L (1995) Conjoining specifications. ACM Transactions on Programming Languages and Systems 17(3): 507-534
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
Abadi M, Plotkin G (1993) A logical view of composition. Theoretical Computer Science 114(1): 3-30
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
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
Chandy KM, Charpentier M (2002) An experiment in program composition and proof. Formal Methods in System Design 20(1): 7-21
Chandy KM, Sanders BA Reasoning about program composition. http://www.cise.ufl.edu/\(\sim\)sanders/pubs/composition.ps
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
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
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
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
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
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
Collette P (1994) Composition of assumption-commitment specifications in a Unity style. Science of Computer Programming 23: 107-125
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
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
Dijkstra EW, Scholten CS (1990) Predicate calculus and program semantics. Texts and monographs in computer science. Springer, Berlin Heidelberg New York
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
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
Hennessy M, Milner R (1985) Algebraic laws for nondeterminism and concurrency. Journal of the ACM 32(1): 137-161
Hoare CAR (1984) Communicating Sequential Processes. Prentice-Hall International, Englewoood Cliffs, NJ
Hoare CAR, He J (1998) Unifying theories of programming (first edn). Prentice Hall, London New York
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
Leavens GT, Sitaraman M (eds) (2000) Foundations of Component-Based Systems. Cambridge University Press, Cambridge (UK) New York
Manna Z, Pnueli A (1992) The Temporal Logic of Reactive and Concurrent Systems: Specification. Springer, Berlin Heidelberg New York
Meier D, Sanders B (2000) Composing leads-to properties. Theoretical Computer Science 243(1-2): 339-361
Microsoft Corporation (1997) The Component Object Model specification.
Misra J (1995) A logic for concurrent programming: Progress. Journal of Computer and Software Engineering 3(2): 273-300
Misra J (1995) A logic for concurrent programming: Safety. Journal of Computer and Software Engineering 3(2): 239-272
Misra J (2001) A discipline of multiprogramming: programming theory for distributed applications. Monographs in Computer Science. Springer, Berlin Heidelberg New York
Object Management Group. The Common Object Request Broker: Architecture and Specification. Version 2.0.
Paulson LC (2001) Mechanizing a theory of program composition for Unity. ACM Transactions on Computational Logic (To appear)
Sanders BA (1991) Eliminating the substitution axiom from Unity logic. Formal Aspects of Computing 3(2): 189-205
Udink RT (1995) Program Refinement in Unity-like Environments. PhD thesis, Utrecht University
Author information
Authors and Affiliations
Corresponding author
Additional information
Received: 30 May 2002, Revised: 16 August 2003, Published online: 30 October 2003
Rights 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
Issue Date:
DOI: https://doi.org/10.1007/s00236-003-0130-y