Skip to main content
QUICK REVIEW

[Paper Review] The SyGuS Language Standard Version 2.1

Saswat Padhi, Elizabeth Polgreen|arXiv (Cornell University)|Dec 10, 2023
Formal Methods in Verification4 citations
TL;DR

This paper introduces SyGuS Language Standard Version 2.1, a formal specification for syntax-guided synthesis (SyGuS) problems, enhancing expressiveness and interoperability. It standardizes input/output formats using SMT-LIB foundations, introduces new commands like 'assume' and 'oracle-constraint', and refines grammar, logic, and solver interaction semantics for improved correctness and extensibility in program synthesis systems.

ABSTRACT

The classical formulation of the program-synthesis problem is to find a program that meets a correctness specification given as a logical formula. Syntax-guided synthesis (SyGuS) is a standardized format for specifying the correctness specification with a syntactic template that constrains the space of allowed implementations. The input to SyGuS consists of a background theory, a semantic correctness specification for the desired program given by a logical formula, and a syntactic set of candidate implementations given by a grammar. The computational problem then is to find an implementation from the set of candidate expressions that satisfies the specification in the given theory. The formulation of the problem builds on SMT-LIB. This document defines the SyGuS 2.1 standard, which is intended to be used as the standard input and output language for solvers targeting the syntax-guided synthesis problem. It borrows many concepts and language constructs from the standard format for Satisfiability Modulo Theories (SMT) solvers, the SMT-LIB 2.6 standard.

Motivation & Objective

  • To define a standardized, interoperable input and output format for syntax-guided synthesis (SyGuS) solvers.
  • To improve expressiveness and correctness in synthesis specifications by refining grammar, logic, and constraint handling.
  • To integrate oracle-based reasoning via new commands like 'oracle-constraint' and 'oracle-assume' for external verification and PBE-style synthesis.
  • To align the SyGuS format with SMT-LIB 2.6 standards for syntax, sorts, and terms, ensuring consistency and tool compatibility.
  • To formalize input and output semantics, including solver responses such as 'fail' and 'infeasible', to improve solver interoperability and correctness.

Proposed method

  • Adopts SMT-LIB 2.6 syntax for terms, sorts, and types, requiring unary minus for negative constants and explicit bit-vector syntax ( _ BitVec n ).
  • Introduces a new 'assume' command to express background assumptions α in synthesis conjectures, generalizing the problem to ∃f₁,…,fₙ.∀v₁,…,vₘ.α⇒φ.
  • Replaces deprecated constructs like 'Start', 'InputVariable', 'LocalVariable', and 'Enum' with standardized SMT-LIB equivalents.
  • Introduces 'oracle-constraint' and 'oracle-assume' to allow external oracles to dynamically constrain synthesis space or provide correctness checks.
  • Defines 'set-feature' to enable or disable features like oracles, allowing fine-grained logic and command restrictions.
  • Restricts grammars to binder-free terms and enforces non-terminal predeclaration, improving formal well-formedness and parsing clarity.

Experimental results

Research questions

  • RQ1How can a standardized, interoperable language format be designed for syntax-guided synthesis that supports diverse theories and grammars?
  • RQ2What changes to the SyGuS format are necessary to improve expressiveness, correctness, and alignment with SMT-LIB standards?
  • RQ3How can external oracles be formally integrated into synthesis specifications to support PBE and invariant synthesis?
  • RQ4What semantic and syntactic constraints are required to ensure well-formedness and validity of synthesis instances across different logics?
  • RQ5How should solver responses be standardized to support consistent interpretation of failure, infeasibility, and correct solutions?

Key findings

  • The SyGuS 2.1 standard introduces the 'assume' command, enabling background assumptions α to be explicitly stated, generalizing the synthesis problem to ∃f₁,…,fₙ.∀v₁,…,vₘ.α⇒φ.
  • Oracle constraints and oracle function symbols are formally introduced, allowing solvers to interact with external oracles during synthesis, enabling PBE and invariant synthesis with black-box oracles.
  • The removal of 'Start', 'InputVariable', and 'LocalVariable' simplifies grammar syntax, with the first non-terminal in a grammar now implicitly serving as the start symbol.
  • All grammar right-hand sides are now required to be binder-free, eliminating let-terms and enforcing SMT-LIB compliance for term syntax.
  • The 'set-option' command is renamed to 'set-option' to align with SMT-LIB 2.6, and 'fail' responses are now formatted without parentheses.
  • The standard formalizes input logics, output logics, and features via 'set-feature', enabling precise control over supported commands and constraints in a synthesis instance.

Better researchstarts right now

From reading papers to final review, dramatically reduce your research time.

No credit card · Free plan available

This review was created by AI and reviewed by human editors.