Synthesis of Recursive ADT Transformations from Reusable Templates
Jeevana Priya Inala, Nadia Polikarpova, Xiaokang Qiu, Benjamin S., Lerner, Armando Solar-Lezama

TL;DR
This paper introduces polymorphic synthesis constructs that enable reusable, scalable templates for recursive algebraic data-type transformations, significantly reducing user effort and improving synthesis performance.
Contribution
It presents a novel extension to synthesis templates allowing concise, reusable definitions for recursive ADT transformations, enhancing usability and scalability.
Findings
Achieved efficient synthesis of lambda calculus desugaring functions
Enabled reuse of templates across diverse problems with minimal effort
Improved system performance through a new optimization technique
Abstract
Recent work has proposed a promising approach to improving scalability of program synthesis by allowing the user to supply a syntactic template that constrains the space of potential programs. Unfortunately, creating templates often requires nontrivial effort from the user, which impedes the usability of the synthesizer. We present a solution to this problem in the context of recursive transformations on algebraic data-types. Our approach relies on polymorphic synthesis constructs: a small but powerful extension to the language of syntactic templates, which makes it possible to define a program space in a concise and highly reusable manner, while at the same time retains the scalability benefits of conventional templates. This approach enables end-users to reuse predefined templates from a library for a wide variety of problems with little effort. The paper also describes a novel…
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 · Software Testing and Debugging Techniques
