Combining Top-down Propagation and Bottom-up Enumeration for Inductive Synthesis
summary
Combines top-down propagation with bottom-up enumeration to generate small component expressions and compose them into full programs; implements this in Duet and evaluates on 1500 tasks from SyGuS and other benchmarks. Duet incrementally grows a component pool, uses inverse functions and alignment-based heuristics for string replace, and composes solutions that often use components of size ≤7 (average size 4). Empirically Duet solves 94% solved of problems, outperforming EUSolver and CVC4 and beating Euphony on harder cases.
AI-written summary · about
chapters (20)
- 0:00Start
- 2:39Reconciling the Two Approaches
- 3:00Our Contributions
- 3:36Our Duet
- 4:43Example
- 6:43Existing Bottom-up Enumerative Strategy
- 7:51Top-Down Propagation
- 13:52Only for DSLs with Balanced Expressivity
- 14:22Our Key Idea
- 15:31Component Generation
- 15:52Inverse Set Outputs of Components
- 17:16We don't miss a solution
- 19:28Component-guided Inverse Function
- 23:07Our Inverse Functions for SyGus
- 24:02Universal Inverse Function
- 24:55Evaluation Setup
- 25:23Benchmarks
- 25:47Comparison to the Winners of SyGus Competitions
- 26:47Comparison to Euphony
- 27:31Analysis of Component Sizes
