Skip to main content
QUICK REVIEW

[논문 리뷰] The SyGuS Language Standard Version 2.1

Saswat Padhi, Elizabeth Polgreen|arXiv (Cornell University)|2023. 12. 10.
Formal Methods in Verification인용 수 4
한 줄 요약

이 논문은 문법 유도 합성(Syntax-Guided Synthesis, 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 표준과 일치시켜 일관성과 도구 간 호환성을 확보하기 위해.
  • 솔버 응답(예: '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와 일치시키기 위해 그대로 유지되며, 'fail' 응답은 이제 괄호 없이 형식화된다.
  • 표준은 'set-feature'를 통해 입력 논리, 출력 논리 및 기능을 공식화하여, 합성 인스턴스에서 지원되는 명령어 및 제약 조건를 정밀하게 제어할 수 있도록 한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.