Skip to main content

Mechanical verification of mutually recursive procedures

  • Session 3A
  • Conference paper
  • First Online:
Book cover Automated Deduction — Cade-13 (CADE 1996)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 1104))

Included in the following conference series:

Abstract

The verification of programs that contain mutually recursive procedures is a difficult task, and one which has not been satisfactorily addressed in the literature. Published proof rules have been later discovered to be unsound. Verification Condition Generator (VCG) tools have been effective in partially automating the verification of programs, but in the past these VCG tools have in general not themselves been proven, so any proof using and depending on these VCGs might not be sound. In this paper we present a set of proof rules for proving the partial correctness of programs with mutually recursive procedures, together with a VCG that automates the use of the proof rules in program correctness proofs. The soundness of the proof rules and the VCG itself have been mechanically proven within the Higher Order Logic theorem prover, with respect to the underlying structural operational semantics of the programming language. This proof of soundness then forms the core of an implementation of the VCG that significantly eases the verification of individual programs with complete security.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Camilleri, J., Melham, T.: Reasoning with Inductively Defined Relations in the HOL Theorem Prover. Technical Report No. 265, University of Cambridge Computer Laboratory, August 1992

    Google Scholar 

  2. Cook, S.: Soundness and Completeness of an Axiom System for Program Verification. SIAM Journal on Computing, Vol. 7, No. 1 (February 1978) 70–90

    Article  Google Scholar 

  3. Cousineau, G., Gordon, M., Huet, G., Milner, R., Paulson, L., Wadsworth, C.: The ML Handbook. INRIA (1986)

    Google Scholar 

  4. Gordon, M.: Mechanizing Programming Logics in Higher Order Logic, in Current Trends in Hardware Verification and Automated Theorem Proving, ed. P.A. Subrahmanyam and G. Birtwistle.Springer-Verlag, New York (1989) 387–439

    Google Scholar 

  5. Gordon, M., Melham, T.: Introduction to HOL, A Theorem Proving Environment for Higher Order Logic. Cambridge University Press, Cambridge (1993)

    Google Scholar 

  6. Gries, D., Levin, G.: Assignment and Procedure Call Proof Rules. ACM TOPLAS 2 (1980) 564–579

    Article  Google Scholar 

  7. Guttag, J., Horning, J., London, R.: A Proof Rule for Euclid Procedures, in Formal Description of Programming Language Concepts, ed. E.J. Neuhold, North-Holland, Amsterdam (1978) 211–220

    Google Scholar 

  8. Homeier, P., Martin, D.: A Mechanically Verified Verification Condition Generator. The Computer Journal 38 No. 2 (1995) 131–141

    Article  Google Scholar 

  9. Igarashi, S., London, R., Luckham, D.: Automatic Program Verification I: A Logical Basis and its Implementation. ACTA Informatica 4 (1975) 145–182

    Article  Google Scholar 

  10. Melham, T.: A Package for Inductive Relation Definitions in HOL, in Proceedings of the 1991 International Workshop on the HOL Theorem Proving System and its Applications, Davis, August 1991, ed. Archer, M., Joyce, J., Levitt, K., Windley, P. IEEE Computer Society Press (1992) 350–357

    Google Scholar 

  11. Moriconi, M., Schwartz, R.: Automatic Construction of Verification Condition Generators From Hoare Logics, in Proceedings of ICALP 8, Springer Lecture Notes in Computer Science 115 (1981) 363–377

    Google Scholar 

  12. Ragland, L.: A Verified Program Verifier. Technical Report No. 18, Department of Computer Sciences, University of Texas at Austin (May 1973)

    Google Scholar 

  13. Sokolowski, S.: Partial Correctness: The Term-Wise Approach. Science of Computer Programming 4 (1984) 141–157

    Article  Google Scholar 

  14. Stoughton, A.: Substitution Revisited. Theoretical Computer Science 59 (1988) 317–325

    Article  Google Scholar 

  15. Winskel, G.: The Formal Semantics of Programming Languages, An Introduction. The MIT Press, Cambridge, Massachusetts (1993)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

M. A. McRobbie J. K. Slaney

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Homeier, P.V., Martin, D.F. (1996). Mechanical verification of mutually recursive procedures. In: McRobbie, M.A., Slaney, J.K. (eds) Automated Deduction — Cade-13. CADE 1996. Lecture Notes in Computer Science, vol 1104. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61511-3_81

Download citation

  • DOI: https://doi.org/10.1007/3-540-61511-3_81

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-61511-8

  • Online ISBN: 978-3-540-68687-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics