Relational Program Synthesis
Yuepeng Wang, Xinyu Wang, Isil Dillig

TL;DR
This paper introduces relational program synthesis, a new approach for automatically generating multiple programs that satisfy relational specifications, addressing larger search spaces with a novel synthesis algorithm and demonstrating its effectiveness on practical benchmarks.
Contribution
It presents a novel synthesis technique combining CEGIS with relational version space learning, implemented in the Relish framework for various application domains.
Findings
Successfully solves most benchmarks from prior work and online forums.
Significantly outperforms the EUSolver framework in experiments.
Demonstrates practical applicability to string encoders, decoders, and comparators.
Abstract
This paper proposes relational program synthesis, a new problem that concerns synthesizing one or more programs that collectively satisfy a relational specification. As a dual of relational program verification, relational program synthesis is an important problem that has many practical applications, such as automated program inversion and automatic generation of comparators. However, this relational synthesis problem introduces new challenges over its non-relational counterpart due to the combinatorially larger search space. As a first step towards solving this problem, this paper presents a synthesis technique that combines the counterexample-guided inductive synthesis framework with a novel inductive synthesis algorithm that is based on relational version space learning. We have implemented the proposed technique in a framework called Relish, which can be instantiated to different…
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.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Software Engineering Research · Web Application Security Vulnerabilities
