DeepAI AI Chat
Log In Sign Up

Relational Program Synthesis

by   Yuepeng Wang, et al.
The University of Texas at Austin

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 application domains by providing a suitable domain-specific language and the relevant relational specification. We have used the Relish framework to build relational synthesizers to automatically generate string encoders/decoders as well as comparators, and we evaluate our tool on several benchmarks taken from prior work and online forums. Our experimental results show that the proposed technique can solve almost all of these benchmarks and that it significantly outperforms EUSolver, a generic synthesis framework that won the general track of the most recent SyGuS competition.


Metric Program Synthesis

We present a new domain-agnostic synthesis technique for generating prog...

Data Migration using Datalog Program Synthesis

This paper presents a new technique for migrating data between different...

Toward Neural-Network-Guided Program Synthesis and Verification

We propose a novel framework of program and invariant synthesis called n...

Synthesis of Data Completion Scripts using Finite Tree Automata

In application domains that store data in a tabular format, a common tas...

Constraint-based Relational Verification

In recent years they have been numerous works that aim to automate relat...

Efficient Synthesis with Probabilistic Constraints

We consider the problem of synthesizing a program given a probabilistic ...

Automated Migration of Hierarchical Data to Relational Tables using Programming-by-Example

While many applications export data in hierarchical formats like XML and...