Compositional Shape Analysis by Means of Bi-Abduction
@article{Calcagno2011CompositionalSA, title={Compositional Shape Analysis by Means of Bi-Abduction}, author={Cristiano Calcagno and Dino Distefano and Peter W. O'Hearn and Hongseok Yang}, journal={J. ACM}, year={2011}, volume={58}, pages={26:1-26:66} }
The accurate and efficient treatment of mutable data structures is one of the outstanding problem areas in automatic program verification and analysis. Shape analysis is a form of program analysis that attempts to infer descriptions of the data structures in a program, and to prove that these structures are not misused or corrupted. It is one of the more challenging and expensive forms of program analysis, due to the complexity of aliasing and the need to look arbitrarily deeply into the…
92 Citations
Compositional shape analysis by means of bi-abduction
- Computer SciencePOPL '09
- 2009
A compositional shape analysis, where each procedure is analyzed independently of its callers, based on a generalized form of abduction (inference of explanatory hypotheses) which is the basis of a new interprocedural analysis algorithm.
Bi-Abductive Inference for Shape and Ordering Properties
- Computer Science2019 24th International Conference on Engineering of Complex Computer Systems (ICECCS)
- 2019
This work presents a novel one-stage bi-abductive procedure for a combination of data structures and ordering values in the spirit of the Unfold-and-Match paradigm, and demonstrates that it is promising for an automated verification of heap-manipulating programs.
Learning Shape Analysis
- Computer ScienceSAS
- 2017
A novel statistical machine learning technique that maps observed program states to (possibly disjunctive) separation logic formulas describing the invariant shape of (possibly nested) data structures at relevant program locations to automatically prove memory safety of heap-manipulating programs.
FESA: Fold- and Expand-Based Shape Analysis
- Computer ScienceCC
- 2013
A static shape analysis is presented that can prove the absence of NULL- and dangling pointer dereferences in standard algorithms on lists, trees and graphs and it is shown that highly precise shape invariants can be inferred using off-the-shelf SAT-solvers.
Compositional Verification of Heap-Manipulating Programs through Property-Guided Learning
- Computer ScienceAPLAS
- 2019
This work proposes to automatically learn heap-related program invariants in a property-guided way for each function call to enhance existing verifiers effectively in automatically verifying complex heap-manipulating programs with multiple function calls.
Automatically refining partial specifications for heap-manipulating programs
- Computer ScienceSci. Comput. Program.
- 2014
Precise reasoning with structured time, structured heaps, and collective operations
- Computer ScienceProc. ACM Program. Lang.
- 2019
A formal model, based on a high-level intermediate analysis language, a practical realization in a prototype tool that analyzes C code, and an experimental evaluation that demonstrates competitive results on a series of benchmarks are presented.
Shape Analysis via Second-Order Bi-Abduction
- Computer ScienceCAV
- 2014
We present a new modular shape analysis that can synthesize heap memory specification on a per method basis. We rely on a second-order biabduction mechanism that can give interpretations to unknown…
Resource-sensitive synchronisation inference by abduction
- Computer Science
- 2012
This work presents an analysis which takes as its input a sequential program, augmented with annotations indicating potential parallelization opportunities, and a sequential proof, and produces a correctly-synchronized parallelized program and proof of that program, which satisfies the same specification as the original sequential program and exhibits the same sequential behaviour.
Learning to Verify the Heap
- Computer Science
- 2016
A novel statistical machine learning technique is introduced that maps observed program states to (possibly disjunctive) separation logic formulas describing the invariant shape of (possibly nested) data structures at relevant program locations to automatically prove memory safety and functional correctness of heap programs.