直観型理論(構成型理論、またはマルティン=レーフ型理論(MLTT)とも呼ばれる)は、型理論であり、数学の代替的な基礎である。直観型理論は、スウェーデンの数学者で哲学者のペル・マルティン=レーフによって創始され、1972年に初めて発表された。この型理論には複数のバージョンがあり、マルティン=レーフは理論の内包的および外延的変種を提案し、初期の非述語的バージョンはジラールのパラドックスによって矛盾していることが示され、述語的バージョンに取って代わられた。しかし、すべてのバージョンは、依存型を使用した構成的論理の中核的な設計を維持している。
マルティン=レーフは、数学的構成主義の原理に基づいて型理論を設計した。構成主義では、存在証明には必ず「証拠」が必要である。したがって、「1000より大きい素数が存在する」という証明には、素数でありかつ1000より大きい特定の数を特定する必要がある。直観主義型理論は、BHK解釈を内部化することでこの設計目標を達成した。その結果として、証明は検証、比較、操作が可能な数学的対象となるという利点がある。
直観主義型理論の型コンストラクタは、論理結合子と1対1の対応関係に従うように構築されています。たとえば、含意と呼ばれる論理結合子() は関数の型に対応します (この対応関係はカリー・ハワード同型性と呼ばれています。以前の型理論もこの同型性に従っていましたが、マルティン・レーフは依存型を導入することで、それを述語論理に拡張した最初の人物でした。
型理論は、存在する基本的な対象を記述する、一種の数学的存在論、あるいは基礎理論である。標準的な基礎理論である集合論と数理論理学の組み合わせでは、基本的な対象は集合であり、集合は要素を含む容器である。型理論では、基本的な対象は項であり、それぞれの項はただ一つの型に属する。
直観主義型理論には3つの有限型があり、それらは5つの異なる型構成子を用いて合成されます。集合論とは異なり、型理論はフレーゲの論理体系のような論理体系の上に構築されているわけではありません。そのため、型理論の各機能は、数学と論理の両方の機能として二重の役割を果たします。
有限型は3種類あります。0型は項を含みません。1型は1つの標準項を含みます。2型は2つの標準項を含みます。
0型には項が含まれていないため、空型とも呼ばれます。存在し得ないものを表すために使用されます。また、次のように表記されます。そして、それは証明不可能なもの(つまり、証明が存在し得ないもの)を表す。結果として、否定はそれに対する関数として定義される。。
同様に、1型は1つの標準項を含み、存在を表します。これは単位型とも呼ばれます。
最後に、2型には2つの標準項が含まれます。これは2つの値の間の明確な選択を表します。ブール値には使用されますが、命題には使用されません。
命題は、特定の型によって表現される。例えば、真の命題は型1で表現でき、偽の命題は型0で表現できる。しかし、これらが唯一の命題であると断言することはできない。つまり、直観主義型理論における命題には排中律は成り立たない。
Σ型は順序対を含みます。典型的な順序対(または2タプル)型と同様に、Σ型はデカルト積を記述できます。他の2つのタイプでは、そして論理的には、そのような順序対には証明が含まれるだろう。そして証明そのため、次のような表記が見られることがあります。。
Σ型は、依存型付けのおかげで、一般的な順序対型よりも強力です。順序対では、2番目の項の型は1番目の項の値に依存することがあります。たとえば、ペアの1番目の項が自然数で、2番目の項の型が1番目の項と同じ長さの実数のシーケンスである場合などです。このような型は次のように記述されます。
集合論の用語を用いると、これはインデックス付きの非交和集合に似ています。通常のデカルト積の場合、第2項の型は第1項の値に依存しません。したがって、デカルト積を記述する型は次のように書かれています。
最初の項の値、は、2番目の項のタイプに依存しない。。
Σ型は、数学で使用されるより長い依存型タプルや、ほとんどのプログラミング言語で使用されるレコードや構造体を構築するために使用できます。依存型3タプルの例としては、2つの整数と、最初の整数が2番目の整数より小さいという証明があり、これは次の型で表されます。
依存型付けにより、Σ型は存在量化子の役割を果たすことができる。「存在する」という文は、タイプの、したがって「証明されている」は、最初の項目が値である順序対のタイプになります。タイプのそして2番目の項目は証明です2 番目の項目のタイプ (証明) に注目してください。) は順序対の最初の部分の値に依存します (そのタイプは次のようになります。
Π型は関数を含みます。一般的な関数型と同様に、入力型と出力型で構成されます。ただし、戻り値の型が入力値に依存するという点で、一般的な関数型よりも強力です。型理論における関数は、集合理論における関数とは異なります。集合理論では、引数の値を順序対の集合から検索します。型理論では、引数を項に代入し、その項に対して計算(「還元」)を適用します。
例えば、自然数が与えられた場合に、を含むベクトルを返します実数は次のように表記されます。
出力型が入力値に依存しない場合、関数型は単に次のように記述されることが多い。。 したがって、これは、自然数から実数への関数のタイプです。このようなΠ型は論理的含意に対応します。論理命題型に対応します、Aの証明を受け取り、Bの証明を返す関数を含む。この型は、より一貫性のある形で次のように記述できる。
Π型は論理学において全称量化にも用いられる。「すべてのタイプの、「証明されている」は関数になりますタイプの証明へしたがって、 の値が与えられればこの関数は、その値に対して保持されます。型は
= -型は2つの項から作成されます。そして新しいタイプを作成できますこの新しいタイプの項は、ペアが同じ標準項に還元されるという証明を表します。したがって、両方ともそして標準項を計算する次のような項があります直観主義型理論では、=型を導入する方法は反射律によるものだけです。
次のような=型を作成することが可能です。用語が同じ標準用語に還元されない場合、その新しいタイプの用語を作成することはできません。実際、用語を作成できたとしても、用語を作成できますそれを関数に入れると、次の型の関数が生成されます。。 以来直観主義型理論では否定をこのように定義します。あるいは、最後に、。
証明の等価性は証明論における活発な研究分野であり、ホモトピー型理論やその他の型理論の発展につながっている。
帰納型は、複雑な自己参照型の作成を可能にします。たとえば、自然数の連結リストは、空のリストか、自然数と別の連結リストのペアのいずれかになります。帰納型は、木やグラフなどの無制限の数学的構造を定義するために使用できます。実際、自然数型は帰納型として定義できます。または、別の自然数の次の数。
帰納型はゼロなどの新しい定数を定義しますそして後継関数。 以来定義がなく、代入によって評価することもできない用語、例えばそして自然数の標準項となる。
帰納型に関する証明は帰納法によって可能になります。新しい帰納型にはそれぞれ独自の帰納規則が付属しています。述語を証明するにはすべての自然数に対して、次の規則を使用します。
直観主義型理論における帰納型は、整礎木の型であるW型を用いて定義される。その後の型理論の研究により、より複雑な自己参照性を持つ型を扱うために、共帰納型、帰納再帰、帰納帰納といった概念が生み出された。高次の帰納型では、項間の等価性を定義することができる。
宇宙型を使用すると、他の型コンストラクタで作成されたすべての型について証明を記述できます。宇宙型内のすべての項任意の組み合わせで作成された型にマッピングできますそして帰納型コンストラクタ。ただし、パラドックスを避けるために、項はありません。それは以下に対応するいかなる場合でも[ 1 ]
すべての「小さな型」と使用する必要がありますこれには、しかし、それ自体のためではない同様に、宇宙には述語的階層が存在するので、任意の固定定数に対する証明を定量化するには宇宙では、。
宇宙型は型理論における厄介な特徴の一つである。マルティン=レーフのオリジナルの型理論は、ジラールのパラドックスを説明するために変更を余儀なくされた。その後の研究では、「超宇宙」、「マロー宇宙」、非述語的宇宙といったテーマが取り上げられた。
直観主義型理論の正式な定義は、判断を用いて記述される。例えば、「もしはタイプであり、それはタイプです「型である」という表現には、「型である」、「かつ」、「もし…ならば…」という判断があります。これは判断ではなく、定義される種類のことである。
型理論のこの第2レベルは、特に等価性に関しては混乱を招く可能性があります。項の等価性に関する判断があり、それは次のように述べるかもしれません。これは、2 つの項が同じ標準項に還元されるという記述です。また、型の等価性に関する判断もあります。つまり、は、次のタイプの要素です。そしてその逆もまた然り。型レベルでは、型が存在する。そして、証明があれば、それは用語を含みます。そして同じ値に減らす。(このタイプの項は項等価性判定を使用して生成されます。)最後に、英語には「four」という単語と記号「正典用語を参照するマーティン=レーフによれば、このような同義語は「定義的に等しい」と表現される。
以下の判決の説明は、Nordström、Petersson、およびSmithの議論に基づいています。
形式理論は型とオブジェクトを扱う。
型は次のように宣言されます。
オブジェクトが存在し、かつ型に属している条件は以下のとおりです。
物体は等しい
型は等しい
別の型のオブジェクトに依存する型は宣言されます
代用により削除
別の型のオブジェクトに依存するオブジェクトは、2 つの方法で作成できます。オブジェクトが「抽象化」されている場合は、次のように記述します。
代用により削除
オブジェクトに依存するオブジェクトは、再帰型の一部として定数として宣言することもできます。再帰型の例は次のとおりです。
ここ、は、オブジェクトに依存する定数です。抽象化とは関連付けられていません。等価性を定義することで削除できます。ここでは、加算との関係は等価性を使用して定義され、パターンマッチングを使用して再帰的な側面を処理します。:
不透明な定数として扱われるため、置換のための内部構造は持ちません。
つまり、理論においては、対象、型、そしてこれらの関係を用いて数式を表現する。既存の対象、型、関係から新たな対象、型、関係を生み出すために、以下の判断様式が用いられる。
慣例として、他のすべての型を表す型があります。それは(または)。 以来これは型であり、そのメンバーはオブジェクトです。依存型があります。各オブジェクトを対応する型にマッピングします。ほとんどのテキストではは決して書かれません。文の文脈から、読者はほぼ常に、型を参照しているか、またはオブジェクトを参照しているかそのタイプに対応するもの。
これが理論の完全な基礎であり、その他すべてはそこから派生したものである。
論理を実装するために、各命題には独自の型が割り当てられます。これらの型のオブジェクトは、命題を証明するさまざまな方法を表します。命題の証明がない場合、その型にはオブジェクトがありません。命題に対して作用する「and」や「or」などの演算子は、新しい型と新しいオブジェクトを導入します。したがって型によって異なる型ですそしてその種類その依存型のオブジェクトは、すべてのオブジェクトのペアに対して存在すると定義されています。そしてどちらかまたは証明がなく、空の型である場合、新しい型はこれも空です。
これは、他の型(ブール値、自然数など)とその演算子についても同様に行うことができます。
圏論の言語を用いて、RAG Seely は型理論の基本モデルとして局所的にデカルト閉圏(LCCC)の概念を導入した。これは、Cartmell の以前の研究に基づいて、Hofmann と Dybjer によって「族を持つ圏」または「属性を持つ圏」へと改良された。[ 2 ]
根本的な違いは、外延型理論と内包型理論です。外延型理論では、定義的(つまり計算的)等価性と命題的等価性は区別されず、命題的等価性には証明が必要です。結果として、外延型理論では、理論内のプログラムが終了しない可能性があるため、型チェックは決定不能になります。たとえば、このような理論では、 Yコンビネータに型を与えることができます。この詳細な例は、NordstömとPeterssonの「Martin-Löfの型理論におけるプログラミング」[ 3 ]に記載されています。しかし、これは外延型理論が実用的なツールの基盤となることを妨げるものではありません。たとえば、Nuprlは外延型理論に基づいています。
対照的に、内包型理論では型チェックは決定可能ですが、内包推論では集合または同様の構成を使用する必要があるため、標準的な数学的概念の表現はやや扱いにくくなります。整数、有理数、実数など、これなしでは扱いにくい、または表現できない一般的な数学的対象が多数あります。整数と有理数は集合なしでも表現できますが、この表現は扱いにくいです。コーシー実数はこれなしでは表現できません。[ 4 ]
ホモトピー型理論はこの問題を解決するために用いられます。この理論では、より高次の帰納型を定義することができ、それによって一階コンストラクタ(値や点)だけでなく、より高次のコンストラクタ、すなわち要素間の等式(パス)、等式間の等式(ホモトピー)などを無限に定義することができます。
さまざまな形式の型理論が、多くの証明支援システムの基盤となる形式システムとして実装されています。その多くはPer Martin-Löfのアイデアに基づいていますが、多くのシステムには機能の追加、公理の増加、または異なる哲学的背景があります。たとえば、Nuprlシステムは計算型理論[ 5 ]に基づいており、Rocqは(共)帰納的構成の計算に基づいています。依存型は、 ATS、Cayenne、Epigram、Agda [ 6 ]、Idris [ 7 ]などのプログラミング言語の設計にも使用されています。
Per Martin-Löf は、さまざまな時期に発表されたいくつかの型理論を構築しました。その中には、その説明が記載されたプレプリントが専門家 ( Jean-Yves Girardや Giovanni Sambin など) に入手可能になった時期よりもずっと後に発表されたものもありました。以下のリストは、印刷された形で説明されたすべての理論を列挙し、それらを区別する主要な特徴を概説しようとするものです。これらの理論はすべて、依存積、依存和、非交和、有限型、自然数を持っていました。依存積または依存和の η 還元を含まない同じ還元規則を持っていましたが、依存積の η 還元が追加されている MLTT79 だけは例外です。
MLTT71は、ペル・マルティン=レーフによって最初に作成された型理論である。1971年にプレプリントとして発表された。この理論は1つの宇宙を持っていたが、その宇宙自体に名前がついており、つまり、今日でいうところの「型の中に型がある」型理論であった。ジャン=イヴ・ジラールはこのシステムに矛盾があることを示し、プレプリントは出版されることはなかった。
MLTT72 は1972 年のプレプリントで発表され、現在は出版されている。[ 8 ]この理論は、1 つの宇宙 V と、同一性型(=-型)を持たないものを持っていた。宇宙は、V に含まれるオブジェクトの族と、V に含まれないオブジェクト (例えば V 自体) との従属積が、V に含まれるとは想定されないという意味で、「述語的」であった。宇宙は、ラッセルのプリンキピア・マテマティカに倣ったもので、つまり、「 T∈V」と「t∈T」を直接記述し (Martin-Löf は現代の「:」の代わりに「∈」記号を使用)、「El」などの追加のコンストラクタは不要であった。
MLTT73 はPer Martin-Löf が発表した最初の型理論の定義です (Logic Colloquium '73 で発表され、1975 年に出版されました[ 9 ] )。彼はこれを「命題」と説明していますが、命題と他の型との間に明確な区別が導入されていないため、その意味は不明です。後に J 消去法と呼ばれるようになるものがありますが、まだ名前がありません ( 94-95 ページを参照)。この理論には、無限の宇宙列 V 0、 ...、 V n、 ...があります。宇宙は Russell のように述語的で、非累積的です。実際、 115 ページの系 3.10 では、A∈V mと B∈V nが A と B が変換可能であるならば、 m = nであると述べられています。
MLTT79 は1979 年に発表され、1982 年に出版されました。[ 10 ]この論文で、マルティン・レーフは、依存型理論の 4 つの基本的な判断タイプを紹介しました。これは、その後、このようなシステムのメタ理論の研究において基礎的なものとなりました。彼はまた、文脈を独立した概念として導入しました (p. 161 を参照)。J 除去子 (MLTT73 にすでに登場しましたが、この名前はありませんでした) を持つ同一型があり、理論を「外延的」にする規則も存在します (p. 169)。W タイプがあります。累積的な 述語宇宙の無限のシーケンスがあります。
ビブリオポリス:1984年のビブリオポリスの本[ 11 ]には型理論についての議論があるが、それはやや漠然としており、特定の選択肢のセットを表しているようには見えないため、それに関連付けられた特定の型理論はない。