Skip to main content

Mechanical Verification of Recursive Procedures Manipulating Pointers Using Separation Logic

  • Conference paper
FM 2006: Formal Methods (FM 2006)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4085))

Included in the following conference series:

Abstract

Using a predicate transformer semantics of programs, we introduce statements for heap operations and separation logic operators for specifying programs that manipulate pointers. We prove consistent Hoare total correctness rules for pointer manipulating statements according to the predicate transformer semantics. We prove the frame rule in the context of a programming language with recursive procedures with value and result parameters and local variables, where program variables and addresses can store values of any type of the theorem prover. The theory, including the proofs, is implemented in the theorem prover PVS.

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. Back, R.J., Preoteasa, V.: An algebraic treatment of procedure refinement to support mechanical verification. Formal Aspects of Computing 17, 69–90 (2005)

    Article  MATH  Google Scholar 

  2. Back, R.J., von Wright, J.: Refinement Calculus. A systematic Introduction. Springer, Heidelberg (1998)

    MATH  Google Scholar 

  3. Church, A.: A formulation of the simple theory of types. J. Symbolic logic 5, 56–68 (1940)

    Article  MATH  MathSciNet  Google Scholar 

  4. Hoare, C.A.R.: An axiomatic basis for computer programming. Communications of the ACM 12(10), 576–580 (1969)

    Article  MATH  Google Scholar 

  5. Ishtiaq, S.S., O’Hearn, P.W.: Bi as an assertion language for mutable data structures. In: POPL 2001: Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 14–26. ACM Press, New York (2001)

    Chapter  Google Scholar 

  6. Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL — A Proof Assistant for Higher-Order Logic. LNCS, vol. 2283. Springer, Heidelberg (2002)

    MATH  Google Scholar 

  7. O’Hearn, P.W., Reynolds, J.C., Yang, H.: Local reasoning about programs that alter data structures. In: Fribourg, L. (ed.) CSL 2001 and EACSL 2001. LNCS, vol. 2142, pp. 1–19. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  8. Owre, S., Shankar, N., Rushby, J.M., Stringer-Clavert, D.W.J.: PVS language reference. Technical report, Computer Science Laboratory, SRI International (December 2001)

    Google Scholar 

  9. Preoteasa, V.: Mechanical verification of mutually recursive procedures for parsing expressions using separation logic. Technical Report 771, TUCS - Turku Centre for Computer Science (May 2006)

    Google Scholar 

  10. Reynolds, J.: Intuitionistic reasoning about shared mutable data structure. In: Millenial Perspectives in Computer Science (2000)

    Google Scholar 

  11. Reynolds, J.: Separation logic: A logic for shared mutable data structures. In: 17th Annual IEEE Symposium on Logic in Computer Science. IEEE, Los Alamitos (2002)

    Google Scholar 

  12. Tarski, A.: A lattice-theoretical fixpoint theorem and its applications. Pacific J. Math. 5, 285–309 (1955)

    MATH  MathSciNet  Google Scholar 

  13. Weber, T.: Towards mechanized program verification with separation logic. In: Marcinkowski, J., Tarlecki, A. (eds.) CSL 2004. LNCS, vol. 3210, pp. 250–264. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  14. Yang, H., O’Hearn, P.W.: A semantic basis for local reasoning. In: Nielsen, M., Engberg, U. (eds.) FOSSACS 2002. LNCS, vol. 2303, pp. 402–416. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Preoteasa, V. (2006). Mechanical Verification of Recursive Procedures Manipulating Pointers Using Separation Logic. In: Misra, J., Nipkow, T., Sekerinski, E. (eds) FM 2006: Formal Methods. FM 2006. Lecture Notes in Computer Science, vol 4085. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11813040_34

Download citation

  • DOI: https://doi.org/10.1007/11813040_34

  • Publisher Name: Springer, Berlin, Heidelberg

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

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

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics