第 14 章 は、コア体系が整合的であること、すなわち型 Π(P:Sort0).P をもつ閉じた項が存在しないことを述べている(定理 14.5)。この付録ではその完全な証明を、議論が使う型付けと変換についての標準的な事実も含めて与える。対象はコア体系、つまり図 3.1 の規則に 第 13 章 の宇宙を加えたもので、第 II 部の定数は含まない。
考え方
証明は、深い定理と初等的な議論を組み合わせる。深い定理とは、正しく型付けされた項はすべて正規形に簡約されるという強正規化であり、これを型保存性と合わせると、型 Π(P:Sort0).P をもつ閉じた項があるなら、正規な閉じた項にもその型をもつものがあることになる。初等的な議論とは、その型をもつ正規な閉じた項が存在しないことを示す場合分けである。
場合分けは 2 段階で進む。第一に、閉じていて正規なもののうち Π 型をもてるのは一つの形しかないので、正規形は λ でなければならない。第二に、その本体は文脈 P:Sort0 のもとで型 P をもつ項でなければならないが、スコープ内の唯一の変数の型が Sort0 であり、これは P でも関数型でもないので、正規項にそのようなものはない。
場合分けを厳密にするには、各形の項の型がどう見えるか(生成補題)と、形の異なる項が決して変換可能でないこと(合流性の帰結)を知っておく必要がある。まずそれらの事実をまとめる。
型システムについての事実
第 14 章の型保存性と強正規化に加えて、証明は純粋型システム(Pure Type Systems)の次の標準的な性質を使う [Barendregt 1992]。型保存性は、ステップ数についての帰納法により、1 ステップから任意のステップ数へ拡張される。
補題 D.1(標準的な性質).
(a) 生成(generation). Γ⊢t:T ならば、t の形に応じて次が成り立つ。
- t=x ならば、ある A について (x:A)∈Γ かつ T≡A。
- t=Sortu ならば、T≡Sort(u+1)。
- t=Π(x:A).B ならば、ある w について T≡Sortw。
- t=λ(x:A).s ならば、ある B について Γ,x:A⊢s:B かつ T≡Π(x:A).B。
- t=fa ならば、ある x、A、B について Γ⊢f:Π(x:A).B かつ Γ⊢a:A。
(b) 合流性. s≡t ならば、s と t は共通の項に簡約される。したがって、Π(x:A).B≡Π(y:A′).B′ ならば、新鮮な z について A≡A′ かつ B[x↦z]≡B′[y↦z] である。また、変数、宇宙、Π のうちどの二つも互いに変換可能でない。
(c) 代入. s≡t ならば、s[z↦a]≡t[z↦a]。
生成補題とは型付け規則を逆向きに読んだもので、ある形の項に型を付ける方法は、その形に対応する規則、場合によってはその後に T-Conv を何回か使うものに限られると言っている。各場合が「T=…」ではなく「T≡…」となっているのはそのためである。
(b) の帰結が成り立つのは、変数と宇宙はまったく簡約されず、Π は Π にしか簡約されない(簡約が起きるのは注釈や本体の内部であって、根では決して起きない)ので、共通の簡約先をもつ二つの項は、最も外側の形が同じでなければならないからである。
正規項の形
第 12 章 で見たように、すべての項は背骨 ha1⋯an であり、その頭部 h は適用ではない。次の補題は正規項を頭部によって分類し、その役割は、本証明において正規形の可能性を四つだけに絞ることにある。あとはそれぞれを排除すればよい。
補題 D.2(正規形). n を Γ⊢n:T なる正規項とする。このとき n は、宇宙、Π、λ、または頭部 x が dom(Γ) の変数であるような中立(neutral)項 xa1⋯ak(k≥0)のいずれかである。さらに k≥1 ならば、Π に変換可能なある C について Γ⊢x:C が成り立つ。
h を適用でない項として n=ha1⋯ak と書く。
k=0 ならば n=h は、適用以外の形はこれしかないので、宇宙、Π、λ、変数のいずれかであり、変数は生成補題により dom(Γ) に属する。
k≥1 とする。適用についての生成補題を外側から内側へ k 回適用すると、すべての接頭辞 ha1⋯ai が型付け可能であり、特に最も内側の適用 ha1 から、ある y、A、B について Γ⊢h:Π(y:A).B がわかる。ここで h の形を考えると、まず λ ではなく、そうなら ha1 が正規項 n の内部の β 簡約基になってしまう。また、生成補題によりその型は宇宙に変換可能になるが、合流性により宇宙は Π(y:A).B に変換可能でないので、宇宙や Π でもない。したがって h は変数 x であり、生成補題により dom(Γ) に属し、Γ⊢x:Π(y:A).B が成り立ち、これが求める C である。
定理 14.5 の証明
定理 14.5(整合性). ⋅⊢t:Π(P:Sort0).P なる閉じた項 t は存在しない。
⋅⊢t:Π(P:Sort0).P と仮定する。強正規化により t は正規項 n に簡約され、型保存性により ⋅⊢n:Π(P:Sort0).P である。補題 D.2 を 2 回使って、そのような n が存在しないことを示す。
正規形は λ である。 補題 D.2 により、n は宇宙、Π、λ、中立項のいずれかである。
- 頭部が空の文脈の変数になるはずだが、そのような変数はないので、中立項ではない。
- 生成補題により Π(P:Sort0).P が宇宙に変換可能になるが、合流性がそれを排除するので、宇宙や Π でもない。
よって n=λ(x:A).s であり、生成補題により、ある B について x:A⊢s:B かつ Π(P:Sort0).P≡Π(x:A).B である。合流性により、新鮮な z について A≡Sort0 かつ P[P↦z]≡B[x↦z]、すなわち z≡B[x↦z] である。両辺で z に x を代入すると、補題 D.1 の (c) により変換可能性が保たれるので、x≡B を得る。本体 s は正規項 n の部分項なので正規である。まとめると、A≡Sort0 かつ B≡x のもとで x:A⊢s:B である。
本体は存在しえない。 Γ=x:A とおく。補題 D.2 により、s は宇宙、Π、λ、中立項のいずれかである。
- s が宇宙または Π なら、生成補題により B は宇宙に変換可能になり、s が λ なら B は Π に変換可能になる。しかし B≡x であり、合流性により変数はどちらにも変換可能でない。
- s が中立項なら、その頭部は dom(Γ)={x} の変数なので s=xa1⋯ak である。k=0 なら s=x で、生成補題により B≡A なので x≡B≡A≡Sort0 となるが、変数は宇宙に変換可能でない。k≥1 なら、補題 D.2 により Π に変換可能な C について Γ⊢x:C であり、変数 x についての生成補題により C≡A≡Sort0 なので Π が宇宙に変換可能になり、合流性がそれを排除する。
すべての場合が矛盾に至るので、型 Π(P:Sort0).P をもつ閉じた項は存在しない。
言葉で言えばこうである。λ の内側で使える変数は x だけで、その型は Sort0 である。Sort0 は x ではないのでそのまま返すことはできず、Sort0 は関数型ではないので何かに適用することもできない。それ以外の正規項はすべて宇宙か Π を型にもつが、x はどちらでもない。この議論は、問題を正規項に帰着させるために強正規化に頼っており、難しさはすべてそのステップにある。
覚えておくこと
- 整合性は、強正規化と型保存性(正規形に移るため)を、正規項の形についての場合分けと組み合わせて証明する。
- 場合分けは二つの標準的な事実、生成補題(型付け規則を逆向きに読んだもの)と合流性(最も外側の形が異なる項は決して変換可能でない)を使う。
- 型 Π(P:Sort0).P をもつ正規な閉じた項は、文脈 x:Sort0 のもとで本体が型 x をもつ λ でなければならないが、そのような正規項はない。
- 難しい部分は強正規化であり、形の分析だけなら Type:Type にも適用でき、Hurkens の項に正規形がないことを示す。