2011
DOI: 10.1007/978-3-642-22110-1_29
|View full text |Cite
|
Sign up to set email alerts
|

Predator: A Practical Tool for Checking Manipulation of Dynamic Data Structures Using Separation Logic

Abstract: Predator is a new open source tool for verification of sequential C programs with dynamic linked data structures. The tool is based on separation logic with inductive predicates although it uses a graph description of heaps. Predator currently handles various forms of lists, including singly-linked as well as doubly-linked lists that may be circular, hierarchically nested and that may have various additional pointer links. Predator is implemented as a gcc plug-in and it is capable of handling lists in the form… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

0
52
0

Year Published

2013
2013
2021
2021

Publication Types

Select...
8
1

Relationship

1
8

Authors

Journals

citations
Cited by 47 publications
(52 citation statements)
references
References 8 publications
0
52
0
Order By: Relevance
“…CPALIEN is an offspring of the successful Predator shape analyzer [1]. Predator implements a sound shape analysis of programs manipulating list-like data structures of various kinds.…”
Section: Verification Approachmentioning
confidence: 99%
“…CPALIEN is an offspring of the successful Predator shape analyzer [1]. Predator implements a sound shape analysis of programs manipulating list-like data structures of various kinds.…”
Section: Verification Approachmentioning
confidence: 99%
“…Given a program annotated with separation logic assertions, one can try to prove statically that each assertion holds at the appropriate program point; a long line of research in this area has resulted in a number of tools that are capable of doing this automatically at least some of the time for industrial code (see e.g. [7,8,14,16,19,24,28]). Alternatively, one might also try to test dynamically whether properties hold: simply execute the program and check whether each assertion is satisfied by the actual memory state of the program at that point (this is sometimes known as run-time verification).…”
Section: Introductionmentioning
confidence: 99%
“…However, the logic itself has attracted considerable recent interest amongst the verification community. The aforementioned automated program verification tools based on separation logic [7,8,14,16,19,24,28] are all based on symbolic heaps, and increasingly targeted at verifying specifications involving user-defined rather than hard-coded predicates. Indeed, there are now even tools capable of automatically generating the definitions of inductive predicates needed for analysis [11,25].…”
Section: Introductionmentioning
confidence: 99%
“…The frame rule makes separation logic attractive for developers of program verification tools [6,8,19,21,36]. However, the logic also poses a challenge to automation: it is a non-classical logic that requires specialized symbolic execution engines for encoding the behavior of programs, and specialized theorem provers for discharging the generated proof obligations.…”
Section: Introductionmentioning
confidence: 99%