Automated Verification of Recursive Programs with Pointers

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.

[1]  Robin Milner,et al.  Theories for the Global Ubiquitous Computer , 2004, FoSSaCS.

[2]  Edmund M. Clarke,et al.  Programming Language Constructs for Which It Is Impossible To Obtain Good Hoare Axiom Systems , 1979, JACM.

[3]  Joseph M. Morris Assignment and Linked Data Structures , 1982 .

[4]  Antoine Meyer,et al.  A logic of reachable patterns in linked data-structures , 2006, J. Log. Algebraic Methods Program..

[5]  Shuvendu K. Lahiri,et al.  Verifying properties of well-founded linked lists , 2006, POPL '06.

[6]  Greg Nelson,et al.  Verifying reachability invariants of linked structures , 1983, POPL '83.

[7]  Ulrike Sattler,et al.  The Hybrid µ-Calculus , 2001, IJCAR.

[8]  Michael Benedikt,et al.  A Decidable Logic for Describing Linked Data Structures , 1999, ESOP.

[9]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[10]  M. de Rijke,et al.  Modal Logic , 2001, Cambridge Tracts in Theoretical Computer Science.

[11]  Kousha Etessami,et al.  Verifying Probabilistic Procedural Programs , 2004, FSTTCS.

[12]  M. Clavel,et al.  Principles of Maude , 1996, WRLA.

[13]  Mario Bravetti,et al.  CONCUR 2009 - Concurrency Theory, 20th International Conference, CONCUR 2009, Bologna, Italy, September 1-4, 2009. Proceedings , 2009, CONCUR.

[14]  Constantin Enea,et al.  A Logic-Based Framework for Reasoning about Composite Data Structures , 2009, CONCUR.

[15]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[16]  Yde Venema,et al.  Dynamic Logic by David Harel, Dexter Kozen and Jerzy Tiuryn. The MIT Press, Cambridge, Massachusetts. Hardback: ISBN 0–262–08289–6, $50, xv + 459 pages , 2002, Theory and Practice of Logic Programming.

[17]  Xiaokang Qiu,et al.  Decidable logics combining heap structures and data , 2011, POPL '11.

[18]  Koichi Takahashi,et al.  Pre- and Post-Conditions Expressed in Variants of the Modal µ-Calculus , 2009, IEICE Trans. Inf. Syst..

[19]  Larry Wos,et al.  What Is Automated Reasoning? , 1987, J. Autom. Reason..

[20]  David A. Naumann,et al.  Calculating sharp adaptation rules , 2001, Inf. Process. Lett..

[21]  James Brotherston,et al.  Undecidability of Propositional Separation Logic and Its Neighbours , 2010, LICS.

[22]  Peter W. O'Hearn,et al.  A Decidable Fragment of Separation Logic , 2004, FSTTCS.

[23]  Jerzy Tiuryn,et al.  Dynamic logic , 2001, SIGA.