Neural Guided Constraint Logic Programming for Program Synthesis
arXiv:1809.02840
Abstract
Synthesizing programs using example input/outputs is a classic problem in artificial intelligence. We present a method for solving Programming By Example (PBE) problems by using a neural model to guide the search of a constraint logic programming system called miniKanren. Crucially, the neural model uses miniKanren's internal representation as input; miniKanren represents a PBE problem as recursive constraints imposed by the provided examples. We explore Recurrent Neural Network and Graph Neural Network models. We contribute a modified miniKanren, drivable by an external agent, available at https://github.com/xuexue/neuralkanren. We show that our neural-guided approach using constraints can synthesize programs faster in many cases, and importantly, can generalize to larger problems.
arXiv commentTo appear in NIPS 2018
References in corpus (8)
- Scheduled Sampling for Sequence Prediction with Recurrent Neural Networks
- DeepCoder: Learning to Write Programs
- Learning a SAT Solver from Single-Bit Supervision
- End-to-End Differentiable Proving
- Tree-to-tree Neural Networks for Program Translation
- TerpreT: A Probabilistic Programming Language for Program Induction
- Towards Synthesizing Complex Programs from Input-Output Examples
- Deep API Programmer: Learning to Program with APIs
Cited by in corpus (5)
- On the Replicability and Reproducibility of Deep Learning in Software Engineering
- From Shallow to Deep Interactions Between Knowledge Representation, Reasoning and Machine Learning (Kay R. Amel group)
- Program Synthesis Guided Reinforcement Learning for Partially Observed Environments
- Comparison of Syntactic and Semantic Representations of Programs in Neural Embeddings
- miniKanren as a Tool for Symbolic Computation in Python