Table of Contents
Fetching ...

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.

AbstractBeam: Enhancing Bottom-Up Program Synthesis using Library Learning

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.
Paper Structure (21 sections, 3 equations, 4 figures)

This paper contains 21 sections, 3 equations, 4 figures.

Figures (4)

  • Figure 1: Systematic overview of wake-sleep cylce of the AB framework. During the wake phase, programs are generated to solve tasks. Solutions are then used in the sleep phase to find abstractions. Finally, the model architecture and the training data are adapted to newfound abstractions.
  • Figure 2: AB outperforms LB. The difference is especially dominant for program length 7. Here, 62% and of programs contain abstractions. The differences are all significant for program lengths that use abstractions except length 8. ${ns: p >= 0.05}, {*: p < 0.05}, {{***}: p < 0.001},\\ {{****}: p < 0.0001}$
  • Figure 3: With less enumeration time and fewer candidate programs AB achieves better performance than LB.
  • Figure 4: Due to the distribution shift, no performance differences between LB and AB exist on the synthetic dataset.