Heap Assumptions on Demand

Termination of a heap-manipulating program generally depends on preconditions that express heap assumptions(i.e., assertions describing reachability, aliasing, separation and sharing in the heap). We present an algorithm for the inference of such preconditions. The algorithm exploits a unique interplay between counterexample-producing abstract termination checker and shape analysis. The shape analysis produces heap assumptions on demand to eliminate counterexamples, i.e., non-terminating abstract computations. The experiments with our prototype implementation indicate its practical potential.

[1]  Henny B. Sipma,et al.  The Polyranking Principle , 2005, ICALP.

[2]  Advised by , 1999 .

[3]  Patrick Cousot,et al.  Proving Program Invariance and Termination by Parametric Abstraction, Lagrangian Relaxation and Semidefinite Programming , 2005, VMCAI.

[4]  Andreas Podelski,et al.  ARMC: The Logical Choice for Software Model Checking with Abstraction Refinement , 2007, PADL.

[5]  Peter W. O'Hearn,et al.  Automatic Termination Proofs for Programs with Shape-Shifting Heaps , 2006, CAV.

[6]  Thomas A. Henzinger,et al.  Lazy Shape Analysis , 2006, CAV.

[7]  Peter W. O'Hearn,et al.  Shape Analysis for Composite Data Structures , 2007, CAV.

[8]  Andreas Podelski,et al.  Termination proofs for systems code , 2006, PLDI '06.

[9]  Ahmed Bouajjani,et al.  Abstract Regular Tree Model Checking of Complex Dynamic Data Structures , 2006, SAS.

[10]  Henny B. Sipma,et al.  Practical Methods for Proving Program Termination , 2002, CAV.

[11]  Viktor Kuncak,et al.  On Verifying Complex Properties using Symbolic Shape Analysis , 2006, ArXiv.

[12]  Reinhard Wilhelm,et al.  Parametric shape analysis via 3-valued logic , 1999, POPL '99.

[13]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[14]  Kousha Etessami,et al.  Analysis of Recursive Game Graphs Using Data Flow Equations , 2004, VMCAI.

[15]  Panagiotis Manolios,et al.  Termination Analysis with Calling Context Graphs , 2006, CAV.

[16]  Andreas Podelski,et al.  Boolean Heaps , 2005, SAS.

[17]  Thomas W. Reps,et al.  Revamping TVLA: Making Parametric Shape Analysis Competitive , 2007, CAV.

[18]  Edmund M. Clarke,et al.  Arithmetic Strengthening for Shape Analysis , 2007, SAS.

[19]  Peter W. O'Hearn,et al.  A Local Shape Analysis Based on Separation Logic , 2006, TACAS.

[20]  Robin Milner,et al.  On Observing Nondeterminism and Concurrency , 1980, ICALP.

[21]  Peter W. O'Hearn,et al.  Footprint Analysis: A Shape Analysis That Discovers Preconditions , 2007, SAS.

[22]  Thomas Wies,et al.  Symbolic shape analysis , 2009 .

[23]  Radu Rugina,et al.  Region-based shape analysis with tracked locations , 2005, POPL '05.