  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.
