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

Programs with Lists Are Counter Automata

Abstract: Abstract. We address the verification problem of programs manipulating oneselector linked data structures. We propose a new automated approach for checking safety and termination for these programs. Our approach is based on using counter automata as accurate abstract models: control states correspond to abstract heap graphs where list segments without sharing are collapsed, and counters are used to keep track of the number of elements in these segments. This allows to apply automatic analysis techniques and to… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
14
0
1

Year Published

2006
2006
2020
2020

Publication Types

Select...
6
1
1

Relationship

3
5

Authors

Journals

citations
Cited by 68 publications
(15 citation statements)
references
References 18 publications
0
14
0
1
Order By: Relevance
“…• Store based model. A store based model explicates heap locations in terms of their addresses and generally represents the heap memory as a directed graph [7,10,15,18,26,37,61,68,77,84,87]. The nodes of the graph represent locations or objects in the memory.…”
Section: Heap Modelsmentioning
confidence: 99%
See 1 more Smart Citation
“…• Store based model. A store based model explicates heap locations in terms of their addresses and generally represents the heap memory as a directed graph [7,10,15,18,26,37,61,68,77,84,87]. The nodes of the graph represent locations or objects in the memory.…”
Section: Heap Modelsmentioning
confidence: 99%
“…Thus, all nodes with the same pointed-to-by-x predicate values are merged and represented by a summary node. Variable based summarization has been performed on store based heap model [7,15,75,76]. Figure 5d represents variable based summarization of the store based model in Figure 5a.…”
Section: Summarization Techniquesmentioning
confidence: 99%
“…They model lists at the pointer level and impose some restrictions on the programs that they can verify. For example, the approach proposed in [9] works only for programs that do not access data stored in the lists at all or that only compare data in some nodes (for sorting purposes). Lahiri and Qadeer proposed a logic for specifying properties over linked lists and a decision procedure for checking programs in a subset of C against such specifications [29].…”
Section: Program Verificationmentioning
confidence: 99%
“…The main challenges are (1) precise and compact modeling of the collection state with a small number of predicates, (2) precise modeling of operations upon collections, (3) support for preserving information between any two program code locations, and (4) efficient construction of abstract programs. Addressing these challenges is important Many program verification techniques and frameworks that target collections and data structures have been proposed in recent years -symbolic execution for data structures [25], shape analysis based on predicate abstraction [7,16,37] or other abstractions [6], logics and decision procedures for heap data structures [7,29], techniques based on separation logic [18], and various techniques for verification of linked list implementations [9,10,28] and general programs that use collections against functional specifications [40,41]. Most of these approaches model collections at the representation level.…”
Section: Introductionmentioning
confidence: 99%
“…Programs with pointer variables suffer the same drawback since reachability problems are also undecidable, see e.g. [2,3]. It is worth noting that specific properties need to be verified for such programs, such as the existence of memory leaks, memory violation, or shape analysis.…”
Section: Introductionmentioning
confidence: 99%