2006
DOI: 10.1007/11817963_35
|View full text |Cite
|
Sign up to set email alerts
|

Automatic Termination Proofs for Programs with Shape-Shifting Heaps

Abstract: We describe a new program termination analysis designed to handle imperative programs whose termination depends on the mutation of the program's heap. We first describe how an abstract interpretation can be used to construct a finite number of relations which, if each is well-founded, implies termination. We then give an abstract interpretation based on separation logic formulae which tracks the depths of pieces of heaps. Finally, we combine these two techniques to produce an automatic termination prover. We s… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

1
79
0

Year Published

2006
2006
2023
2023

Publication Types

Select...
8

Relationship

0
8

Authors

Journals

citations
Cited by 80 publications
(80 citation statements)
references
References 18 publications
(33 reference statements)
1
79
0
Order By: Relevance
“…For pointer systems, qualitative properties (absence of memory violation like invalid pointer dereferencing, memory leak) are difficult to analyze, and may drastically rely on quantitative properties (lists of equal length, finitely increasing memory allocation,...). Some recent works illustrate this relation between quantitative and qualitative aspects in pointer systems for the purpose of verifying termination [7] or safety [11].…”
Section: Introductionmentioning
confidence: 91%
“…For pointer systems, qualitative properties (absence of memory violation like invalid pointer dereferencing, memory leak) are difficult to analyze, and may drastically rely on quantitative properties (lists of equal length, finitely increasing memory allocation,...). Some recent works illustrate this relation between quantitative and qualitative aspects in pointer systems for the purpose of verifying termination [7] or safety [11].…”
Section: Introductionmentioning
confidence: 91%
“…Our analysis conservatively verifies the first requirement in situ. The second requirement can be proved using termination analysis, e.g., [6]. Once the above requirements are established, the soundness of the abstract interpretation follows from the soundness of [5]'s framework for program analysis, in which our analysis is encoded.…”
Section: Soundnessmentioning
confidence: 99%
“…Hence, A is the initial state when calling the method with such an input list. 4 From A, the termination graph in Fig. 4 is constructed by symbolic evaluation.…”
Section: Constructing the Termination Graphmentioning
confidence: 99%
“…Such techniques are for instance used in the tools Terminator [4,12] and LoopFrog [22,31] to analyze termination of C programs. To handle the heap, one can use an abstraction [13] to integers based on separation logic [24].…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation