ECOOP 2025
Mon 30 June - Fri 4 July 2025 Bergen, Norway
Wed 2 Jul 2025 10:45 - 11:06 at Auditorium M003 - Program Analysis and Verification Chair(s): Einar Broch Johnsen

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 Jul

Displayed 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
21m
Talk
Bottom-up Synthesis of Memory Mutations with Separation Logic
Technical Papers
Kasra Ferdowsi University of California at San Diego, Hila Peleg Technion
11:06
21m
Talk
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
21m
Talk
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
21m
Talk
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
21m
Talk
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