Title
Programs with lists are counter automata
Abstract
We address the problem of verifying programs manipulating one-selector linked data structures. We propose and study in detail an application of counter automata as an accurate abstract model for this problem. We let control states of the counter automata correspond to abstract heap graphs where list segments without sharing are collapsed, and use counters to keep track of the number of elements in these segments. As a significant theoretical result, we show that the obtained counter automata are bisimilar to the original programs. Moreover, from a practical point of view, our translation allows one to apply efficient automatic analysis techniques and tools developed for counter automata (integer programs) in order to verify both safety as well as termination of list-manipulating programs. As another theoretical contribution, we prove that if the control of the generated counter automata does not contain nested loops (i.e., these automata are flat), both safety and termination are decidable for the original programs. Subsequently, we generalise our counter-automata-based model to keep track of ordering properties over lists storing ordered data. Finally, we show effectiveness of our approach by verifying automatically safety as well as termination of several sorting programs.
Year
DOI
Venue
2011
10.1007/s10703-011-0111-7
CAV
Keywords
Field
DocType
Formal verification,Programs with singly-linked lists,Safety and termination,Counter automata,Bisimulation,Lists with ordered data
Data structure,Model checking,Programming language,Linked list,Abstract interpretation,Computer science,Automaton,Algorithm,Theoretical computer science,Heap (data structure),Counter automaton,Formal verification
Journal
Volume
Issue
ISSN
38
2
0925-9856
ISBN
Citations 
PageRank 
3-540-37406-X
42
1.86
References 
Authors
28
6
Name
Order
Citations
PageRank
Ahmed Bouajjani12663184.84
Marius Bozga22100127.83
Peter Habermehl350230.39
Radu Iosif448342.44
Pierre Moro51165.25
Tomáš Vojnar653332.06