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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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.
Martín Abadi and Leslie Lamport. Composing specifications. ACM Transactions on Programming Languages and Systems, 15(1):73–132, 1993.
Martín Abadi and Leslie Lamport. Conjoining specifications. ACM Transactions on Programming Languages and Systems, 17(3):507–534, 1995.
Martín 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. A Survey of Verification Techniques for Parallel Programs, volume 191 of Lecture Notes in Computer Science. Springer-Verlag, 1985.
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.
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.
K. Mani Chandy and Jayadev Misra. Parallel Program Design: A Foundation. Addison-Wesley, Reading, MA, 1988.
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.
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.
Pierre Collette. An explanatory presentation of composition rules for assumption-commitment specifications. Information Processing Letters, 50(1):31–35, April 1994.
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.
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.
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.
Orna Grumberg and David E. Long. Model checking and modular verification. ACM Transactions on Programming Languages and Systems, 16(3):843–871, 1994.
C. A. R. Hoare. Communicating Sequential Processes. Prentice Hall International Series in Computer Science. Prentice Hall, Hemel Hempstead, UK, 1985.
G. J. Holzmann. Design and Validation of Computer Protocols. Prentice-Hall, 1991.
J. Hooman. Specification and Compositional Verification of Real-Time Systems, volume 558 of Lecture Notes in Computer Science. Springer Verlag, 1991.
C. B. Jones. Tentative steps toward a development method for interfering programs. ACM TOPLAS, 5(4):596–619, 1983.
B. Josko. Verifying the correctness of AADL modules using model checking. In de Bakker et al. [dBdRR90], pages 386–400.
R.P. Kurshan. Automata-Theoretic Verification of Coordinating Processes. Princeton University Press, Princeton, NJ, 1993.
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.
Leslie Lamport. The temporal logic of actions. ACM TOPLAS, 16(3):872–923, May 1994.
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.
Jayadev Misra and K. Mani Chandy. Proofs of networks of processes. IEEE Transactions on Software Engineering, 7(4):417–426, July 1981.
R. Milner. A Calculus of Communicating Systems, volume 92 of Lecture Notes in Computer Science. Springer-Verlag, 1980.
Zohar Manna and Amir Pnueli. The Temporal Logic of Reactive and Concurrent Systems, Volume 1: Specification. Springer-Verlag, New York, NY, 1992.
S. Owicki and D. Gries. An axiomatic proof technique for parallel programs. Acta Informatica, 6:319–340, 1976.
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.
P. K. Pandya and M. Joseph. P-A logic — a compositional proof system for distributed programs. Distributed Computing, 5(1):37–54, 1991.
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.
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.
A. Udaya Shankar. An introduction to assertional reasoning for concurrent systems. ACM Computing Surveys, 25(3):225–262, September 1993.
N. Shankar. A lazy approach to compositional verification. Technical Report SRI-CSL-93-8, Computer Science Laboratory, SRI International, Menlo Park, CA, December 1993.
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.
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.
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.
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.
J. Zwiers. Compositionality, Concurrency and Partial Correctness, volume 321 of Lecture Notes in Computer Science. Springer Verlag, 1989. 564 N. Shankar
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
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