Automated Verification of Pointer Programs

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 properties such as reachability. Verification conditions are generated using a novel calculus for computing the strongest post-condition of statements manipulating the heap, such as dynamic allocation and field-assignment. Further, we introduce a new decidable tableaux-based method to automatically check these verification conditions.

[1]  Bernhard Beckert,et al.  Dynamic Logic , 2007, The KeY Approach.

[2]  Edmund M. Clarke Programming language constructs for which it is impossible to obtain good hoare-like axiom systems , 1977, POPL '77.

[3]  James Brotherston,et al.  Undecidability of Propositional Separation Logic and Its Neighbours , 2010, 2010 25th Annual IEEE Symposium on Logic in Computer Science.

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

[5]  Richard Spencer-Smith,et al.  Modal Logic , 2007 .

[6]  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.

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

[8]  Gert Smolka,et al.  Terminating Tableaux for Hybrid Logic with Eventualities , 2010, IJCAR.

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

[10]  Frank S. de Boer,et al.  Verification of Sequential and Concurrent Programs , 1997, Texts and Monographs in Computer Science.

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

[12]  Ullrich Hustadt,et al.  A Comparison of Solvers for Propositional Dynamic Logic , 2010, PAAR@IJCAR.

[13]  Martín Abadi,et al.  A Logic of Object-Oriented Programs , 1997, Verification: Theory and Practice.