Download now Free registration required
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). The authors 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 their prototype implementation indicate its practical potential. Heap-manipulating programs are prone to termination errors. Manually inferring preconditions that exclude such errors is both tedious and hard, since the termination reasoning must involve the shape of the heap.
- Format: PDF
- Size: 198.75 KB