[論文レビュー] Practical Sized Typing for Coq
この論文は、再帰的およびコリカーシブ関数の両方のサイズ付き型チェックと推論を統合するCoqにおける実用的な拡張を提示している。これにより、構文的注釈を必要とせず、終了性および生産性の検証が可能になる。このアプローチは、アノテートされていないGallina項をサポートし、後方互換性を保ったまま、クイックソートのような自然なプログラムを書けるようにする。
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における構文的終了性チェックの制限により、クイックソートのような自然な終了性を持つプログラムを書けないという問題に対処すること。
- 計算的(コ)帰納的構成(CIC)におけるグローバル定義およびアノテートされていないGallina項をサポートするサイズ付き型システムを設計すること。
- 既存のCoq開発に対して後方互換性を保ちつつ、サイズに基づく終了性および生産性のチェックを追加すること。
- 既存のコードベースを破壊せずに、サイズ付き型チェックをオプションで有効化できるようにするCoqカーネル拡張を実装すること。
提案手法
- 終了性および生産性の推論が可能になるように、サイズ付き型を計算的(コ)帰納的構成(CIC)に拡張する。
- 完全にアノテートされていないGallina項に対してもサイズを推論できるサイズ付き型推論アルゴリズムを設計する。
- Gallinaの構文および型システムにサイズ付き型を統合することで、グローバル定義をサポートする。
- Coqカーネルを変更し、サイズ付き型チェックをオプションで強制することで、後方互換性を保つ。
- 再帰的およびコリカーシブ関数における構造の減少または増加を追跡するために、サイズ注釈をリファインメント型の一種として使用する。
- 手動による注釈を避けるために、項の構造からサイズを推論する型推論メカニズムを採用する。
実験結果
リサーチクエスチョン
- RQ1ユーザー定義関数に構文的注釈を要求せずに、Coqのカーネルにサイズ付き型を統合できるか?
- RQ2論理的一致性を保ちつつ、アノテートされていないGallina項に対してもサイズ付き型推論を実現できるか?
- RQ3サイズ付き型の追加が、既存のCoq開発の保守性および後方互換性に与える影響は何か?
- RQ4手動によるサイズ注釈なしで、クイックソートのような慣用的なプログラムの終了性および生産性をサイズ付き型で効果的に検証できるか?
- RQ5Gallinaにおけるグローバル定義(実世界のCoqコードで一般的)をサポートするように、サイズ付き型を拡張できるか?
主な発見
- 提案されたサイズ付き型システムは、クイックソートのような一般的なプログラムの終了性および生産性を、手動によるサイズ注釈なしに正しく検証できた。
- 推論アルゴリズムは、アノテートされていないGallina項に対しても正確にサイズを推論でき、実世界の開発における実用的利用を可能にした。
- カーネル拡張は完全な後方互換性を保ち、既存のCoqコードが変更なしにコンパイル可能であることを確認した。
- このアプローチは、グローバル定義およびコリカーシブ関数をサポートしており、CICにおけるサイズ付き型に関する先行研究を拡張した。
- サイズに基づく推論が、クイックソートのような実用的かつスケーラブルな主な証明支援ツール(Coq)においても実用的かつスケーラブルであることが示された。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。