🤖 AI Summary
This work addresses the absence of solver- and domain-agnostic verification mechanisms in Semantic-Guided Synthesis (SemGuS). Methodologically, it rigorously reduces correctness checking of SemGuS solutions to validity checking in Constraint Logic Programming (CLP), uniformly supporting first-order logic, constrained/coinstrained Horn clauses, and general CLP queries; it further extends the SemGuS syntax to accommodate nondeterministic and reactive synthesis. The key contributions are: (i) the first sound and complete reduction of SemGuS verification to CLP validity, thereby overcoming prior expressiveness limitations; (ii) enabling verification of previously inexpressible complex synthesis instances; and (iii) integration into an enumerative solver, achieving successful synthesis on benchmark problems unsolved by all existing SemGuS solvers. This framework establishes a foundational, general-purpose verification infrastructure for SemGuS.
📝 Abstract
Semantics-Guided Synthesis (SemGuS) provides a framework to specify synthesis problems in a solver-agnostic and domain-agnostic way, by allowing a user to provide both the syntax and semantics of the language in which the desired program should be synthesized. Because synthesis and verification are closely intertwined, the SemGuS framework raises the problem of how to verify programs in a solver and domain-agnostic way. We prove that the problem of verifying whether a program is a valid solution to a SemGuS problem can be reduced to proving validity of a query in the `CLP calculus, a fixed-point logic that generalizes Constrained Horn Clauses and co-Constrained Horn Clauses. Our encoding into `CLP allows us to further classify the SemGuS verification problems into ones that are reducible to validity of (i) first-order-logic formulas, (ii) Constrained Horn Clauses, (iii) co-Constrained Horn Clauses, and (iv) `CLP queries. Furthermore, our encoding shines light on some limitations of the SemGuS framework, such as its inability to model nondeterminism and reactive synthesis. We thus propose a modification to SemGuS that makes it more expressive, and for which verifying solutions is exactly equivalent to proving validity of a query in the `CLP calculus. Our implementation of SemGuS verifiers based on the above encoding can verify instances that were not even encodable in previous work. Furthermore, we use our SemGuS verifiers within an enumeration-based SemGuS solver to correctly synthesize solutions to SemGuS problems that no previous SemGuS synthesizer could solve.