Skip to main content
QUICK REVIEW

[논문 리뷰] Revisiting Parametricity: Inductives and Uniformity of Propositions

Abhishek Anand, Greg Morrisett|arXiv (Cornell University)|2017. 05. 02.
Logic, programming, and type systems참고 문헌 17인용 수 8
한 줄 요약

이 논문은 Coq에서 다형성 명제가 등장하는 이sovorphism에 대해 균일하게 관련되도록 보장하는 새로운 매개변수성 번역을 제안한다. 이는 논리적으로 동치인 명제와 관련된 증명을 생성하며, 기존의 작업과 달리 등장하는 이sovorphism에 대한 가정을 요구함으로써 컴파일러 정당성 및 의존형 타입 검증을 위한 더 강력한 자유 정리(free theorems)를 가능하게 한다.

ABSTRACT

Reynold's parametricity theory captures the property that parametrically polymorphic functions behave uniformly: they produce related results on related instantiations. In dependently-typed programming languages, such relations and uniformity proofs can be expressed internally, and generated as a program translation. We present a new parametricity translation for a significant fragment of Coq. Previous translations of parametrically polymorphic propositions allowed non-uniformity. For example, on related instantiations, a function may return propositions that are logically inequivalent (e.g. True and False). We show that uniformity of polymorphic propositions is not achievable in general. Nevertheless, our translation produces proofs that the two propositions are logically equivalent and also that any two proofs of those propositions are related. This is achieved at the cost of potentially requiring more assumptions on the instantiations, requiring them to be isomorphic in the worst case. Our translation augments the previous one for Coq by carrying and compositionally building extra proofs about parametricity relations. It is made easier by a new method for translating inductive types and pattern matching. The new method builds upon and generalizes previous such translations for dependently-typed programming languages. Using reification and reflection, we have implemented our translation as Coq programs. We obtain several stronger free theorems applicable to an ongoing compiler-correctness project. Previously, proofs of some of these theorems took several hours to finish.

연구 동기 및 목표

  • 기존의 매개변수성 번역에서 다형성 명제가 등장하는 이sovorphism에 대해 균일하지 않게 관련될 수 있는 한계(예: True와 False와 같이 논리적으로 동치가 아닌 명제로 매핑되는 경우)를 해결하기 위해.
  • 이sovorphism에 대한 등장에서 논리적으로 동치인 명제와 관련된 증명을 보장하는 Coq 내재형 매개변수성 번역을 개발하기 위해.
  • 의존형 타입 프로그램에서의 인덕티브 타입과 패턴 매칭 구문을 다룰 수 있도록 이전 번역을 확장하기 위해.
  • 관찰적 동치성과 같은 결정 불가능한 관계의 검증을 지원하기 위해, 매개변수성 정리가 여전히 의미 있고 사용 가능하도록 보장하기 위해.
  • 자유 정리에 대해 완전히 정밀화된 Coq 증명을 자동 생성하는 실용적이고 오픈소스 구현을 제공하여 수동 증명의 노력을 줄이기 위해.

제안 방법

  • 기존의 매개변수성 번역(Keller와 Lasson, 2012)을 보완하여, 이sovorphism에 대한 등장에서 명제 간의 논리적 동치성과 증명 관계에 대한 구성적 증명을 도입한다.
  • 약한 버전(\llbracket \rrbracket_{iso})과 강한 버전(\llbracket \rrbracket_{sIso})의 두 가지 번역을 도입하며, 약한 버전은 이sovorphism 가정을 요구하고, 강한 버전은 가능한 경우 이를 완화한다.
  • 기존 접근법을 일반화하고 완전한 구성성(compositional)을 지원하는 인덕티브 타입과 패턴 매칭의 번역을 위한 새로운 방법을 개발한다.
  • 재현(reification)과 반사(reflection)을 사용하여 번역을 실행 가능한 Coq 프로그램으로 구현함으로써 자동 증명 생성을 가능하게 한다.
  • 매개변수성 관계에 대해 Total과 OneToOne 성질을 강제하여 관련된 등장에서 균일한 동작을 보장한다.
  • Coq의 의존형 타입 체계를 활용하여 매개변수성 관계를 내부적으로 표현하고 검증함으로써 외부 메타이론에 의존하지 않도록 한다.

실험 결과

연구 질문

  • RQ1Coq에서의 매개변수성 번역은 다형성 명제가 등장하는 이sovorphism에 대해 관련되어 있을 뿐 아니라 논리적으로 동치임을 보장할 수 있는가?
  • RQ2의존형 타입 언어인 Coq와 같은 환경에서 다형성 명제의 균일성을 확보하기 위해 필요한 가정은 무엇인가?
  • RQ3인덕티브 타입과 패턴 매칭은 어떻게 번역할 수 있는가? 이는 매개변수성을 유지하고 구성적 추론을 지원하는 방식이어야 한다.
  • RQ4번역을 실행 가능한 Coq 코드로 구현하여 완전히 정밀화된 증명을 자동 생성할 수 있는가?
  • RQ5번역에서 이sovorphism 가정이 적용 범위를 제한하지만, 여전히 검증을 위한 유용한 자유 정리를 가능하게 하는가?

주요 결과

  • 제안된 번역은 매개변수적으로 관련된 명제가 논리적으로 동치임을 보장하여, 이전 번역이 비균일한 결과를 허용할 수 있었던 핵심적 한계를 해결한다.
  • 이 번역은 명제 간의 관계 뿐 아니라 해당 명제의 두 증명 간의 관계까지도 생성함으로써 유형 안정성과 검증 능력을 향상시킨다.
  • 관찰적 동치성과 같은 결정 불가능한 관계에 대해서도 번역은 의미 있고 사용 가능한 자유 정리를 생성하며, 이는 이전 접근법으로는 달성할 수 없었던 것이다.
  • 구현체는 https://github.com/aa755/paramcoq-iff 에서 공개되어 있으며, 이전에는 수 시간이 걸려 수동으로 작성되었던 증명을 자동화한다.
  • 강한 번역(\llbracket \rrbracket_{sIso})은 일부 경우에 이sovorphism 가정의 필요성을 줄이며, 모든 경우에 이sovorphism를 요구하지 않더라도 균일성이 달성될 수 있음을 보여준다.
  • 이 방법은 컴파일러 정당성 프로젝트에서 상당한 자동화를 가능하게 하여, 수동으로 작성된 증명을 검증된 기계 생성 증명으로 대체한다.

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

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

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

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