Constructing Specialized Shape Analyses for Uniform Change

This paper is concerned with one of the basic problems in abstract interpretation, namely, for a given abstraction and a given set of concrete transformers (that express the concrete semantics of a program), how does one create the associated abstract transformers? We develop a new methodology for addressing this problem, based on a syntactically restricted language for expressing concrete transformers. We use this methodology to produce best abstract transformers for abstractions of many important data structures.

[1]  Alan J. Hu,et al.  A Better Logic and Decision Procedure for Predicate Abstraction of Heap-Manipulating Programs , 2006 .

[2]  Thomas Reps,et al.  Refinement-based program verification via three-valued-logic analysis , 2006 .

[3]  Graham Steel,et al.  Deduction with XOR Constraints in Security API Modelling , 2005, CADE.

[4]  Alexandru Nicolau,et al.  Parallelizing Programs with Recursive Data Structures , 1989, IEEE Trans. Parallel Distributed Syst..

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

[6]  Jianwen Su,et al.  Incremental and Decremental Evaluation of Transitive Closure by First-Order Queries , 1995, Inf. Comput..

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

[8]  Thomas W. Reps,et al.  Putting static analysis to work for verification: A case study , 2000, ISSTA '00.

[9]  Eran Yahav,et al.  Interprocedural Shape Analysis for Cutpoint-Free Programs , 2005, SAS.

[10]  Sriram K. Rajamani,et al.  Automatically validating temporal safety properties of interfaces , 2001, SPIN '01.

[11]  Alexandru Nicolau,et al.  Intererence analysis tools for parallelizing programs with recursive data structures , 1989, ICS '89.

[12]  Anders Møller,et al.  The Pointer Assertion Logic Engine , 2000 .

[13]  M. Rabin Decidability of second-order theories and automata on infinite trees , 1968 .

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

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

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

[17]  Alfred L. Brown,et al.  Persistent object stores , 1988 .

[18]  Jack Edmonds,et al.  Matching, Euler tours and the Chinese postman , 1973, Math. Program..

[19]  Thomas A. Henzinger,et al.  Software Verification with BLAST , 2003, SPIN.

[20]  Neil Immerman,et al.  Abstraction for Shape Analysis with Fast and Precise Transformers , 2006, CAV.

[21]  Andreas Podelski,et al.  ACSAR: Software Model Checking with Transfinite Refinement , 2007, SPIN.

[22]  Neil Immerman,et al.  Simulating Reachability Using First-Order Logic with Applications to Verification of Linked Data Structures , 2005, CADE.

[23]  Neil Immerman,et al.  Descriptive Complexity , 1999, Graduate Texts in Computer Science.

[24]  Patrick Cousot,et al.  Static Determination of Dynamic Properties of Recursive Procedures , 1977, Formal Description of Programming Concepts.

[25]  Eugene W. Myers,et al.  Efficient applicative data types , 1984, POPL.

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

[27]  Patrick Cousot,et al.  Systematic design of program analysis frameworks , 1979, POPL.

[28]  Chris Okasaki,et al.  Purely functional data structures , 1998 .

[29]  Neil Immerman,et al.  Dynamic computational complexity , 2003 .

[30]  Eran Yahav,et al.  Predicate Abstraction and Canonical Abstraction for Singly-Linked Lists , 2005, VMCAI.

[31]  Thomas W. Reps,et al.  Symbolically Computing Most-Precise Abstract Operations for Shape Analysis , 2004, TACAS.

[32]  Thomas W. Reps,et al.  Symbolic Implementation of the Best Transformer , 2004, VMCAI.

[33]  Thomas W. Reps,et al.  Abstraction Refinement via Inductive Learning , 2005, CAV.

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