Charlie Murphy, Keith Johnson, Thomas Reps, Loris D'Antoni
{"title":"Verifying Solutions to Semantics-Guided Synthesis Problems","authors":"Charlie Murphy, Keith Johnson, Thomas Reps, Loris D'Antoni","doi":"arxiv-2408.15475","DOIUrl":null,"url":null,"abstract":"Semantics-Guided Synthesis (SemGuS) provides a framework to specify synthesis\nproblems in a solver-agnostic and domain-agnostic way, by allowing a user to\nprovide both the syntax and semantics of the language in which the desired\nprogram should be synthesized. Because synthesis and verification are closely\nintertwined, the SemGuS framework raises the problem of how to verify programs\nin a solver and domain-agnostic way. We prove that the problem of verifying whether a program is a valid solution\nto a SemGuS problem can be reduced to proving validity of a query in the `CLP\ncalculus, a fixed-point logic that generalizes Constrained Horn Clauses and\nco-Constrained Horn Clauses. Our encoding into `CLP allows us to further\nclassify the SemGuS verification problems into ones that are reducible to\nvalidity of (i) first-order-logic formulas, (ii) Constrained Horn Clauses,\n(iii) co-Constrained Horn Clauses, and (iv) `CLP queries. Furthermore, our\nencoding shines light on some limitations of the SemGuS framework, such as its\ninability to model nondeterminism and reactive synthesis. We thus propose a\nmodification to SemGuS that makes it more expressive, and for which verifying\nsolutions is exactly equivalent to proving validity of a query in the `CLP\ncalculus. Our implementation of SemGuS verifiers based on the above encoding\ncan verify instances that were not even encodable in previous work.\nFurthermore, we use our SemGuS verifiers within an enumeration-based SemGuS\nsolver to correctly synthesize solutions to SemGuS problems that no previous\nSemGuS synthesizer could solve.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2024-08-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Programming Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2408.15475","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
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.