Automated Verification of Recursive Programs with Pointers

  • Frank de Boer
  • Marcello Bonsangue
  • Jurriaan Rot
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7364)

Abstract

We present a fully automated method for the verification of annotated recursive programs with dynamic pointer structures. Assertions are expressed in a dialect of dynamic logic extended with nominals and tailored to heap structures, in which one can express complex reachability properties. Verification conditions are generated using a novel calculus for computing the strongest postcondition of statements manipulating the heap, such as dynamic allocation and field-assignment. Further, we introduce a new decidable tableaux-based method and its prototype implementation to automatically check these verification conditions.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Benedikt, M., Reps, T., Sagiv, M.: A Decidable Logic for Describing Linked Data Structures. In: Swierstra, S.D. (ed.) ESOP 1999. LNCS, vol. 1576, pp. 2–19. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  2. 2.
    Berdine, J., Calcagno, C., O’Hearn, P.W.: A Decidable Fragment of Separation Logic. In: Lodaya, K., Mahajan, M. (eds.) FSTTCS 2004. LNCS, vol. 3328, pp. 97–109. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  3. 3.
    Blackburn, P., de Rijke, M., Venema, Y.: Modal logic. Cambridge University Press (2001)Google Scholar
  4. 4.
    Bouajjani, A., Drăgoi, C., Enea, C., Sighireanu, M.: A Logic-Based Framework for Reasoning about Composite Data Structures. In: Bravetti, M., Zavattaro, G. (eds.) CONCUR 2009. LNCS, vol. 5710, pp. 178–195. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  5. 5.
    Brotherston, J., Kanovich, M.I.: Undecidability of propositional separation logic and its neighbours. In: LICS 2010, pp. 130–139. IEEE (2010)Google Scholar
  6. 6.
    Clarke, E.M.: Programming language constructs for which it is impossible to obtain good hoare-like axioms. Journal of the ACM 26, 126–147 (1979)CrossRefGoogle Scholar
  7. 7.
    Clavel, M., Eker, S., Lincoln, P., Meseguer, J.: Principles of maude. ENTCS, vol. 4. Elsevier (2000)Google Scholar
  8. 8.
    Harel, D., Kozen, D., Tiuryn, J.: Dynamic Logic. MIT Press (2000)Google Scholar
  9. 9.
    Lahiri, S.K., Qadeer, S.: Verifying properties of well-founded linked lists. In: POPL 2006, pp. 115–126. ACM (2006)Google Scholar
  10. 10.
    Madhusudan, P., Parlato, G., Qiu, X.: Decidable logics combining heap structures and data. In: POPL 2011, pp. 611–622. ACM (2011)Google Scholar
  11. 11.
    Morris, J.M.: Assignment and linked data structures. In: Theoretical Foundations of Programming Methodology (1982)Google Scholar
  12. 12.
    Naumann, D.A.: Calculating sharp adaptation rules. Information Processing Letters 77 (2000)Google Scholar
  13. 13.
    Nelson, G.: Verifying Reachability Invariants of Linked Structures. In: POPL 1983, pp. 38–47. ACM (1983)Google Scholar
  14. 14.
    Reynolds, J.C.: Separation logic: a logic for shared mutable data structures. In: LICS 2002, pp. 55–74. IEEE (2002)Google Scholar
  15. 15.
    Sattler, U., Vardi, M.Y.: The hybrid μ-calculus. In: Goré, R.P., Leitsch, A., Nipkow, T. (eds.) IJCAR 2001. LNCS (LNAI), vol. 2083, pp. 76–91. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  16. 16.
    Tanabe, Y., Sekizawa, T., Yuasa, Y., Takahashi, K.: Pre- and post-conditions expressed in variants of the modal μ-calculus. IEICE Transactions (2009)Google Scholar
  17. 17.
    Yorsh, G., Rabinovich, A.M., Sagiv, M., Meyer, A., Bouajjani, A.: A Logic of Reachable Patterns in Linked Data-Structures. In: Aceto, L., Ingólfsdóttir, A. (eds.) FOSSACS 2006. LNCS, vol. 3921, pp. 94–110. Springer, Heidelberg (2006)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Frank de Boer
    • 1
    • 2
  • Marcello Bonsangue
    • 1
  • Jurriaan Rot
    • 1
  1. 1.Leiden Institute of Advanced Computer Science (LIACS)LeidenNetherlands
  2. 2.Centrum Wiskunde en Informatica (CWI)AmsterdamNetherlands

Personalised recommendations