Cited by 111Evolutionary Algorithms and ApplicationsLogic, programming, and type systemsTeaching and Learning Programming

Program synthesis using conflict-driven learning

Open access
Feng, Yu, Martins, Ruben, Bastani, Osbert, Dillig, Isil·2018·Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation

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 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.

The claims and statistics of this paper haven’t been checked yet.

Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.

A few free checks a day · papers already verified open instantly · results are public

Integrity signals

Registry

Crossref · 10.1145/3192366.3192382

Cites

44 of 44 references verified0 citation errors · 0 not checkable

Statistics

Claims the paper makes

The claims and statistics of this paper haven’t been checked yet.

Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.

A few free checks a day · papers already verified open instantly · results are public

Claims other papers make about this one

Each is checked against this paper’s own text: does it say what the citing paper says it does?

  • Neo inherently requires SMT encoded properties for domain specific functions.

    “Neo inherently requires SMT encoded properties for domain specific functions (i.e. its background knowledge).”

    From Learning programs by learning from failures (2021) · cites this paper as Feng et al. 2018

  • Neo synthesises non-recursive programs using SMT encoded properties and a three staged loop.

    “Neo (Feng et al. 2018) synthesises non-recursive programs using SMT encoded properties and a three staged loop.”

    From Learning programs by learning from failures (2021) · cites this paper as Feng et al. 2018

  • Neo is not guaranteed to synthesise optimal (textually minimal) programs.

    “Neo cannot synthesise recursive programs, nor is it guaranteed to synthesise optimal (textually minimal) programs.”

    From Learning programs by learning from failures (2021) · cites this paper as Feng et al. 2018

  • Neo can fail to detect inconsistency with the examples, in which case no programs get pruned.

    “As it typically uses over-approximate properties, Neo can fail to detect inconsistency with the examples, in which case no programs get pruned.”

    From Learning programs by learning from failures (2021) · cites this paper as Feng et al. 2018

  • Neo cannot synthesise recursive programs.

    “Neo cannot synthesise recursive programs, nor is it guaranteed to synthesise optimal (textually minimal) programs.”

    From Learning programs by learning from failures (2021) · cites this paper as Feng et al. 2018

Self-check

Percentages, sums and reported differences re-computed from the paper’s own numbers.

The self-check needs the paper’s full text.

Cites

Flagged first, then by citations

2 of the 46 references couldn’t be matched to a known paper.

Research works printed but not linked: 7

  1. Aws Albarghouthi, Sumit Gulwani, and Zachary Kincaid. 2013. Recur- sive Program Synthesis. In Proc. International Conference on Computer Aided Verification. Springer, 934-950.
  2. Arvind Neelakantan, Quoc V Le, Martin Abadi, Andrew McCallum, and Dario Amodei. 2017. Learning a natural language interface with neural programmer. In Proc. International Conference on Learning Rep- resentations. OpenReview.
  3. Arvind Neelakantan, Quoc V Le, and Ilya Sutskever. 2016. Neural programmer: Inducing latent programs with gradient descent. In Proc. International Conference on Learning Representations. OpenReview.
  4. Rishabh Singh. 2016. Blinkfill: Semi-supervised programming by ex- ample for syntactic string transformations. Proceedings of the VLDB Endowment 9, 10 (2016), 816-827.
  5. Calvin Smith and Aws Albarghouthi. 2016. MapReduce program syn- thesis. In Proc. Conference on Programming Language Design and Im- plementation. ACM, 326-340.
  6. Abhishek Udupa, Arun Raghavan, Jyotirmoy V Deshmukh, Sela Mador- Haim, Milo MK Martin, and Rajeev Alur. 2013. TRANSIT: specifying protocols with concolic snippets. Proc. Conference on Programming Language Design and Implementation (2013), 287-296.
  7. Yu Feng, Ruben Martins, Osbert Bastani, and Isil Dillig data. In Proc. Conference on Programming Language Design and Imple- mentation. ACM, 508-521.

Cited by

Sorted by citations

Authors
Feng, Y., Martins, R., Bastani, O., & Dillig, I.
Affiliations
  • The University of Texas at Austin (US)
  • Carnegie Mellon University (US)
  • Massachusetts Institute of Technology (US)
  • University of Texas at Austin, USA
Venue
Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation
Publisher
ACM
Published
2018-06-11
Pages
420-435
ISSN
1531-7102 (ISSN-L)
OpenAlex
W2964240296
Cited by
111
References
46
Citations by year
2026: 3 · 2025: 11 · 2024: 8 · 2023: 13 · 2022: 10 · 2021: 18 · 2020: 23 · 2019: 22 · 2018: 3
FWCI
6.71
Type
conference paper
Language
en
Open access
Locations
ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) (publishedVersion)
Funders
  • National Science Foundation (1453386)
  • Defense Advanced Research Projects Agency (8750-14-2-0270)
Topics
  • Physical Sciences › Computer Science › Artificial Intelligence › Evolutionary Algorithms and Applications
  • Physical Sciences › Computer Science › Artificial Intelligence › Logic, programming, and type systems
  • Physical Sciences › Computer Science › Computer Science Applications › Teaching and Learning Programming
Keywords
program synthesis, CDCL, learning from mistakes, search space pruning, data wrangling, functional programming

About these checks

Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.

Statistics and arithmetic are recomputed, not judged.

Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.

What counts as a claim ›How we measure confidence ›How we check this ›

Are you an author, or do you see a problem with this page? Request a review