なぜ無限の型階層なのか?


18

Coq、Agda、およびIdrisには、無限のタイプ階層があります(タイプ1:タイプ2:タイプ3:...)。しかし、なぜその代わりλC、唯一の2種類、持っている構造の計算に最も近いですラムダキューブのシステムのようにそれをしないと、及びこれらのルールを?

:

ΓT1:s1Γ,x:T1t:T2Γ(λx:T1,t):(Πx:T1,T2)

ΓT1:s1Γ,x:T1T2:s2Γ(Πx:T1,T2):s2

これは簡単そうです。このシステムには重要な制限がありますか?

回答:


19

実際、CoCのアプローチはより表現力があり、任意の命令的数量化が可能です。たとえば、タイプa.aaはそれ自体でインスタンス化して(\ forall a。\; a \ to a)\ to(\ forall a。\; a \ to a)を取得できますが(a.aa)(a.aa)、これはユニバース階層では不可能です。

広く使用されない理由は、命令的数量化が古典的な論理と互換性がないためです。持っている場合、型が素朴な方法で集合として解釈される型理論のモデルを与えることはできません--- John Reynoldsの有名な論文Polymorphism is Not Set-theoreticを参照してください。

多くの人々は、通常の数学的証明を機械チェックする方法として型理論を使用したいので、通常の基礎と両立しない型理論的特徴については一般的に熱心ではありません。実際、Coqは本来、不可逆性をサポートしていましたが、着実に放棄しました。


9

レベルが実際に使用される理由についてもう少し説明しながら、Neelの(いつものように優れた)答えを補完します。

CoCの最初の重要な制限は、簡単なことです!驚くべき観察結果は、それが複数の要素を持っていることを証明できる型が存在しないことであり、それらの要素の数は無限です。ユニバースを2つ追加するだけで、無数の要素を含む自然数と、すべての「単純な」データ型が得られます。

2番目の制限は計算ルールです。CoC は反復のみをサポートします。つまり、recusive関数は引数のサブタームにアクセスできません。このため、誘導型をプリミティブ構造として追加すると、CICが発生しやすくなります。しかし、今、別の問題が発生します:最も自然な帰納法(この文脈では消去と呼ばます)は、除外された中間と矛盾しています!これらの問題は、帰納法をユニバースを持つ述語型に制限する場合には現れません。

結論として、CoCには、基本システムで求められる表現力も堅牢性もありません。ユニバースを追加すると、これらの問題の多くが解決します。


最初の制限に関する参考文献はありますか?そうでない場合、2番目の宇宙が(命題?メタ?)不平等を証明するのにどのように役立つかについてのヒントを教えてください。
ルカシュルー

@ŁukaszLewこれは実際には、「無関係な証明」モデルの単純な結果であり、多少簡単にグーグルで検索できます。そのモデルでは、2つ以上の要素を持つ型はありません。2つのユニバースがあると、そのモデルは存在しなくなります。Alexandre Miquelの論文は、2つの宇宙を持つ無限の数の要素を持つ型への参照を提供します。
コディ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.