Verifying Solutions to Semantics-Guided Synthesis Problems
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...
Saved in:
Main Authors | , , , |
---|---|
Format | Journal Article |
Language | English |
Published |
27.08.2024
|
Subjects | |
Online Access | Get full text |
Cover
Loading…
Summary: | 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. |
---|---|
DOI: | 10.48550/arxiv.2408.15475 |