Bottom-up synthesis of recursive functional programs using angelic execution
Anders Miltner, Adrian Trejo Nuñez, Ana Brendel, Swarat Chaudhuri, Isil Dillig
Abstract
We present a novel bottom-up method for the synthesis of functional recursive programs. While bottom-up synthesis techniques can work better than top-down methods in certain settings, there is no prior technique for synthesizing recursive programs from logical specifications in a purely bottom-up fashion. The main challenge is that effective bottom-up methods need to execute sub-expressions of the code being synthesized, but it is impossible to execute a recursive subexpression of a program that has not been fully constructed yet. In this paper, we address this challenge using the concept of angelic semantics. Specifically, our method finds a program that satisfies the specification under angelic semantics (we refer to this as angelic synthesis), analyzes the assumptions made during its angelic execution, uses this analysis to strengthen the specification, and finally reattempts synthesis with the strengthened specification. Our proposed angelic synthesis algorithm is based on version space learning and therefore deals effectively with many incremental synthesis calls made during the overall algorithm. We have implemented this approach in a prototype called Burst and evaluate it on synthesis problems from prior work. Our experiments show that Burst is able to synthesize a solution to 94% of the benchmarks in our benchmark suite, outperforming prior work.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 9b8fe994-68df-4829-8ff9-f11bf3dd234eCited by top-tier papers22
- Inductive Synthesis of Structurally Recursive Functional Programs from Non-recursive ExpressionsWoosuk Lee, Hangyeol ChoPOPL 2023 · 19 citations
- Trace-Guided Inductive Synthesis of Recursive Functional ProgramsYongwei Yuan, Arjun Radhakrishna, Roopsha SamantaPLDI 2023 · 17 citations
- Programming-by-Demonstration for Long-Horizon Robot TasksNoah Patton, Kia Rahmani, Meghana Missula, Joydeep Biswas et al.POPL 2024 · 11 citations
- Data-driven lemma synthesis for interactive proofsAishwarya Sivaraman, Alex Sanchez-Stern, Bretton Chen, Sorin Lerner et al.OOPSLA 2022 · 8 citations
- Message Chains for Distributed System VerificationFederico Mora, Ankush Desai, Elizabeth Polgreen, Sanjit A. SeshiaOOPSLA 2023 · 7 citations
Builds on4
- BUSTLE: Bottom-Up Program Synthesis Through Learning-Guided ExplorationAugustus Odena, Kensen Shi, David Bieber, Rishabh Singh et al.ICLR 2021 · 60 citations
- Reconciling enumerative and deductive program synthesisKangjing Huang, Xiaokang Qiu, Peiyuan Shen, Yanjun WangPLDI 2020 · 46 citations
- Combining the top-down propagation and bottom-up enumeration for inductive program synthesisWoosuk LeePOPL 2021 · 34 citations
- Cyclic program synthesisShachar Itzhaky, Hila Peleg, Nadia Polikarpova, Reuben N. S. Rowe et al.PLDI 2021 · 26 citations
Related papers
- Distance-Guided Search in Program Synthesis with Imperfect LLM SolutionsHangyeol Cho, Jaehyung Lee, Woosuk LeeICSE 2026
- Relational Synthesis of Recursive Programs via Constraint Annotated Tree AutomataAnders Miltner, Ziteng Wang, Swarat Chaudhuri, Isil DilligCAV 2024 · 2 citations
- Combining Functional and Automata Synthesis to Discover Causal Reactive ProgramsRia Das, Joshua B. Tenenbaum, Armando Solar-Lezama, Zenna TavaresPOPL 2023 · 4 citations
- Recursive Program Synthesis using ParamorphismsQiantan Hong, Alex AikenPLDI 2024 · 7 citations
- LOUD: Synthesizing Strongest and Weakest SpecificationsKanghee Park, Xuanyu Peng, Loris D'AntoniOOPSLA 2025 · 1 citation
