Relational Program Synthesis

09/07/2018
by   Yuepeng Wang, et al.
0

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.

READ FULL TEXT
research
06/13/2022

Metric Program Synthesis

We present a new domain-agnostic synthesis technique for generating prog...
research
03/03/2020

Data Migration using Datalog Program Synthesis

This paper presents a new technique for migrating data between different...
research
03/17/2021

Toward Neural-Network-Guided Program Synthesis and Verification

We propose a novel framework of program and invariant synthesis called n...
research
07/05/2017

Synthesis of Data Completion Scripts using Finite Tree Automata

In application domains that store data in a tabular format, a common tas...
research
06/04/2021

Constraint-based Relational Verification

In recent years they have been numerous works that aim to automate relat...
research
05/20/2019

Efficient Synthesis with Probabilistic Constraints

We consider the problem of synthesizing a program given a probabilistic ...
research
11/10/2017

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

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

Please sign up or login with your details

Forgot password? Click here to reset