Program Synthesis Using Example Propagation
Niek Mulleners, Johan Jeuring, Bastiaan Heeren

TL;DR
Scrybe is an example-based program synthesis tool for statically-typed functional languages that uses example propagation and bidirectional evaluation to efficiently generate code, effectively handling complex benchmarks.
Contribution
It introduces a novel synthesis approach combining deductive reasoning with live evaluation, improving the use of contextual functions and guiding search with example constraints.
Findings
Successfully synthesizes most benchmark tasks from λ² and Myth.
Effectively propagates example constraints to prune search space.
Combines top-down reasoning with bidirectional evaluation for improved synthesis.
Abstract
We present Scrybe, an example-based synthesis tool for a statically-typed functional programming language, which combines top-down deductive reasoning in the style of with Smyth-style live bidirectional evaluation. During synthesis, example constraints are propagated through sketches to prune and guide the search. This enables Scrybe to make more effective use of functions provided in the context. To evaluate our tool, it is run on the combined, largely disjoint, benchmarks of and Myth. Scrybe is able to synthesize most of the combined benchmark tasks.
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.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Formal Methods in Verification · Parallel Computing and Optimization Techniques
