2014
DOI: 10.1007/978-3-319-08867-9_47
|View full text |Cite
|
Sign up to set email alerts
|

Automating Separation Logic with Trees and Data

Abstract: Separation logic (SL) is a widely used formalism for verifying heap manipulating programs. Existing SL solvers focus on decidable fragments for list-like structures. More complex data structures such as trees are typically unsupported in implementations, or handled by incomplete heuristics. While complete decision procedures for reasoning about trees have been proposed, these procedures suffer from high complexity, or make global assumptions about the heap that contradict the separation logic philosophy of loc… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
42
0

Year Published

2016
2016
2019
2019

Publication Types

Select...
7
1

Relationship

0
8

Authors

Journals

citations
Cited by 62 publications
(42 citation statements)
references
References 45 publications
(47 reference statements)
0
42
0
Order By: Relevance
“…Separation logic tools such as VeriFast may require a heavier annotation burden that includes low-level directives to "bundle/open" and "unbundle/close" abstract predicate definitions in crucial parts of a proof. To provide automation at a higher level, Piskac et al [PWZ14] combine separation logic with decidable first-order fragments to verify programs in a C-like fragment with native support for specification constructs. They demonstrate their GRASShoper verifier on flat linked datastructure examples; it currently cannot handle nested structures or arrays.…”
Section: Verification Of Individual Data Structuresmentioning
confidence: 99%
“…Separation logic tools such as VeriFast may require a heavier annotation burden that includes low-level directives to "bundle/open" and "unbundle/close" abstract predicate definitions in crucial parts of a proof. To provide automation at a higher level, Piskac et al [PWZ14] combine separation logic with decidable first-order fragments to verify programs in a C-like fragment with native support for specification constructs. They demonstrate their GRASShoper verifier on flat linked datastructure examples; it currently cannot handle nested structures or arrays.…”
Section: Verification Of Individual Data Structuresmentioning
confidence: 99%
“…At the intermediate level of automation, functional verification tools have been used to tackle the verification of specific data structures (e.g., Dafny [33], GRASShoper [26], VeriFast [15], or Why3 [36]) but we are not aware of any experiment on bounded lists.…”
Section: Related Workmentioning
confidence: 99%
“…Although these proposals can decide the formula of that fragment in polynomial time, it is not easy to extend them to a fragment with general inductive predicates (i.e., the fragment SLPA). Decision procedures in [34,36,35] and [33] support decidable fragments of separation logic with inter-reachable data structures using SMT. Our proposal extends these procedures to those fragments with general inductively-defined predicates.…”
Section: Related Workmentioning
confidence: 99%