Skip to main content
QUICK REVIEW

[논문 리뷰] A Verified Algorithm for Deciding Pattern Completeness

Cynthia Kop, Yamada, Akihisa|arXiv (Cornell University)|2017. 02. 08.
Semantic Web and Ontologies참고 문헌 2인용 수 2
한 줄 요약

이 논문은 논리 제약이 있는 용어 재작성 시스템(LCTRSs)에서 준-재귀성(quasi-reductivity)을 검증하기 위한 타당하고 효율적인 알고리즘을 제시한다. 이는 부적절한 패턴 매칭으로 인한 평가 정지 문제를 방지한다. 방법은 왼쪽 선형성, 생성자 타당성(constructor-soundness), 왼쪽 값 자유성(left-value-freeness)을 전제로 하여, 모든 가능한 생성자 패턴이 커버되어 있는지를 테스트함으로써 규칙의 완전성을 점검한다. 핵심 결과는 규칙 패턴에 대한 문법적 검사만으로도 준-재귀성을 확인하는 결정 절차이다.

ABSTRACT

Pattern completeness is the property that the left-hand sides of a functional program cover all cases w.r.t. pattern matching. In the context of term rewriting a related notion is quasi-reducibility, a prerequisite if one wants to perform ground confluence proofs by rewriting induction. In order to certify such confluence proofs, we develop a novel algorithm that decides pattern completeness and that can be used to ensure quasi-reducibility. One of the advantages of the proposed algorithm is its simple structure: it is similar to that of a regular matching algorithm and, unlike an existing decision procedure for quasi-reducibility, it avoids enumerating all terms up to a given depth. Despite the simple structure, proving the correctness of the algorithm is not immediate. Therefore we formalize the algorithm and verify its correctness using the proof assistant Isabelle/HOL. To this end, we not only verify some auxiliary algorithms, but also design an Isabelle library on sorted term rewriting. Moreover, we export the verified code in Haskell and experimentally evaluate its performance. We observe that our algorithm significantly outperforms existing algorithms, even including the pattern completeness check of the GHC Haskell compiler.

연구 동기 및 목표

  • LCTRSs에서 부적절한 패턴 매칭으로 인한 평가 정지 문제를 해결하기 위해.
  • LCTRSs에서 준-재귀성에 대한 결정 절차를 형식화하고 검증하기 위해.
  • 모든 생성자 패턴이 규칙에 의해 커버됨을 보장하는 실용적이고 구현 가능한 방법을 제공하기 위해.
  • 왼쪽 선형성, 생성자 타당성, 왼쪽 값 자유성 등의 조건을 설정하여 알고리즘이 타당하고 효과적으로 작동하도록 하기 위해.

제안 방법

  • 알고리즘은 규칙의 모든 왼쪽 항과 관련된 제약 조건을 분석함으로써 패턴 완전성을 점검한다.
  • 주어진 패턴과 제약 조건이 모든 가능한 생성자 항 입력을 커버할 수 있는지 판단하는 조건자 OK(−→x, A, b)를 정의한다.
  • 변수의 수와 종류에 대한 구조적 귀납법을 사용하며, 현재 인자가 값인지, 항인지, 또는 둘 다일 수 있는 선택인지에 따라 경우를 나눈다.
  • 패턴 매칭 중 변수의 포획을 방지하기 위해 왼쪽 선형성을 가정하여 안전하게 변수를 치환한다.
  • 모든 정의된 기호나 계산 기호 f에 대해, f에 대한 패턴 집합 Af가 OK((), Af, either)를 만족하는지 확인함으로써 모든 생성자 입력이 커버됨을 보장한다.
  • 핵심은 제약 조건을 전파하고, 모든 가능한 생성자 항 입력이 어떤 규칙에 의해 매칭될 수 있음을 검증하는 재귀적 커버리지 검사이다.

실험 결과

연구 질문

  • RQ1LCTRSs에서 생성자 항 이외의 지정된 비기본 불가분 항이 존재하지 않는다는 것을 자동으로 검증할 수 있는가?
  • RQ2어떤 조건 하에서 문법적 패턴 커버리지로 준-재귀성을 결정할 수 있는가?
  • RQ3LCTRSs의 규칙 패턴에서 누락된 케이스를 탐지하기 위한 타당하고 효율적인 알고리즘이 존재하는가?
  • RQ4왼쪽 선형성, 왼쪽 값 자유성, 생성자 타당성을 만족하는 LCTRSs의 클래스에 대해 이 알고리즘이 완전성도 확보할 수 있는가?

주요 결과

  • 알고리즘이 타당하다: 모든 기호 f에 대해 OK((), Af, either)가 성립하면 LCTRS는 준-재귀적이다.
  • 이 방법은 Ctrl 도구에 완전히 구현되어 실용적 적용 가능성을 입증하였다.
  • 알고리즘은 왼쪽 선형성, 생성자 타당성, 왼쪽 값 자유성의 세 가지 구조적 제약 조건에 의존하여 정확성을 보장한다.
  • 논문은 이 방법이 왼쪽 선형성, 왼쪽 값 자유성, 생성자 타당성을 만족하는 LCTRSs의 클래스에 대해서도 완전성도 갖는다고 추측하지만, 이는 여기서 증명되지 않았다.
  • 알고리즘은 규칙의 왼쪽 항과 그 제약 조건의 구조를 분석함으로써 누락된 패턴 케이스를 효과적으로 탐지한다.
  • 패턴 완전성의 검증은 모델 체크나 증명 탐색과 같은 고비용 작업을 피하기 위해 규칙 패턴에 대한 문법적 검사로 환원된다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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