Skip to main content

The Need for Compositional Proof Systems: A Survey

  • Conference paper
  • First Online:
Compositionality: The Significant Difference (COMPOS 1997)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1536))

Included in the following conference series:

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.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

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

    Article  MATH  Google Scholar 

  2. Martin Abadi and Leslie Lamport. The existence of refinement mappings. Theoretical Computer Science, 82(2):253–284, 1991.

    Article  MATH  MathSciNet  Google Scholar 

  3. Martin Abadi and Leslie Lamport. Comparing specifications. Toplas, 15(1):73–132, 1993.

    Article  Google Scholar 

  4. Martin Abadi and Leslie Lamport. Conjoining specifications. Toplas, 17(3):507–534, May 1995.

    Google Scholar 

  5. Gregory R. Andrews. Concurrent Programming, Principles and Practice. The Benjamin/Cummings Publishing Company, 1991.

    Google Scholar 

  6. K.R. Apt and E.R. Olderog. Verification of Sequential and Concurrent Programs. Springer-Verlag, 1991.

    Google Scholar 

  7. Martin Abadi and Gordon D. Plotkin. A logical view of composition. Theoretical Computer Science, 114(1):3–30, 1993.

    Article  MATH  MathSciNet  Google Scholar 

  8. B. Alpern and F.B. Schneider. Defining liveness. Information Processing Letters, 21(4):181–185, October 1985.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  15. K.M. Chandy and J. Misra. The drinking-philosophers problem. TOPLAS, 6(4):632–646, 1984.

    Article  Google Scholar 

  16. Edward Chang, Zohar Manna, and Amir Pnueli. Compositional verification of real-time systems. In Proc LICS’ 94. IEEE Computer Society Press, 1994.

    Google Scholar 

  17. Pierre Collette. Application of the composition principle to UNITY-like specifications. In Proc. of TAPSOFT’ 93, LNCS 668. Springer-Verlag, 1993.

    Google Scholar 

  18. Pierre Collette. An explanatary presentation of composition rules for assumption-commitment specifications. Information Processing Letters, 50(1):31–35, 1994.

    Article  MATH  Google Scholar 

  19. Ole-Johan Dahl. Verifiable Programming. Prentice Hall, 1992.

    Google Scholar 

  20. F.S. de Boer. Reasoning about asynchronous communication in dynamically evolving object structures. In CONCUR’ 98, volume 1466 of LNCS. Springer-Verlag, 1998.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  25. E.W. Dijkstra. The structure of the “THE” multiprogramming system. CACM, 11(5):341–346, 1968.

    MATH  Google Scholar 

  26. E.W. Dijkstra. EWD 264. Published in an extended version as [Dij69b], August 1969.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  29. E.W. Dijkstra. A discipline of programming. Prentice Hall, 1976.

    Google Scholar 

  30. E.W. Dijkstra. Selecting Writings on Computing: A Personal Perspective. Springer-Verlag, 1982.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    MathSciNet  Google Scholar 

  36. Nissim Francez. Program Verification. Addison-Wesley, Wokingham, 1992.

    MATH  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  39. Orna Grumberg and David Long. Model checking and modular verification. Toplas, 16(3):843–871, 1994.

    Article  Google Scholar 

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

    Chapter  Google Scholar 

  41. C.A.R. Hoare. An axiomatic basis for computer programming. CACM, 12(10):576–580,583, 1969.

    MATH  Google Scholar 

  42. J. Hooman. Specification and compositional verification of real-time systems. LNCS 558. Springer-Verlag, 1991.

    MATH  Google Scholar 

  43. Jozef Hooman. Verifying part of the access. bus protocol using pvs. In Proc. of 15 th FSTTCS, LNCS 1026. Springer-Verlag, 1995.

    Google Scholar 

  44. J. Hooman, S. Ramesh, and W.-P. de Roever. A compositional axiomatization of Statecharts. Theoretical Computer Science, 101:289–335, 1992.

    Article  MATH  MathSciNet  Google Scholar 

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

    Google Scholar 

  46. C.B. Jones. Development methods for computer programs including a notion of interference. PhD thesis, Oxford University Computing Laboratory, 1981.

    Google Scholar 

  47. C.B. Jones. Tentative steps towards a development method for interfering programs. ACM Transactions on Programming Languages and Systems, 5(4):596–619, 1983.

    Article  MATH  Google Scholar 

  48. Bengt Jonsson. Compositional specification and verification of distributed systems. Toplas, 16(2):259–303, March 1994.

    Google Scholar 

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

    Google Scholar 

  50. Bernhard Josko. Modular Specification and Verification of Reactive Systems. Habilitationsschrift, Universität Oldenburg, 1993.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  55. A. Kay and J.N. Reed. A rely and guarantee method for timed CSP. IEEE Transactions on Software Engineering, 19(6), 1993.

    Google Scholar 

  56. Orna Kupfermann and Moshe Y. Vardi. Module checking. In Proc. of GAV’ 96, LNCS 1102. Springer-Verlag, 1996.

    Google Scholar 

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

    Google Scholar 

  58. Kim G. Larsen. A context-dependent bisimulation between processes. Theoretical Computer Science, 49, 1987.

    Google Scholar 

  59. G.M. Levin and D. Gries. A proof technique for Communicating Sequential Processes. Acta Informatica, 15:281–302, 1981.

    Article  MATH  MathSciNet  Google Scholar 

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

    Google Scholar 

  61. Nancy A. Lynch and Mark R. Tuttle. Hierarchical correctness proofs for distributed algorithms. In Proc. PoDC’ 87, ACM, New York, 1987.

    Google Scholar 

  62. Kim G. Larsen and Bent Thomsen. Partial specifications and compositional specification. Theoretical Computer Science, 88:15–32, 1991.

    Article  MATH  MathSciNet  Google Scholar 

  63. Z. Manna. Mathematical Theory of Computation. McGraw-Hill, New York, 1974.

    MATH  Google Scholar 

  64. J. Misra and K.M. Chandy. Proofs of networks of processes. IEEE Transactions on Software Engeneering, 7(7):417–426, 1981.

    Article  MathSciNet  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  67. Z. Manna and A. Pnueli. Temporal verification of Reactive Systems: Safety. Springer-Verlag, 1995.

    Google Scholar 

  68. P. Naur. Proof of algoritms by general snapshots. BIT, 6:310–316, 1966.

    Article  Google Scholar 

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

    Article  MATH  Google Scholar 

  70. S. Owicki and D. Gries. An axiomatic proof technique for parallel programs. Acta Informatica, 6:319–340, 1976.

    Article  MATH  MathSciNet  Google Scholar 

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

    Article  Google Scholar 

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

    Article  MATH  Google Scholar 

  73. P. Pandya and M. Joseph. P-A logic-a compositional proof system for distributed programs. Distributed Computing, 4(4), 1991.

    Google Scholar 

  74. Amir Pnueli. The temporal logic of programs. In Proceedings of the 18th Symposium on Foundations of Programming Semantics, pages 46–57, 1977.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  77. F.B. Schneider. On Concurrent Programming. Springer-Verlag, 1997.

    Google Scholar 

  78. N. Shankar. Machine-assisted verification using theorem proving and model checking. Mathematical Methods in Program Development, 1998. Manfred Broy (ed.), Springer-Verlag.

    Google Scholar 

  79. N. Soundararajan. Axiomatic semantics of communicating sequential processes. Toplas, 6:647–662, 1984.

    Article  MATH  Google Scholar 

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

    Google Scholar 

  81. Colin Stirling. A generalization of Owicki & Gries’s Hoare logic for a concurrent while language. Theoretical Computer Science, 58:347–359, 1988.

    Article  MATH  MathSciNet  Google Scholar 

  82. Joseph Sifakis and Serge Yovine. Compositional specification of timed systems. In Proc. of STACS’ 96, LNCS 1046. Springer-Verlag, 1996.

    Google Scholar 

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

    Google Scholar 

  84. A. Turing. On checking a large routine. Report of a conference on highspeed automatic calculating machines, University Mathematical Laboratory, Cambridge, 1949.

    Google Scholar 

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

    Google Scholar 

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

    Article  MATH  Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  91. J. Zwiers. Compositionality and Partial Correctness. LNCS 321. Springer-Verlag, 1989.

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics