AbstractBeam: Enhancing Bottom-Up Program Synthesis using Library Learning
Janis Zenkner, Lukas Dierkes, Tobias Sesterhenn, Chrisitan Bartelt
TL;DR
AbstractBeam (AB) enhances LambdaBeam by integrating Library Learning to identify and reuse recurring subprograms within a domain-specific DSL. Through a wake-sleep cycle inspired by DreamCoder and Stitch-based abstraction discovery, AB learns abstractions during sleep and uses them to accelerate bottom-up, execution-guided synthesis. Experiments in the integer list manipulation domain show AB significantly improves handwritten task success rates and efficiency ( fewer candidates, shorter search times ) but do not generalize to synthetic or out-of-domain tasks, highlighting both the potential and the limitations of domain-specific abstractions. Overall, AB demonstrates that Library Learning can meaningfully augment execution-guided program synthesis, while underscoring the critical role of DSL design and domain alignment for generalization.
Abstract
LambdaBeam is a state-of-the-art, execution-guided algorithm for program synthesis that utilizes higher-order functions, lambda functions, and iterative loops within a Domain-Specific Language (DSL). LambdaBeam generates each program from scratch but does not take advantage of the frequent recurrence of program blocks or subprograms commonly found in specific domains, such as loops for list traversal. To address this limitation, we introduce AbstractBeam: a novel program synthesis framework designed to enhance LambdaBeam by leveraging Library Learning. AbstractBeam identifies and integrates recurring program structures into the DSL, optimizing the synthesis process. Our experimental evaluations demonstrate that AbstractBeam statistically significantly (p < 0.05) outperforms LambdaBeam in the integer list manipulation domain. Beyond solving more tasks, AbstractBeam's program synthesis is also more efficient, requiring less time and fewer candidate programs to generate a solution. Furthermore, our findings indicate that Library Learning effectively enhances program synthesis in domains that are not explicitly designed to showcase its advantages, thereby highlighting the broader applicability of Library Learning.
