Skip to main content
QUICK REVIEW

[논문 리뷰] A Productivity Checker for Logic Programming

Ekaterina Komendantskaya, Patricia Johann|arXiv (Cornell University)|2016. 08. 15.
Logic, programming, and type systems참고 문헌 13인용 수 4
한 줄 요약

이 논문은 논리 프로그램이 공액적 추론을 통해 무한한 term을 생성하는지 여부를 반결정 가능하게 판별하는 관찰적 생산성 검사기(observation productivity checker)를 소개한다. 유니버설 관찰 가능성과 재귀적 트리 및 공액적 불변량을 통한 존재적 활성 검사 방식을 조합함으로써, 비선형적이고 존재적 양을 포함한 프로그램에서도 생산성 행동을 검증할 수 있으며, Prolog 및 유사 시스템에서의 타당한 공액적 추론을 가능하게 한다.

ABSTRACT

Automated analysis of recursive derivations in logic programming is known to be a hard problem. Both termination and non-termination are undecidable problems in Turing-complete languages. However, some declarative languages offer a practical work-around for this problem, by making a clear distinction between whether a program is meant to be understood inductively or coinductively. For programs meant to be understood inductively, termination must be guaranteed, whereas for programs meant to be understood coinductively, productive non-termination (or "productivity") must be ensured. In practice, such classification helps to better understand and implement some non-terminating computations. Logic programming was one of the first declarative languages to make this distinction: in the 1980's, Lloyd and van Emden's "computations at infinity" captured the big-step operational semantics of derivations that produce infinite terms as answers. In modern terms, computations at infinity describe "global productivity" of computations in logic programming. Most programming languages featuring coinduction also provide an observational, or small-step, notion of productivity as a computational counterpart to global productivity. This kind of productivity is ensured by checking that finite initial fragments of infinite computations can always be observed to produce finite portions of their infinite answer terms. In this paper we introduce a notion of observational productivity for logic programming as an algorithmic approximation of global productivity, give an effective procedure for semi-deciding observational productivity, and offer an implemented automated observational productivity checker for logic programs.

연구 동기 및 목표

  • 비종료적인 논리 프로그램 유도에 대한 추론 문제, 특히 무한 term을 생성하는 경우에 대해 다루기.
  • 논리 프로그래밍에서 전역 생산성(global productivity)의 실용적 대안으로서의 관찰적 생산성의 개념을 체계화하기.
  • 문법적 제약 없이 존재적 변수와 비선형 재귀를 포함한 프로그램에 대해서도 관찰적 생산성을 반결정하는 알고리즘 개발.
  • CoLP 및 S-해결과 같은 공액적 Prolog 다이얼렉트에서의 타당한 공액적 의미론 검증과 안정성 보장을 위한 실용적 도구 제공.
  • 프로그램 검증, 타입 체계, 무한 데이터 구조의 지연 평가에 활용 가능한 생산성 행동의 자동 검증서 제공.

제안 방법

  • 관찰적 생산성을 유니버설 관찰 가능성(모든 유도 단계에서 관찰 가능한 term을 생성함)과 존재적 활성성(무한 term이 단계별로 근사 가능함)의 조합으로 정의한다.
  • 재귀적 트리(rewriting trees)를 사용하여 term 감소와 SLD-해결 과정 중 유도 단계 간 전이를 모델링한다.
  • 핵심 기여는 공액적 불변량을 사용하여 루프에서 감소하고 다시 전이 과정에서 재활용되는 패턴을 기록함으로써, 무한 유도의 '생산자/소비자' 역학을 포착하는 것이다.
  • 재귀적 트리가 잎으로 향하는 term 감소와 가장 일반적인 일치자(most general unifiers, mgus)를 통한 구조적 재생산 여부를 분석함으로써 반결정 절차를 수행한다.
  • 기존의 term 재작성 시스템(TRS) 종료성 검사기와 통합하여 수 contractions 순서를 검증함으로써 모듈식 분석을 가능하게 한다.
  • Go로 구현되었으며 병렬 증명 검색을 지원하여 복잡한 논리 프로그램의 확장 가능한 분석을 가능하게 한다.

실험 결과

연구 질문

  • RQ1일반적인 논리 프로그램에 대해 관찰적 생산성은 결정 가능 또는 반결정 가능 성질로 정의될 수 있는가? 특정 다이얼렉트에 종속되지 않는다.
  • RQ2전역 생산성 — 즉, 무한 term을 무한한 시점에서 계산할 수 있는 능력 — 은 소단계적이고 관찰 가능한 행동을 통해 어떻게 알고리즘적으로 근사할 수 있는가?
  • RQ3무한 유도가 정규 term이 아닌 경우에도 유한 단계를 통해 지연적으로 근사 가능하도록 보장하는 형식적 조건은 무엇인가?
  • RQ4존재적 변수와 비선형 재귀를 포함한 프로그램에서 생산성 행동을 검증하기 위해 공액적 불변량을 자동으로 발견하고 검증할 수 있는가?
  • RQ5이 생산성 검사기는 CoLP나 S-해결과 같은 공액적 Prolog 시스템에서 타당한 공액적 추론을 보장하기 위한 사전 검사로 사용될 수 있는가?

주요 결과

  • 관찰적 생산성 검사기는 P5와 P2와 같이 무한 term p(f(f(...)))를 무한한 시점에서 생성하는 생산성 프로그램을 성공적으로 식별하며, P3와 P4와 같은 비생산성 루프는 정확히 거부한다.
  • 문법적 제약 없이 존재적 변수와 비선형 재귀를 포함한 모든 논리 프로그램에 대해 관찰적 생산성을 반결정 가능하게 분석할 수 있다.
  • 공액적 불변량은 무한 유도의 구조적 역학을 효과적으로 포착하여 재귀적 트리 전반에 걸쳐 term 감소와 재생산을 탐지하는 데 기여한다.
  • 검사기는 술어를 공액적이라고 타입화할 수 있도록 하여 논리 프로그래밍에서 인덕티브와 공액적 의미론을 정적 분류할 수 있도록 한다.
  • Go로 구현된 구현체는 병렬 증명 검색을 지원하며 CoLP와 같은 도구에 통합되어 사전 검증을 통해 공액적 추론의 타당성을 보장할 수 있다.
  • 닫힌 term의 해답이 도달 불가능한 경우에도, 비정규적인 무한 term(예: 프로그램 P6)의 지연 근사에 대한 일반적인 검증서를 제공한다.

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

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

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

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