Higher-Order Specifications for Deductive Synthesis of Programs with Pointers (Extended Version)
David Young, Ziyi Yang, Ilya Sergey, Alex Potanin

TL;DR
This paper introduces Pika, a high-level language that enhances SSL-based program synthesis by enabling layout-agnostic specifications, simplifying the process, and allowing automatic, correct-by-construction C program generation.
Contribution
It proposes a novel high-level specification language called Pika and a layout-agnostic synthesizer that improves expressiveness and usability in deductive program synthesis with Separation Logic.
Findings
Successfully synthesized C programs from high-level specifications.
Generated code is comparable or faster than Haskell implementations.
Enhanced specification reuse and abstraction in program synthesis.
Abstract
Synthetic Separation Logic (SSL) is a formalism that powers SuSLik, the state-of-the-art approach for the deductive synthesis of provably-correct programs in C-like languages that manipulate Heap-based linked data structures. Despite its expressivity, SSL suffers from two shortcomings that hinder its utility. First, its main specification component, inductive predicates, only admits first-order definitions of data structure shapes, which leads to the proliferation of ''boiler-plate'' predicates for specifying common patterns. Second, SSL requires concrete definitions of data structures to synthesise programs that manipulate them, which results in the need to change a specification for a synthesis task every time changes are introduced into the layout of the involved structures. We propose to significantly lift the level of abstraction used in writing Separation Logic specifications…
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.
