Program Synthesis using Conflict-Driven Learning

11/21/2017
by   Yu Feng, et al.
0

We propose a new conflict-driven program synthesis technique that is capable of learning from past mistakes. Given a spurious program that violates the desired specification, our synthesis algorithm identifies the root cause of the conflict and learns new lemmas that can prevent similar mistakes in the future. Specifically, we introduce the notion of equivalence modulo conflict and show how this idea can be used to learn useful lemmas that allow the synthesizer to prune large parts of the search space. We have implemented a general-purpose CDCL-style program synthesizer called Neo and evaluate it in two different application domains, namely data wrangling in R and functional programming over lists. Our experiments demonstrate the substantial benefits of conflict-driven learning and show that Neo outperforms two state-of-the-art synthesis tools, Morpheus and Deepcoder, that target these respective domains.

READ FULL TEXT
research
03/20/2022

CrossBeam: Learning to Search in Bottom-Up Program Synthesis

Many approaches to program synthesis perform a search within an enormous...
research
08/22/2022

Towards Clause Learning à la Carte through VarMonads

More and more languages have a need for constraint solving capabilities ...
research
09/06/2022

Specification-Guided Component-Based Synthesis from Effectful Libraries

Component-based synthesis seeks to build programs using the APIs provide...
research
06/13/2022

Metric Program Synthesis

We present a new domain-agnostic synthesis technique for generating prog...
research
08/17/2022

On Establishing Robust Consistency in Answer Set Programs

Answer set programs used in real-world applications often require that t...
research
04/14/2021

Web Question Answering with Neurosymbolic Program Synthesis

In this paper, we propose a new technique based on program synthesis for...
research
08/14/2023

Modular System Synthesis

This paper describes a way to improve the scalability of program synthes...

Please sign up or login with your details

Forgot password? Click here to reset