Skip to main content

Mechanizing a programming logic for the concurrent programming language microSR in HOL

  • Conference paper
  • First Online:

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

Abstract

This paper presents our current effort to formally derive, using HOL, a sound Hoare logic for the concurrent programming language microSR, a derivative of SR. Our methodology is built on Gordon's work on mechanizing programming logics for a small sequential programming language. The constructs of microSR include those basic to common sequential programming languages, in addition to an asynchronous send statement, a synchronous receive statement, a guarded communication input statement, and a co statement for specifying concurrent execution. This language has the appearance of a high-level system programming language that supports distributed applications. The Hoare logic for microSR with concurrency features presented in this paper has been formally proven to be sound within HOL. The logic we derived allows one to reason and state formal assertions about concurrently executing processes that do not share any data objects, but communicate through shared channels.

This work was sponsored in part by the US Department of Defense.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. G.R. Andrews, R.A. Olsson, M. Coffin, I.J.P. Elshoff, K. Nilsen, T. Purdin, and G. Townsend.: An Overview of the SR Language and Implementation. ACM Transactions on Programming Languages and Systems 10, 1 (January 1988), 51–86.

    Google Scholar 

  2. G.R. Andrews.: Concurrent Programming: Principles and Practice. The Benjamin/Cummings Publishing Company, Inc. Redwood City, CA, 1991.

    Google Scholar 

  3. G.R. Andrews and R.A. Olsson.: The SR Programming Language: Concurrency in Practice. Benjamin/Cummings Publishing Company, Inc. Redwood City, CA, 1993.

    Google Scholar 

  4. W.R. Bevier, W.A. Hunt, J.S. Moore, and W.D. Young.: An approach to systems verification. Journal of Automated Reasoning, 5:411–428, 1989.

    Google Scholar 

  5. M. Chandy and J. Misra.: Parallel Program Design: A Foundation of Programming Logic. Addison-Wesley Publishing Company, Inc. 1988.

    Google Scholar 

  6. M. J. C. Gordon.: Mechanizing Programming Logics in Higher Order Logic. In: Current Trends in Hardware Verification and Automated Theorem Proving. Springer-Verlag, New York, 1989.

    Google Scholar 

  7. W. Harrison, K. Levitt, and M. Archer.: A HOL Mechanization of the Axiomatic Semantics of a Simple Distributed Programming Language. In: Higher Order Logic Theorem Proving and Its Applications. North-Holland, Netherlands, 1993.

    Google Scholar 

  8. C.A.R. Hoare.: Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs, N.J., 1985.

    Google Scholar 

  9. J.J. Joyce.: A Verified Compiler for a Verified Microprocessor. Technical Report No. 167, Computer Laboratory, University of Cambridge, March 1989.

    Google Scholar 

  10. L. C. Paulson.: Logic and Computation: Interactive Proof with Cambridge LCF. Cambridge; New York: Cambridge University Press, 1987.

    Google Scholar 

  11. W. D. Young.: A Mechanically Verified Code Generator. Journal of Automated Reasoning, Vol. 5: 493–518, 1989.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Jeffrey J. Joyce Carl-Johan H. Seger

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Zhang, C. et al. (1994). Mechanizing a programming logic for the concurrent programming language microSR in HOL. In: Joyce, J.J., Seger, CJ.H. (eds) Higher Order Logic Theorem Proving and Its Applications. HUG 1993. Lecture Notes in Computer Science, vol 780. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57826-9_123

Download citation

  • DOI: https://doi.org/10.1007/3-540-57826-9_123

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57826-0

  • Online ISBN: 978-3-540-48346-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics