Skip to main content

A Verification Methodology for Concurrent Software with Synchronous Communication

  • Chapter
Formal Methods and Models for System Design

Abstract

The verification methodology studied in this paper stems from investigations on respectively deduction-based model checking and semantics of concurrency. Specifically, we consider imperative programs with CSP-like communication and use a categorical semantics as foundation to extract from a program a control graph labelled by transition predicates. This logical content acts as system description for a deduction-based model checker of LTL properties. We illustrate our methodology with a concrete realisation in the form of the Mc5 verification tool written in Ocaml and using the theorem prover PVS as back-end.

Research done while both authors were members of the Computer Networking Laboratory of the Swiss Federal Institute of Technology in Lausanne, Switzerland

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 169.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 219.00
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

  • Bhat, G., Cleaveland, R., and Grumberg, O. (1995). Efficient on-the-fly model checking for CTL. In Logic in Computer Science, LICS 95, pages 388–397.

    Google Scholar 

  • Bjørner, Nikolaj S., Browne, Anca, and Manna, Zohar (1997). Automatic generation of invariants and intermediate assertions. Theoretical Computer Science, 173 (1): 49–87.

    Article  MathSciNet  Google Scholar 

  • Browne, I. A., Manna, Z., and Sipma, H. B. (1995). Generalized temporal verification diagrams. In Foundations of Software Technology and Theoretical Computer Science, FSTTCS ‘95, Bangalore, India,volume 1026 of Lecture Notes in Computer Science,pages 484–498. Springer-Verlag.

    Google Scholar 

  • Clarke, Edmund M., Grumberg, Orna, and Peled, Doron (1999). Model Checking. The MIT Press.

    Google Scholar 

  • Croie, Roy L. (1993). Categories for Types. Cambridge University Press. daVinci (2001). daVinci home page. http://www.tzi.de/daVinci. University of Bremen, Germany.

    Google Scholar 

  • Errington, Lindsay (1999a). On the semantics of message passing processes. In Proceedings of CTCS99.

    Google Scholar 

  • Errington, Lindsay (1999b). Twisted Systems. PhD thesis, Department of Computing, Imperial College, London.

    Google Scholar 

  • Goguen, J.A., Thatcher, J.W., Wagner, E.G., and Wright, J.B. (1977). Initial algebra semantics and continuous algebras. Journal of the ACM, 24: 68–95.

    Article  MathSciNet  MATH  Google Scholar 

  • Hoare, C. A. R. (1985). Communicating Sequential Processes. Prentice Hall International Series on Computer Science. Prentice-Hall.

    MATH  Google Scholar 

  • Hoare, C.A.R. (1969). An axiomatic basis for computer programming. Communications of the ACM, 12 (10).

    Google Scholar 

  • Mac Lane, Saunders (1971). Categories for the Working Mathematician. Springer.

    Google Scholar 

  • Manna, Zohar, Browne, Anca, Sipma, Henny B., and Uribe, Tomas E. (1998). Visual abstractions for temporal verification. In AMAST ‘98,volume 1548 of Lecture Notes in Computer Science,pages 28–41. Springer-Verlag.

    Google Scholar 

  • Manna, Zohar and Pnueli, Amir (1992). The Temporal Logic of Reactive and Concurrent Systems. Springer Verlag.

    Google Scholar 

  • Milner, Robin (1990). Operational and algebraic semantics of concurrent processes. In van Leeuwen, Jan, editor, Handbook of Theoretical Computer Science,volume B: Formal Models and Semantics, chapter 1202–1242. Elsevier Science Publishers.

    Google Scholar 

  • Ocaml (2000). The Objective Caml system, release 3.00. INRIA.

    Google Scholar 

  • Owre, S., Rajan, S., Rushby, J.M., Shankar, N., and Srivas, M.K. (1996). PVS: Combining specification, proof checking, and model checking. In Alur, Rajeev and Henzinger, Thomas A., editors, Computer-Aided Verification, CAV ‘96, volume 1102 of Lecture Notes in Computer Science, pages 411–414, New Brunswick, NJ. Springer-Verlag.

    Chapter  Google Scholar 

  • Owre, Sam, Rushby, John, Shankar, Natarajan, and von Henke, Friedrich (1995).

    Google Scholar 

  • Formal verification for fault-tolerant architectures: Prolegomena to the design of PVS. IEEE Transactions on Software Engineering,21(2):107–125.

    Google Scholar 

  • Sipma, Henny, Uribe, Tomas E., and Manna, Zohar (1999). Deductive model checking. Formal Methods in System Design, 15: 49–74.

    Article  Google Scholar 

  • Sprenger, Christoph (2000). Deductive Local Model Checking — On the Verification of CTL Properties of Reactive Systems. Ph.D. Thesis no. 2215, Department of Computer Science, Swiss Federal Institute of Technology, Lausanne, Switzerland.

    Google Scholar 

  • Thomas, W. (1990). Automata on infinite objects. In van Leeuwen, J., editor, Handbook of Theoretical Computer Science, volume B, pages 133–191. Elsevier Science Publishers, Amsterdam.

    Google Scholar 

  • Worytkiewicz, Krzysztof (2000). Components and Synchronous Communication in Categories of Processes. Ph.D. Thesis no. 2131, Department of Computer Science, Swiss Federal Institute of Technology, Lausanne, Switzerland.

    Google Scholar 

  • Worytkiewicz, Krzysztof (2002). Concrete process categories. In Kurz, Alexander, editor, Electronic Notes in Theoretical Computer Science,volume 68. Elsevier Science Publishers.

    Google Scholar 

  • Worytkiewicz, Krzysztof (2003). Paths and simulations. In Richard Blute, Philipp Scott and Selinger, Peter, editors, Electronic Notes in Theoretical Computer Science. Elsevier Science Publishers. To appear.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer Science+Business Media Dordrecht

About this chapter

Cite this chapter

Sprenger, C., Worytkiewicz, K. (2004). A Verification Methodology for Concurrent Software with Synchronous Communication. In: Gupta, R., Guernic, P.L., Shukla, S.K., Talpin, JP. (eds) Formal Methods and Models for System Design. Springer, Boston, MA. https://doi.org/10.1007/978-1-4020-8052-4_6

Download citation

  • DOI: https://doi.org/10.1007/978-1-4020-8052-4_6

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-1-4419-5464-0

  • Online ISBN: 978-1-4020-8052-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics