The SemGuS Toolkit
Keith J. C. Johnson, Andrew Reynolds, Thomas Reps, Loris D'Antoni
TL;DR
The paper tackles the challenge of making program synthesis programmable, domain- and solver-agnostic by introducing SemGuS Format 1.0 and an open-source toolkit. It presents ks2, a baseline solver framework that compiles CHCs into executable semantics, provides incomplete SMT-based verification, and offers top-down and bottom-up enumerative solvers with extensible interfaces. A comprehensive benchmark suite of 431 SemGuS problems is provided to evaluate solver performance and guide future improvements, with 161 problems solvable by the baseline solvers. The work enables interoperability between solvers, supports multiple user-defined semantics, and lays the foundation for domain-specific languages and more scalable synthesis approaches leveraging the CHC-based semantics formalism.
Abstract
Semantics-Guided Synthesis (SemGuS) is a programmable framework for defining synthesis problems in a domain- and solver-agnostic way. This paper presents the standardized SemGuS format, together with an open-source toolkit that provides a parser, a verifier, and enumerative SemGuS solvers. The paper also describes an initial set of SemGuS benchmarks, which form the basis for comparing SemGuS solvers, and presents an evaluation of the baseline enumerative solvers.
