Skip to main content
QUICK REVIEW

[論文レビュー] The SyGuS Language Standard Version 2.1

Saswat Padhi, Elizabeth Polgreen|arXiv (Cornell University)|Dec 10, 2023
Formal Methods in Verification被引用数 4
ひとこと要約

この論文は、表現力と相互運用性を向上させるために、構文誘導型合成(SyGuS)問題のための形式的仕様である SyGuS 言語標準バージョン 2.1 を導入する。SMT-LIB の基盤に基づいて入出力フォーマットを標準化し、'assume' や 'oracle-constraint' といった新しいコマンドを導入。また、より高い正しさと拡張性を実現するため、文法、論理、ソルバとのインタラクションの意味論を洗練化する。

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.

研究の動機と目的

  • 構文誘導型合成(SyGuS)ソルバ用の標準的で相互運用可能な入出力フォーマットを定義すること。
  • 文法、論理、制約の取り扱いの洗練により、合成仕様の表現力と正しさを向上させること。
  • 外部オラクルによる推論を統合するための新しいコマンド('oracle-constraint' および 'oracle-assume')を導入し、外部検証および PBE スタイルの合成を可能にすること。
  • 構文、型、項に関して SMT-LIB 2.6 標準と一致させるため、SyGuS 形式を SMT-LIB 2.6 標準に合わせることで一貫性とツール互換性を確保すること。
  • ソルバの応答(例:'fail' や 'infeasible')を含む入出力の意味論を形式化し、ソルバ間の相互運用性と正しさを向上させること。

提案手法

  • 項、型、および型の構文に SMT-LIB 2.6 を採用し、負の定数には単項マイナスを要求し、明示的なビットベクタ構文( _ BitVec n )を導入する。
  • 合成の仮定 α を明示的に表現できる新しい 'assume' コマンドを導入し、問題を ∃f₁,…,fₙ.∀v₁,…,vₘ.α⇒φ に一般化する。
  • 非推奨となった構文('Start'、'InputVariable'、'LocalVariable'、'Enum')を、標準化された SMT-LIB の同等物に置き換える。
  • 'oracle-constraint' および 'oracle-assume' を導入し、外部オラクルが合成空間を動的に制約するか、正しさの検証を提供できるようにする。
  • 'set-feature' を定義し、オラクルなどの機能の有効・無効を可能にすることで、論理およびコマンドの制限を細かく制御できるようにする。
  • 文法をバインダフリーの項に制限し、非終端記号の事前宣言を義務づけることで、形式的な整合性とパースの明確さを向上させる。

実験結果

リサーチクエスチョン

  • RQ1多様な理論や文法をサポートできる、標準的で相互運用可能な言語フォーマットを、構文誘導型合成に設計するにはどうすればよいか?
  • RQ2SyGuS 形式に必要な変更は何か? これにより、表現力、正しさ、SMT-LIB 標準との整合性が向上する。
  • RQ3外部オラクルを合成仕様に形式的に統合するにはどうすればよいか? これにより、PBE や不変条件の合成が可能になる。
  • RQ4異なる論理に対して、合成インスタンスの整合性と妥当性を保証するための意味論的・構文的制約は何か?
  • RQ5ソルバの応答をどのように標準化すれば、失敗、不実行可能性、正解の解釈を一貫して行えるか?

主な発見

  • SyGuS 2.1 標準は 'assume' コマンドを導入し、背景仮定 α を明示的に記述できるようにし、合成問題を ∃f₁,…,fₙ.∀v₁,…,vₘ.α⇒φ に一般化する。
  • オラクル制約とオラクル関数記号が正式に導入され、ソルバが合成中に外部オラクルとやり取りできるようになり、ブラックボックスオラクルを用いた PBE や不変条件の合成が可能になる。
  • 'Start'、'InputVariable'、'LocalVariable' の削除により、文法構文が簡素化され、文法の最初の非終端記号が暗黙的に開始記号として機能するようになる。
  • 文法の右辺はすべてバインダフリーであることが必須となり、let-項が排除され、項の構文において SMT-LIB に準拠するようになる。
  • 'set-option' コマンドは SMT-LIB 2.6 と一致させるために 'set-option' に名称変更され、'fail' 応答のフォーマットも括弧なしで指定されるようになった。
  • 標準では、入力論理、出力論理、および 'set-feature' を用いた機能を形式化し、合成インスタンスにおけるサポートされるコマンドおよび制約の正確な制御が可能になる。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。