Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation 2007
DOI: 10.1145/1250734.1250764
|View full text |Cite
|
Sign up to set email alerts
|

Shape analysis with inductive recursion synthesis

Abstract: Separation logic with recursively defined predicates allows for concise yet precise description of the shapes of data structures. However, most uses of separation logic for program analysis rely on pre-defined recursive predicates, limiting the class of programs analyzable to those that manipulate only a priori data structures. This paper describes a general algorithm based on inductive program synthesis that automatically infers recursive shape invariants, yielding a shape analysis based on separation logic t… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
32
0

Year Published

2008
2008
2018
2018

Publication Types

Select...
5
3

Relationship

0
8

Authors

Journals

citations
Cited by 61 publications
(32 citation statements)
references
References 17 publications
(9 reference statements)
0
32
0
Order By: Relevance
“…Emergence of garbage is detected iff a(G) is not well-connected. 11 We, however, compute not on single hypergraphs representing particular heaps but on sets of them represented by hierarchical SCFA. For now, we assume the nested SCFA used to be provided by the user.…”
Section: The Verification Procedures Based On Forest Automatamentioning
confidence: 99%
See 1 more Smart Citation
“…Emergence of garbage is detected iff a(G) is not well-connected. 11 We, however, compute not on single hypergraphs representing particular heaps but on sets of them represented by hierarchical SCFA. For now, we assume the nested SCFA used to be provided by the user.…”
Section: The Verification Procedures Based On Forest Automatamentioning
confidence: 99%
“…We note that there are other works on separation logic, e.g., [15], that consider tree manipulation, but these are usually semi-automated only. An exception is [11] which automatically handles even tree structures, but its mechanism of synthesising inductive predicates seems quite dependent on the fact that the dynamic linked data structures are built in a "nice" way conforming to the structure of the predicate to be learned (meaning, e.g., that lists are built by adding elements at the end only). 1 Further, compared to [4,19], our approach comes with a more flexible abstraction.…”
Section: Introductionmentioning
confidence: 99%
“…Researchers have used separation logic to prove code correct by hand [Bornat et al, 2004;Birkedal et al, 2004], and as the basis for a variety of automatic shape-analysis domains [Lee et al, 2005;Berdine et al, 2005;Magill et al, 2006;Distefano et al, 2006;Gotsman et al, 2006;Guo et al, 2007]. Two important research goals have been to make analyses based on separation logic more expressive Lee et al, 2011], and more scalable [Yang et al, 2008;Calcagno et al, 2009]; despite much progress, shape analyses with the necessary combination of precision and scalability do not yet exist.…”
Section: Static Analysis and Verification Techniquesmentioning
confidence: 99%
“…Various approaches to verification of such programs differing in their principles, degree of automation, generality, and scalability have emerged. They are based, e.g., on monadic second-order logic [40], 3-valued predicate logic with transitive closure [47], separation logic [20,31,45,60], 16 or automata [12,14,25]. Among all of these approaches, the method presented here is one of the most general and fully automated at the same time.…”
Section: Related Approachesmentioning
confidence: 99%
“…In[31], more complex structures are automatically manipulated, but they are built by the programs in some "nice" way, suitable for the inductive predicates being constructed and used.…”
mentioning
confidence: 99%