Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation 2018
DOI: 10.1145/3192366.3192382
|View full text |Cite
|
Sign up to set email alerts
|

Program synthesis using conflict-driven learning

Abstract: 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… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

0
97
0

Year Published

2019
2019
2021
2021

Publication Types

Select...
4
2

Relationship

3
3

Authors

Journals

citations
Cited by 91 publications
(97 citation statements)
references
References 39 publications
0
97
0
Order By: Relevance
“…Automating table transformations. Our technique for synthesizing table transformations is related to several recent techniques for automating data wrangling [Feng et al 2018[Feng et al , 2017Harris and Gulwani 2011;Tran et al 2009;Wang et al 2017a;Zhang and Sun 2013]. Among these, Scythe generates SQL queries from input-output examples and prunes the search space by grouping partial queries into equivalence classes [Wang et al 2017a].…”
Section: Related Workmentioning
confidence: 99%
See 3 more Smart Citations
“…Automating table transformations. Our technique for synthesizing table transformations is related to several recent techniques for automating data wrangling [Feng et al 2018[Feng et al , 2017Harris and Gulwani 2011;Tran et al 2009;Wang et al 2017a;Zhang and Sun 2013]. Among these, Scythe generates SQL queries from input-output examples and prunes the search space by grouping partial queries into equivalence classes [Wang et al 2017a].…”
Section: Related Workmentioning
confidence: 99%
“…The Morpheus system automates table transformation tasks that arise in R programming and leverages logical specifications of R library functions to prune the search space using SMT-based reasoning [Feng et al 2017]. Morpheus's successor, Neo, generalizes this technique to other domains and further uses logical specifications to learn from failed synthesis attempts [Feng et al 2018]. A unifying theme among all these prior efforts is that the specification is a pair of concrete input and output tables.…”
Section: Related Workmentioning
confidence: 99%
See 2 more Smart Citations
“…Inductive programming has been successfully used for a variety of code synthesis tasks, most notably in the FlashFill approach to spreadsheet function generation [8]. In this work, a set of examples is provided by a user, and a sequence of inductive logic passes are applied to incrementally reduce the search space of possible programs which match the examples in a broadly similar way to SMT solving [4] [5]. This approach depends heavily on the use of a highly restricted and specialised language over which to search, often with the inductive logic passes being designed specifically with that language in mind.…”
Section: Introductionmentioning
confidence: 99%