Programming-By-Example by Programming-By-Example: Synthesis of Looping Programs
Program synthesis has seen many new applications in recent years, in large part thanks to the introduction of SyGuS. However, no existing SyGuS solvers have support for synthesizing recursive functions. We introduce an multi-phase algorithm for the synthesis of recursive “looplike” programs in SyGuS for programming-by-example. We solve constraints individually and treat them as “unrolled“ examples of how a recursive program would behave, and solve for the generalized recursive solution. Our approach is modular and supports any SyGuS Solver.
READ FULL TEXT