Homotopy type theory(ホモトピー・型理論)は、集合論の代替になりうる。
集合論は第一階述語論理の証明システム→ZFC集合論の二層から成り立っているが、型理論は第一階述語論理といった上位層の内部として理論を位置付ける必要がない。なぜなら命題は特定の型であり、定理の証明とは単にその特定の型をいじくる特殊操作にすぎないからである。
【ChatGPTによる要約】
基本的な概念:
等号の取り扱い:
メタ言語:
TYPE THEORY
- 変数:a,b,c……
- 型変数:A,B,C,……
- 記号:→,:,=,(,)
型変数は「型」であり、A,Bが型ならばA→Bは「型」である。これによって帰納的に「型」が定義される。
あるaが型Aを持つと主張したい場合、「a:A」と書く。また、aとbが特定の型Aにおいて等しいと主張したい場合、「a=b:A」と書く。=については次のルールが定められている。
- 反射性: 型Aとa : Aが与えられた場合、a = a : A
- 対称性: 型Aとa ≡ b : Aが与えられた場合、b = a : A。
- 推移性: 型Aが与えられた場合、a = b : A および b = c : A の場合、a = c : A。
集合論においては関数は定義域と値域の直積の部分として定義されるが、型理論においてはより原始的な概念である。型理論における関数とは順序対の集合ではなく単なるルールの一つである。私たちには本来まだなにもいうことはできないが、たとえばf(x)=x+xは3という数字を入れた時には単に3+3を出力する規則と考えられる。
その出力規則をΦとしたい場合(上の例ではx+x)、それにx:Aを適用した場合、A→Bという型を持つ関数は(λ(x:A).Φ):A→Bと書かれる。「いちいちこんなめんどくさい表記にしなくても」というのはもっともだが、f(x)=x+xと定義すると、これが関数を表示するものなのか、Bのオブジェクトについて表示したものなのかがまったくわからない。すべてのオブジェクトの型をはっきりさせる型理論にとってこの曖昧さは不便なのである。型A→Bの関数は(λ(x:A).Φ):A→Bのようにx:Aと指定されなくてもAのオブジェクトすべてにわたっているため、単にλx.Φ:A→Bとかき、これにa:Aを適用すると、(λx.Φ)(a):Bと言う風になる。