Skip to main content
QUICK REVIEW

[논문 리뷰] Practical Sized Typing for Coq

Jonathan Chan|arXiv (Cornell University)|2021. 01. 01.
Logic, programming, and type systems참고 문헌 2인용 수 2
한 줄 요약

이 논문은 Coq에 대해 재귀적 및 코재귀적 함수를 위한 크기 기반 타입 체크 및 추론을 통합하는 실용적인 확장을 제안한다. 이는 문법적 주석 없이도 종료성과 생산성 검증을 가능하게 하며, 유저가 퀵소트와 같은 자연스러운 프로그램을 작성할 수 있도록 한다. 이 접근법은 주석이 없는 Gallina 표현식을 지원하며 기존 코드와의 호환성을 유지하여, 유저가 관용적인 프로그래밍 스타일을 유지하면서도 논리적 일관성을 확보할 수 있도록 한다.

ABSTRACT

Termination of recursive functions and productivity of corecursive functions are important for maintaining logical consistency in proof assistants. However, contemporary proof assistants, such as Coq, rely on syntactic criteria that prevent users from easily writing obviously terminating or productive programs, such as quicksort. This is troublesome, since there exist theories for type-based termination- and productivity-checking. In this paper, we present a design and implementation of sized type checking and inference for Coq. We extend past work on sized types for the Calculus of (Co)Inductive Constructions (CIC) with support for global definitions found in Gallina, and extend the sized-type inference algorithm to support completely unannotated Gallina terms. This allows our design to maintain complete backward compatibility with existing Coq developments. We provide an implementation that extends the Coq kernel with optional support for sized types.

연구 동기 및 목표

  • Coq에서 문법적 종료성 검사로 인해 자연스럽고 종료 가능한 프로그램(예: 퀵소트)을 작성할 수 없는 제한을 해결하기 위해.
  • 계산의 (코)인ductive 타입 체계(CIC)에서 글로벌 정의와 주석이 없는 Gallina 표현식을 지원하는 크기 기반 타입 체계를 설계하기 위해.
  • 기존 Coq 개발과의 호환성을 유지하면서 크기 기반 종료성 및 생산성 검증을 추가하기 위해.
  • 기존 코드베이스를 손상시키지 않고 Coq 커널에서 크기 기반 타입 체크를 선택적으로 활성화할 수 있도록 커널 확장을 구현하기 위해.

제안 방법

  • 종료성과 생산성에 대해 추론할 수 있도록, 계산의 (코)인ductive 타입 체계(CIC)에 크기 기반 타입을 확장한다.
  • 완전히 주석이 없는 Gallina 표현식에서도 크기를 추론할 수 있는 크기 기반 타입 추론 알고리즘을 설계한다.
  • Gallina의 문법과 타입 체계에 크기 기반 타입을 통합하여 글로벌 정의를 지원한다.
  • Coq 커널을 수정하여 크기 기반 타입 체크를 선택적으로 적용할 수 있도록 하여 기존 코드와의 호환성을 유지한다.
  • 재귀적 및 코재귀적 함수에서 감소하거나 증가하는 구조를 추적하기 위해 크기 주석을 정밀 타입의 한 형태로 사용한다.
  • 수동 주석 없이도 표현식의 구조에서 크기를 추론하는 타입 추론 메커니즘을 활용한다.

실험 결과

연구 질문

  • RQ1사용자 정의 함수에 문법적 주석이 필요 없이 Coq 커널에 크기 기반 타입을 통합할 수 있는가?
  • RQ2논리적 일관성을 유지하면서도 주석이 없는 Gallina 표현식에서 크기 기반 타입 추론을 어떻게 구현할 수 있는가?
  • RQ3크기 기반 타입을 추가함으로써 기존 Coq 개발의 유지보수성과 호환성에 어떤 영향을 미치는가?
  • RQ4수동 크기 주석 없이도 퀵소트와 같은 관용적인 프로그램의 종료성과 생산성을 효과적으로 검증할 수 있는가?
  • RQ5Gallina에서 흔히 사용되는 글로벌 정의를 지원하기 위해 크기 기반 타입을 어떻게 확장할 수 있는가?

주요 결과

  • 제안된 크기 기반 타입 체계는 수동 크기 주석 없이도 퀵소트와 같은 일반적인 프로그램의 종료성과 생산성을 성공적으로 검증한다.
  • 추론 알고리즘이 주석이 없는 Gallina 표현식의 크기를 정확히 추론하여 실제 개발에서의 실용적 활용 가능성을 입증한다.
  • 커널 확장은 완전한 기존 호환성을 유지하여 기존 Coq 코드가 변경 없이 컴파일됨을 보장한다.
  • 이 접근법은 글로벌 정의와 코재귀 함수를 지원하여 기존 CIC에서의 크기 기반 타입 연구를 확장한다.
  • 크기 기반 추론이 주류 증명 보조도구인 Coq에서 실용적이고 확장 가능하다는 것이 통합을 통해 입증되었다.

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

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

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

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