Structuring the Synthesis of Heap-Manipulating Programs - Extended Version
Nadia Polikarpova, Ilya Sergey

TL;DR
This paper introduces a deductive synthesis method for imperative heap-manipulating programs using Separation Logic, enabling correct-by-construction programs with formal proofs, implemented in the SuSLik tool for benchmark examples.
Contribution
It presents a novel framework of Synthetic Separation Logic (SSL) for program synthesis from declarative specifications, along with an implementation in the SuSLik tool.
Findings
Successfully synthesized heap-manipulating programs with SSL
Proofs of correctness are generated alongside programs
Efficient proof search exploits SSL rule properties
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 pre- and 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 notion of heap entailment to incorporate a possibility of transforming a heap satisfying an assertion into a heap satisfying an assertion . A synthesized program represents a proof term for a transforming entailment statement , and the synthesis procedure corresponds to a proof…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
