Bottom-up Synthesis of Memory Mutations with Separation Logic
Programming-by-Example (PBE) is the paradigm of program synthesis specified via input-output pairs. It is commonly used because examples are easy to provide and collect from the environment. A popular optimization for enumerative synthesis with examples is Observational Equivalence (OE), which groups programs into equivalence classes according to their evaluation on example inputs. Current formulations of OE, however, are severely limited by the assumption that the synthesizer’s target language contains only \emph{pure} components with no side-effects, either enforcing this in their target language, or ignoring it, leading to an incorrect enumeration. This limits their ability to use realistic component sets.
We address this limitation using Separation Logic, which can compositionally reason about heap mutations. We reformulate PBE using a restricted Separation Logic: Concrete Heap Separation Logic (CHSL), transforming the search for programs into a proof search in CHSL. This lets us perform bottom-up enumerative synthesis without the need for expert-provided annotations or domain-specific inferences, but with three key advantages: we (i) preserve \emph{correctness} in the presence of memory-mutating operations, (ii) \emph{compact} the search space by representing many concrete programs as one under CHSL, and (iii) perform a provably correct OE-reduction.
We present SObEq (\emph{Side-effects in OBservational EQuivalence}), a bottom-up enumerative algorithm that, given a PBE task, searches for its CHSL derivation. The SObEq algorithm is proved correct with no purity assumptions: we show it is guaranteed to lose no solutions. We also evaluate our implementation of SObEq on benchmarks from the literature and online sources, and show that it produces high-quality results quickly.
Wed 2 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
10:45 - 12:30 | Program Analysis and VerificationTechnical Papers at Auditorium M003 Chair(s): Einar Broch Johnsen University of Oslo | ||
10:45 21mTalk | Bottom-up Synthesis of Memory Mutations with Separation Logic Technical Papers | ||
11:06 21mTalk | Efficient Neural Network Verification via Order Leading Exploration of Branch-and-Bound Trees Technical Papers Guanqin Zhang University of New South Wales & CSIRO's Data61, Kota Fukuda Kyushu University, Zhenya Zhang Kyushu University, Japan, H M N Dilum Bandara Data61, CSIRO, Shiping Chen Data61 at CSIRO, Australia / UNSW, Australia, Jianjun Zhao Kyushu University, Yulei Sui University of New South Wales Link to publication DOI | ||
11:27 21mTalk | IsaBIL: A Framework for Verifying (In)correctness of Binaries in Isabelle/HOL Technical Papers Matt Griffin Imperial College London, Brijesh Dongol University of Surrey, Azalea Raad Imperial College London | ||
11:48 21mTalk | Reusing Caches and Invariants for Efficient and Sound Incremental Static Analysis Technical Papers Mamy Razafintsialonina Université Paris-Saclay, CEA, List, Palaiseau / Sorbonne Université, CNRS, LIP6, Paris, David Bühler Université Paris-Saclay, CEA, List, Palaiseau, Antoine Miné Sorbonne Université, Valentin Perrelle Université Paris-Saclay, CEA, List, Palaiseau, Julien Signoles Université Paris-Saclay, CEA, List | ||
12:09 21mTalk | RacerF: Lightweight Static Data Race Detection for C Code Technical Papers Tomáš Dacík Faculty of Information Technology, Brno University of Technology, Tomas Vojnar Masaryk University |