2019
DOI: 10.1145/3290385
|View full text |Cite
|
Sign up to set email alerts
|

Structuring the synthesis of heap-manipulating programs

Abstract: This paper describes a deductive approach to synthesizing imperative programs with pointers from declarative specifications expressed in Separation Logic. Our synthesis algorithm takes as input a pair of assertions-a preand a postcondition-which describe two states of the symbolic heap, and derives a program that transforms one state into the other, guided by the shape of the heap. The program synthesis algorithm rests on the novel framework of Synthetic Separation Logic (SSL), which generalises the classical … Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

1
36
0

Year Published

2019
2019
2023
2023

Publication Types

Select...
5
1

Relationship

3
3

Authors

Journals

citations
Cited by 39 publications
(37 citation statements)
references
References 79 publications
1
36
0
Order By: Relevance
“…If we look closer at the domain description of Figure 2, we will notice that it uses an inequality constraint x that is not declared as a domain predicate. We will follow the resource logics tradition [5,40] and separate state descriptions from constraints on states. That is, we further refine domain descriptions to have the syntax ϕ; {Pre} {Post} | action, where ϕ defines constraints on states.…”
Section: Results Of This Paper By Means Of An Examplementioning
confidence: 99%
“…If we look closer at the domain description of Figure 2, we will notice that it uses an inequality constraint x that is not declared as a domain predicate. We will follow the resource logics tradition [5,40] and separate state descriptions from constraints on states. That is, we further refine domain descriptions to have the syntax ϕ; {Pre} {Post} | action, where ϕ defines constraints on states.…”
Section: Results Of This Paper By Means Of An Examplementioning
confidence: 99%
“…Separation logic has proved to be a remarkably powerful vehicle for reasoning about programs, weak memory concurrency [47], program synthesis [42], and many other domains. With SecCSL, we hope that in future the same possibilities might be opened to verified information flow security.…”
Section: Resultsmentioning
confidence: 99%
“…Following this idea, it has been recently observed [34] that the synthesis of correct-by-construction imperative heap-manipulating programs (in a language similar to C) can be implemented as a proof search in a version of Separation Logic (SL)-a program logic designed for modular verification of programs with pointers [32,37]. SL-based deductive program synthesis based on Synthetic Separation Logic (SSL) [34] requires the programmer to provide a Hoare-style specification for a program of interest. For instance, given the predicate ls(x, S), which denotes a symbolic heap corresponding to a linked list starting at a pointer x, ending with null, and containing elements from the set S, one can specify the behaviour of the procedure for copying a linked list as follows: The precondition of specification (1), defining the shape of the initial heap, is illustrated by the figure above.…”
Section: Introductionmentioning
confidence: 93%
“…Provided the definition of the heap predicate ls and the specification (1), the SuS-Lik tool, an implementation of the SSLbased synthesis [34], will produce the program depicted in Fig. 1.…”
Section: Correct Programs That Do Strange Thingsmentioning
confidence: 99%
See 1 more Smart Citation