Abstract
A survey is given of the main issues in compositional reasoning about state-based parallelism and of the history of their evolution, as reflected in the current literature. Compositional proof techniques are presented as the proof-theoretical analogue of Dijkstra’s hierarchically-structured program development. Machine-support for compositional reasoning, and the relationship between compositionality and modularity are discussed. The issues when compositional reasoning about concurrency is successful, and when it isn’t, are commented upon. Pointers to the other papers in this volume are provided.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
K.R. Apt, N. Prancez, and W. P. de Roever. A proof system for communicating sequential processes. ACM Transactions on Programming Languages and Systems, 2:359–385, 1980.
Martin Abadi and Leslie Lamport. The existence of refinement mappings. Theoretical Computer Science, 82(2):253–284, 1991.
Martin Abadi and Leslie Lamport. Comparing specifications. Toplas, 15(1):73–132, 1993.
Martin Abadi and Leslie Lamport. Conjoining specifications. Toplas, 17(3):507–534, May 1995.
Gregory R. Andrews. Concurrent Programming, Principles and Practice. The Benjamin/Cummings Publishing Company, 1991.
K.R. Apt and E.R. Olderog. Verification of Sequential and Concurrent Programs. Springer-Verlag, 1991.
Martin Abadi and Gordon D. Plotkin. A logical view of composition. Theoretical Computer Science, 114(1):3–30, 1993.
B. Alpern and F.B. Schneider. Defining liveness. Information Processing Letters, 21(4):181–185, October 1985.
H. Barringer and R. Kuiper. Hierarchical development of concurrent systems in a temporal logic framework. In Proc. of a Seminar on Concurrency, LNCS 197. Springer-Verlag, 1985.
S. Bensalem, Y. Lakhnech, and S. Owre. Computing abstractions of infinite state systems compositionally and automatically. In CAV’ 98, volume 1427 of LNCS. Springer-Verlag, 1998.
S. Bensalem, Y. Lakhnech, and S. Owre. InVeSt: A tool for the verification of invariants. In CAV’ 98, volume 1427 of LNCS. Springer-Verlag, 1998.
Manfred Broy. Interaction refinement—the easy way. In M. Broy, editor, Program Design Calculi, volume 118. Springer NATO ASI Series, Series F: Computer and System Sciences, 1993.
Antonio Cau. Compositional verification and specification of refinement for reactive systems in a dense time temporal logic. Technical Report Bericht Nr. 9601, Institut für Informatik und Praktische Mathematik, University of Kiel, 1996.
Ed M. Clarke, D.E. Long, and K.L. McMillan. Compositional model checking. In Proc. LICS’ 89, pages 353–362. IEEE Computer Society Press, 1989.
K.M. Chandy and J. Misra. The drinking-philosophers problem. TOPLAS, 6(4):632–646, 1984.
Edward Chang, Zohar Manna, and Amir Pnueli. Compositional verification of real-time systems. In Proc LICS’ 94. IEEE Computer Society Press, 1994.
Pierre Collette. Application of the composition principle to UNITY-like specifications. In Proc. of TAPSOFT’ 93, LNCS 668. Springer-Verlag, 1993.
Pierre Collette. An explanatary presentation of composition rules for assumption-commitment specifications. Information Processing Letters, 50(1):31–35, 1994.
Ole-Johan Dahl. Verifiable Programming. Prentice Hall, 1992.
F.S. de Boer. Reasoning about asynchronous communication in dynamically evolving object structures. In CONCUR’ 98, volume 1466 of LNCS. Springer-Verlag, 1998.
F.S. de Boer, U. Hannemann, and W.-P. de Roever. A compositional proof system for shared-variable concurrency. In John Fitzgerald, Cliff B. Jones, and Peter Lucas, editors, FME’ 97: Industrial Applications and Strengthened Foundations of Formal Methods, volume 1313 of LNCS, pages 515–532, Berlin, Heidelberg, New York, 1997. Springer Verlag.
F.S. de Boer, U. Hannemann, and W.-P. de Roever. Hoare-style compositional proof systems for reactive shared variable concurrency. In FSTTCS’ 97: Foundations of Software Technology and Theoretical Computer Science, volume 1346 of LNCS, Berlin, Heidelberg, New York, 1997. Springer Verlag.
F.S. de Boer, J.N. Kok, C. Palamedessi, and J.J.M.M. Rutten. The failure of failures: towards a paradigm for asynchronous communication. In Baeten and Groote, editors, CONCUR’91, LNCS 527. Springer-Verlag, 1991.
Werner Damm and Johannes Helbig. Linking visual formalisms: A compositional proof system for Statecharts based on symbolic timing diagrams. In IFIP Working Conference on Programming Concepts, Methods and Calculi (PROCOMET’ 94). North-Holland, pages 337–356, 1994.
E.W. Dijkstra. The structure of the “THE” multiprogramming system. CACM, 11(5):341–346, 1968.
E.W. Dijkstra. EWD 264. Published in an extended version as [Dij69b], August 1969.
E.W. Dijkstra. Structured programming. In J.N. Buxton and B. Randell, editors, Software Engineering Techniques, Report on a conference sponsored by the NATO Science Committee, pages 84–88. NATO Science Committee, 1969.
E.W. Dijkstra. Hierarchical ordering of sequential processes. In C.A.R. Hoare and R.H. Perrot, editors, Operating Systems Techniques, pages 72–98, London and New York, 1972. Academia Press. Proceedings of a seminar held at Queen’s University, Belfast, 1971.
E.W. Dijkstra. A discipline of programming. Prentice Hall, 1976.
E.W. Dijkstra. Selecting Writings on Computing: A Personal Perspective. Springer-Verlag, 1982.
Werner Damm, Bernhard Josko, Hardi Hungar, and Amir Pnueli. A compositional real-time semantics of STATEMATE designs. In Proceedings of the International Symposium COMPOS’ 97. Springer-Verlag, 1998.
W. Damm, B. Josko, and R. Schlör. Specification and verification of vhdl-based system-level hardware designs. In E. Börger, editor, Specification and Validation Methods, pages 331–410. Oxford University Press, 1995.
Willem-Paul de Roever. The quest for compositionality-a survey of assertion-based proof systems for concurrent programs, part 1: Concurrency based on shared variables. In Proc. of IFIP Working Conf, The Role of Abstract Models in Computer Science, North-Holland, 1985.
[dRdBH+]_W.-P. de Roever, F. de Boer, U. Hannemann, J. Hooman, Y. Lakhnech, M. Poel, and J. Zwiers. Concurrency Verification: Fron Noncompositional to Compositional Proof Methods. Submitted for publication in 1998.
R.W. Floyd. Assigning meanings to programs. In Proceedings AMS Symp. Applied Mathematics, volume 19, pages 19–31, Providence, R.I., 1967. American Mathematical Society.
Nissim Francez. Program Verification. Addison-Wesley, Wokingham, 1992.
G. Frege. Gedankengefüge, Beiträge zur Philosophie des Deutschen Idealismus, volume Band III, pp. 36/51. 1923. Translation: Coumpound Thoughts, in P. Geach & N. Black (eds.), Logical Investigations, Black-wells, Oxford, 1977.
R.T. Gerth and W.-P. de Roever. Proving monitors revisited: A first step towards verifying object-oriented systems. Fundamenta Informatica, North-Holland, IX:371–400, 1986.
Orna Grumberg and David Long. Model checking and modular verification. Toplas, 16(3):843–871, 1994.
J. Hooman and W.-P. de Roever. The quest goes on: towards compositional proof systems for CSP. In J.W. de Bakker, W.-P. de Roever, and G. Rozenberg, editors, Current Trends in Concurrency, LNCS 224, pages 343–395. Springer-Verlag, 1986.
C.A.R. Hoare. An axiomatic basis for computer programming. CACM, 12(10):576–580,583, 1969.
J. Hooman. Specification and compositional verification of real-time systems. LNCS 558. Springer-Verlag, 1991.
Jozef Hooman. Verifying part of the access. bus protocol using pvs. In Proc. of 15 th FSTTCS, LNCS 1026. Springer-Verlag, 1995.
J. Hooman, S. Ramesh, and W.-P. de Roever. A compositional axiomatization of Statecharts. Theoretical Computer Science, 101:289–335, 1992.
J. Hooman and O. van Roosmalen. Platform-independent verification of real-time programs. In Proc. of the Joint Workshop on Parallel and Distributed Real-Time Systems, pages 183–192. IEEE Computer Society Press, 1997.
C.B. Jones. Development methods for computer programs including a notion of interference. PhD thesis, Oxford University Computing Laboratory, 1981.
C.B. Jones. Tentative steps towards a development method for interfering programs. ACM Transactions on Programming Languages and Systems, 5(4):596–619, 1983.
Bengt Jonsson. Compositional specification and verification of distributed systems. Toplas, 16(2):259–303, March 1994.
B. Josko. Verifying the correctness of AADL-modules using model checking. In J.W. de Bakker, W.-P. de Roever, and G. Rozenberg, editors, Proc. REX Workshop on Stepwise Refinement of Distributed Systems: Models, Formalisms, Correctness, LNCS 430. Springer-Verlag, 1990.
Bernhard Josko. Modular Specification and Verification of Reactive Systems. Habilitationsschrift, Universität Oldenburg, 1993.
T.M.V. Janssen and P. van Emde-Boas. The impact of Frege’s compositionality principle for the semantics of programming and natural languages. In D. Alexander, editor, Proc. of the First Frege memorial conference, May’ 79, Jena, pages 110–129. Friedrich-Schiller Universität Jena, May 1980. previously as preprint, Report MI-UVA-79-07, Mathematisch Centrum, Amsterdam, 1979.
Rob P. Kurshan and Leslie Lamport. Verification of a multiplier: 64 bits and beyond. In Computer-Aided Verification, Proc. of the 5 th Int. Conf. CAV’ 94, LNCS 697, pages 166–174. Springer-Verlag, Berlin, Heidelberg, New-York, 1993.
S. Kleuker. Case study: Stepwise development of a communication processor using trace logic. In Andrews, Groote, and Middelburg, editors, Proc. of the International Workshop on Semantics of Specification Languages SoSL, Utrecht, 1993.
A. Kay and J.N. Reed. A specification of a telephone exchange in timed CSP. Technical Report PRG-TR-19-90, Oxford University Programming Research Group, 1990.
A. Kay and J.N. Reed. A rely and guarantee method for timed CSP. IEEE Transactions on Software Engineering, 19(6), 1993.
Orna Kupfermann and Moshe Y. Vardi. Module checking. In Proc. of GAV’ 96, LNCS 1102. Springer-Verlag, 1996.
L. Lamport. What good is temporal logic. In R.E.A. Mason, editor, Information Processing 83: Proceedings of the IFIP 9th World Congres, pages 657–668, Paris, September 1983. IFIP, North-Holland.
Kim G. Larsen. A context-dependent bisimulation between processes. Theoretical Computer Science, 49, 1987.
G.M. Levin and D. Gries. A proof technique for Communicating Sequential Processes. Acta Informatica, 15:281–302, 1981.
Kim G. Larsen and Arne Skou. Compositional verification of probabilistic processes. In W.R. Cleaveland, editor, Proc. of CONCUR’ 92, LNCS 630. Springer-Verlag, 1992.
Nancy A. Lynch and Mark R. Tuttle. Hierarchical correctness proofs for distributed algorithms. In Proc. PoDC’ 87, ACM, New York, 1987.
Kim G. Larsen and Bent Thomsen. Partial specifications and compositional specification. Theoretical Computer Science, 88:15–32, 1991.
Z. Manna. Mathematical Theory of Computation. McGraw-Hill, New York, 1974.
J. Misra and K.M. Chandy. Proofs of networks of processes. IEEE Transactions on Software Engeneering, 7(7):417–426, 1981.
J. Misra, K.M. Chandy, and T. Smith. Proving safety and liveness of communicating processes with examples. In Proc. PoDC’ 82, ACM, NEW York, 1982.
Ben Moszkowski. Some very compositional properties. In E.-R. Olderog, editor, IFIP Working Conference on Programming Concepts, Methods and Calculi (PROCOMET’ 94). North-Holland, pages 307–327, 1994.
Z. Manna and A. Pnueli. Temporal verification of Reactive Systems: Safety. Springer-Verlag, 1995.
P. Naur. Proof of algoritms by general snapshots. BIT, 6:310–316, 1966.
V. Nguyen, A. Deniers, S. Owicki, and D. Gries. A modal and temporal proof system for networks of processes. Distributed Computing, 1(1):7–25, 1986.
S. Owicki and D. Gries. An axiomatic proof technique for parallel programs. Acta Informatica, 6:319–340, 1976.
S. Owre, J. Rushby, N. Shankar, and F. von Henke. Formal verification for fault-tolerant architectures: Prolegomena to the design of PVS. IEEE Transactions on Software, 21(2):107–125, 1995.
M. Ossefort. Correctness proofs of communicating processes: Three illustrative examples from the literature. ACM Transactions on Programming Languages and Systems, 5(4):620–640, 1983.
P. Pandya and M. Joseph. P-A logic-a compositional proof system for distributed programs. Distributed Computing, 4(4), 1991.
Amir Pnueli. The temporal logic of programs. In Proceedings of the 18th Symposium on Foundations of Programming Semantics, pages 46–57, 1977.
Amir Pnueli. In transition from global to modular reasoning about programs. Logic and Models of Concurrent Systems, pages 123–144, 1984. K.R. Apt (ed.), NATO ASI Series, Springer-Verlag.
Fred B. Schneider. Decomposing properties into safety and liveness using predicate logic. Technical Report Technical Report 87-874, Dept. of Computer Science, Cornell University, Ithaca, NY, 1987.
F.B. Schneider. On Concurrent Programming. Springer-Verlag, 1997.
N. Shankar. Machine-assisted verification using theorem proving and model checking. Mathematical Methods in Program Development, 1998. Manfred Broy (ed.), Springer-Verlag.
N. Soundararajan. Axiomatic semantics of communicating sequential processes. Toplas, 6:647–662, 1984.
E. Stark. A proof technique for rely/guarantee properties. In Proceedings of 5th Conference on Foundations of Software Technology and Theoretical Computer Science, LNCS 206, pages 369–391. Springer-Verlag, 1985.
Colin Stirling. A generalization of Owicki & Gries’s Hoare logic for a concurrent while language. Theoretical Computer Science, 58:347–359, 1988.
Joseph Sifakis and Serge Yovine. Compositional specification of timed systems. In Proc. of STACS’ 96, LNCS 1046. Springer-Verlag, 1996.
B.A. Trakhtenbrot. On the power of compositional proofs for nets: relationships between completeness and modularity. Dedicated to the memory of Helena Rasiowa. Undated draft.
A. Turing. On checking a large routine. Report of a conference on highspeed automatic calculating machines, University Mathematical Laboratory, Cambridge, 1949.
Q. Xu, A. Cau, and P. Collette. On unifying assumption-commitment style proof rules for concurrency. In Jonsson and Parrow, editors, Proc. of CONCUR’ 94, LNCS 836. Springer-Verlag, 1994.
Q. Xu, W.-P. de Roever, and J. He. The rely-guarantee method for verifying shared-variable concurrent programs. Formal Aspects of Computing, 9(2): 149–174, 1997.
Q. Xu and J. He. A theory of state-based parallel programming: Part 1. In Morris, editor, Proceedings of BCS FACS 4th Refinement Workshop. Springer-Verlag, January 1991.
J. Zwiers, A. de Bruin, and W.-P. de Roever. A proof system for partial correctness of dynamic networks of processes. In Proceedings of the Conference on Logics of Programs 1983, LNCS 164, 1984.
J. Zwiers, W.-P. de Roever, and P. van Emde Boas. Compositionality and concurrent networks: soundness and completeness of a proof system. In Proceedings of 12th ICALP, LNCS 194, pages 509–519, Nafplion, Greece, jul 15–19 1985. Springer-Verlag.
J. Zwiers, U. Hannemann, Y. Lakhnech, and W.-P. de Roever. Synthesizing different development paradigms: Combining top-down with bottom-up reasoning about distributed systems. In Proceedings of FST & TCS Bangalore, LNCS 1026. Springer-Verlag, 1995.
J. Zwiers. Compositionality and Partial Correctness. LNCS 321. Springer-Verlag, 1989.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
de Roever, WP. (1998). The Need for Compositional Proof Systems: A Survey. In: de Roever, WP., Langmaack, H., Pnueli, A. (eds) Compositionality: The Significant Difference. COMPOS 1997. Lecture Notes in Computer Science, vol 1536. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-49213-5_1
Download citation
DOI: https://doi.org/10.1007/3-540-49213-5_1
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65493-3
Online ISBN: 978-3-540-49213-9
eBook Packages: Springer Book Archive