TL;DR
Smyth introduces live bidirectional evaluation for program sketching, enabling efficient synthesis of recursive functions and interdependent goals from input-output examples, surpassing prior methods in flexibility and performance.
Contribution
The paper presents live bidirectional evaluation, a novel technique that improves program synthesis by propagating examples backward, reducing the need for trace-complete sets and partial specifications.
Findings
Smyth requires fewer expert examples than Myth.
Smyth successfully synthesizes tasks with few random examples.
User sketches further reduce specification burden.
Abstract
We present a system called Smyth for program sketching in a typed functional language whereby the concrete evaluation of ordinary assertions gives rise to input-output examples, which are then used to guide the search to complete the holes. The key innovation, called live bidirectional evaluation, propagates examples "backward" through partially evaluated sketches. Live bidirectional evaluation enables Smyth to (a) synthesize recursive functions without trace-complete sets of examples and (b) specify and solve interdependent synthesis goals. Eliminating the trace-completeness requirement resolves a significant limitation faced by prior synthesis techniques when given partial specifications in the form of input-output examples. To assess the practical implications of our techniques, we ran several experiments on benchmarks used to evaluate Myth, a state-of-the-art example-based…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
