Skip to main content

Lazy Compositional Verication

  • 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

Existing methodologies for the verification of concurrent systems are effective for reasoning about global properties of small systems. For large systems, these approaches become expensive both in terms of computational and human effort. A compositional verification methodology can reduce the verification effort by allowing global system properties to be derived from local component properties. For this to work, each component must be viewed as an open system interacting with a well-behaved environment. Much of the emphasis in compositional verification has been on the assume-guarantee paradigm where component properties are verified contingent on properties that are assumed of the environment.We highlight an alternate paradigm called lazy composition where the component properties are proved by composing the component with an abstract environment.We present the main ideas underlying lazy composition along with illustrative examples, and contrast it with the assume-guarantee approach. The main advantage of lazy composition is that the proof that one component meets the expectations of the other components, can be delayed till sufficient detail has been added to the design.

Supported by the Air Force Office of Scientific Research under contract F49620-95-C0044 and by the National Science Foundation under contract CCR-9509931 and CCR-9300444. Based on earlier work [Sha93b] funded by Naval Research Laboratory (NRL) under contract N00015-92-C-2177. Connie Heitmeyer, Ralph Jeffords, and Pierre Collette gave useful feeback on the work cited above. John Rushby, Sam Owre, and Nikolaj Bjørner provided detailed comments on drafts of this paper. Presentations of earlier versions of this work at the meetings of IFIP Working Group 2.3 and at COMPOS’97 yielded valuable insights and criticisms. Martín Abadi and Leslie Lamport prompt and helpful in their responses to various technical queries and with feedback on earlier drafts.

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. Rajeev Alur and Thomas A. Henzinger. Reactive modules. In Proceedings, 11 th Annual IEEE Symposium on Logic in Computer Science, pages 207–218, New Brunswick, New Jersey, 27–30 July 1996. IEEE Computer Society Press.

    Google Scholar 

  2. Martín Abadi and Leslie Lamport. Composing specifications. ACM Transactions on Programming Languages and Systems, 15(1):73–132, 1993.

    Article  Google Scholar 

  3. Martín Abadi and Leslie Lamport. Conjoining specifications. ACM Transactions on Programming Languages and Systems, 17(3):507–534, 1995.

    Article  Google Scholar 

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

    Article  MATH  MathSciNet  Google Scholar 

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

    Google Scholar 

  6. H. Barringer. A Survey of Verification Techniques for Parallel Programs, volume 191 of Lecture Notes in Computer Science. Springer-Verlag, 1985.

    MATH  Google Scholar 

  7. K. A. Bartlett, R. A. Scantlebury, and P. T. Wilkinson. A note on reliable full-duplex transmission over half-duplex links. Communications of the ACM, 12(5):260, 261, May 1969.

    Google Scholar 

  8. E. M. Clarke, E. A. Emerson, and A. P. Sistla. Automatic verification of fiinite-state concurrent systems using temporal logic specifications. ACM Transactions on Programming Languages and Systems, 8(2):244–263, April 1986.

    Google Scholar 

  9. K. Mani Chandy and Jayadev Misra. Parallel Program Design: A Foundation. Addison-Wesley, Reading, MA, 1988.

    MATH  Google Scholar 

  10. Edward Chang, Zohar Manna, and Amir Pnueli. Compositional verification of real-time systems. In Proceedings, Ninth Annual IEEE Symposium on Logic in Computer Science, pages 458–465, Paris, France, 4–7 July 1994. IEEE Computer Society Press.

    Google Scholar 

  11. P. Collette. Application of the composition principle to Unity-like specifications. In M.-C. Gaudel and J.-P. Jouannaud, editors, Proceedings of TAPSOFT’ 93, volume 668 of Lecture Notes in Computer Science, pages 230–242, Berlin, 1993. Springer-Verlag.

    Google Scholar 

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

    Google Scholar 

  13. J. W. de Bakker, W.-P. de Roever, and G. Rozenberg, editors. Stepwise Refinement of Distributed Systems: Models, Formalisms, Correctness, volume 430 of Lecture Notes in Computer Science. Springer Verlag, 1990.

    Google Scholar 

  14. J. W. de Bakker, W.-P. de Roever, and G. Rozenberg, editors. A Decade of Concurrency: Reflections and Perspectives, volume 803 of Lecture Notes in Computer Science, Noordewijkerhout, The Netherlands, 1994. Springer Verlag.

    MATH  Google Scholar 

  15. E. Allen Emerson. Temporal and modal logic. In Jan van Leeuwen, editor, Handbook of Theoretical Computer Science, volume B: Formal Models and Semantics, chapter 16, pages 995–1072. Elsevier and MIT press, Amsterdam, The Netherlands, and Cambridge, MA, 1990.

    Google Scholar 

  16. Orna Grumberg and David E. Long. Model checking and modular verification. ACM Transactions on Programming Languages and Systems, 16(3):843–871, 1994.

    Article  Google Scholar 

  17. C. A. R. Hoare. Communicating Sequential Processes. Prentice Hall International Series in Computer Science. Prentice Hall, Hemel Hempstead, UK, 1985.

    MATH  Google Scholar 

  18. G. J. Holzmann. Design and Validation of Computer Protocols. Prentice-Hall, 1991.

    Google Scholar 

  19. J. Hooman. Specification and Compositional Verification of Real-Time Systems, volume 558 of Lecture Notes in Computer Science. Springer Verlag, 1991.

    MATH  Google Scholar 

  20. C. B. Jones. Tentative steps toward a development method for interfering programs. ACM TOPLAS, 5(4):596–619, 1983.

    Article  MATH  Google Scholar 

  21. B. Josko. Verifying the correctness of AADL modules using model checking. In de Bakker et al. [dBdRR90], pages 386–400.

    Google Scholar 

  22. R.P. Kurshan. Automata-Theoretic Verification of Coordinating Processes. Princeton University Press, Princeton, NJ, 1993.

    Google Scholar 

  23. O. Kupferman and M. Y. Vardi. Module checking. In R. Alur and T. A. Henzinger, editors, Computer-Aided Verification96, volume 1102 of Lecture Notes in Computer Science, pages 75–86. Springer Verlag, 1996.

    Google Scholar 

  24. Leslie Lamport. The temporal logic of actions. ACM TOPLAS, 16(3):872–923, May 1994.

    Google Scholar 

  25. N.A. Lynch and M.R. Tuttle. Hierarchical correctness proofs for distributed algorithms. In Proceedings of the sixth Annual Symposium on Principles of Distributed Computing, New York, pages 137–151. ACM Press, 1987.

    Google Scholar 

  26. Jayadev Misra and K. Mani Chandy. Proofs of networks of processes. IEEE Transactions on Software Engineering, 7(4):417–426, July 1981.

    Google Scholar 

  27. R. Milner. A Calculus of Communicating Systems, volume 92 of Lecture Notes in Computer Science. Springer-Verlag, 1980.

    MATH  Google Scholar 

  28. Zohar Manna and Amir Pnueli. The Temporal Logic of Reactive and Concurrent Systems, Volume 1: Specification. Springer-Verlag, New York, NY, 1992.

    Google Scholar 

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

    Article  MATH  MathSciNet  Google Scholar 

  30. S. Owre, J. M. Rushby, and N. Shankar. PVS: A prototype verification system. In Deepak Kapur, editor, 11th International Conference on Automated Deduction (CADE), volume 607 of Lecture Notes in Artificial Intelligence, pages 748–752, Saratoga, NY, June 1992. Springer-Verlag.

    Google Scholar 

  31. P. K. Pandya and M. Joseph. P-A logic — a compositional proof system for distributed programs. Distributed Computing, 5(1):37–54, 1991.

    Article  MATH  MathSciNet  Google Scholar 

  32. A. Pnueli. In transition from global to modular temporal reasoning about programs. In K. R. Apt, editor, Logic and Models of Concurrent Systems, NATO-ASI, pages 123–144. Springer Verlag, 1984.

    Google Scholar 

  33. Fred B. Schneider. Decomposing properties into safety and liveness using predicate logic. Technical Report 87-874, Department of Computer Science, Cornell University, Ithaca, NY, October 1987.

    Google Scholar 

  34. A. Udaya Shankar. An introduction to assertional reasoning for concurrent systems. ACM Computing Surveys, 25(3):225–262, September 1993.

    Google Scholar 

  35. N. Shankar. A lazy approach to compositional verification. Technical Report SRI-CSL-93-8, Computer Science Laboratory, SRI International, Menlo Park, CA, December 1993.

    Google Scholar 

  36. N. Shankar. Machine-assisted verification using theorem proving and model checking. In Manfred Broy and Birgit Scheider, editors, Mathematical Methods in Program Development, volume 158 of NATO ASI Series F: Computer and Systems Science, pages 499–528. Springer, 1997.

    Google Scholar 

  37. E. W. Stark. A proof technique for rely/guarantee properties. In S. N. Maheshwari, editor, Foundations of Software Technology and Theoretical Computer Science, volume 206 of Lecture Notes in Computer Science, pages 369–391. Springer Verlag, 1985.

    Google Scholar 

  38. Q.-W. Xu, A. Cau, and P. Collette. On unifying assumption-commitment style proof rules for concurrency. In B. Jonsson and J. Parrow, editors, CONCUR’94, volume 836 of Lecture Notes in Computer Science, pages 267–282. Springer Verlag, 1994.

    Google Scholar 

  39. Q.-W. Xu, W.-P. de Roever, and J.-F. He. The rely-guarantee method for verifying shared variable concurrent programs. Formal Aspects of Computing, 9(2):149–174, 1997.

    Article  MATH  Google Scholar 

  40. J. Zwiers. Compositionality, Concurrency and Partial Correctness, volume 321 of Lecture Notes in Computer Science. Springer Verlag, 1989. 564 N. Shankar

    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

Shankar, N. (1998). Lazy Compositional Verication. 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_21

Download citation

  • DOI: https://doi.org/10.1007/3-540-49213-5_21

  • 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