この章を読むか、対話型目次と依存グラフで別のルートを選べます。
対話型目次 · 依存グラフ宇宙レベル ℓ と、レベル ℓ-suc ℓ の命題に対する排中律を固定する。以下で構成する十分な添字と、それらに対応する段階は、この一つの古典的仮定に依存する。
module L.GCH.AdequateStages {ℓ : Level} (lem : LEM (ℓ-suc ℓ)) where
凝縮で用いる内部記述には、四つの証人集合が同時に存在する必要がある。この章では、順序数添字が十分であるための条件を定め、任意の順序数より上にその条件を満たす添字 γ を構成する。さらに、各要素がより小さい十分な添字によって局所的に覆われる添字 λ を構成する。対応する構成可能段階は Lset γ と Lset λ である。十分な段階は、GCH の議論に合わせた四項目の閉包条件を表す本書固有の用語であり、通常の admissible 順序数ではない。
この章のすべての構成は、一つの明示的な排中律の実例に相対している。この仮定は誕生段階と符号化された証人の構成を通して議論に入るが、選択関数を与えるものではない。とくに、後で合併への所属から得る存在は、命題的切り詰めの中にとどまる。
この構成は周囲の累積階層 V ℓ の中で行われる。ここで c、γ、そして後の λ は順序数の添字であり、Lset c、Lset γ、Lset λ がそれぞれにより添字づけられた構成可能段階である。合併は周囲の階層にある順序数添字の間で作られる。恒真論理式を使うのは最後だけで、構成可能段階全体がその後続段階の要素になることを示す。
構成可能な証人を後の段階に入れるには、まずその誕生段階の添字を取り、その順序数添字を上から抑え、最後に Lset の単調性を使う。別の順序数に関する事実により、順序数の要素、その後続、そして途中で使う共通上界も順序数であることが保証される。したがって上界の議論が扱うのは添字であり、その結論によって証人集合が一つの段階に入る。
固定した順序数添字 c に対し、後の階層記述には Lset c に結びつく四つの構成可能集合、すなわち内部の階層表、すべての論理式符号の集合、一様な充足関係のグラフ、環境の塔が必要である。妥当性はこの四つを一つの後の構成可能段階にまとめて入れ、一つの有界な記述がそこでそれらを量化できるようにする。
所属の主張と、それらから組み立てる証人条件はいずれも命題である。このことは、合併の要素から、それを含む族の要素について命題的に切り詰められた情報しか得られない場面で重要である。その情報は命題へ消去できるが、特定の添字を選んで保持することはできない。
open import Cubical.HITs.CumulativeHierarchy.Base using ( V; _∈_; sett )
累積階層の各集合には小さな提示があり、小さな添字型からそのすべての要素への写像が与えられる。この提示により、次の上界構成は順序数の全要素にわたって動ける。逆に、族の合併への所属から族の添字が得られるのは命題的切り詰めの中だけである。この違いが、以下の可算鎖の議論で本質的に使われる。
open import Cubical.HITs.CumulativeHierarchy.Properties
using ( ⟪_⟫; ⟪_⟫↪; ∈∈ₛ; ∈ₛ⟪_⟫↪_; ∈-asFiber )
open import Cubical.HITs.CumulativeHierarchy.Constructions
using ( ⋃_; module InfinitySet )
open InfinitySet {ℓ} using ( sucV; ω )
周囲の所属 x ∈ y を、その証人の命題 ⟨ x ∈ y ⟩ として読む。これは V ℓ における所属であり、次に導入する構成可能な台の内部の所属とは区別しなければならない。
open hPropView 𝒮ᵥ
構成可能な台 CS.S の要素は、周囲の集合と、それが構成可能であることの証拠をひとまとめにする。したがって以下の四つの証人は、まず CS.S の要素として構成される。その第一射影が、後の Lset への所属を示すべき実際の周囲の集合である。
module CS = hPropView 𝒮ʟ using (S)
十分な段階が含む四つの証人
証人のモジュールは、順序数 c と、それが順序数であることの証明を固定する。
module At (c : V ℓ) (oc : IsOrd c) where
構成可能段階 Lset c を台 A としてまとめる。この台から、階層表、論理式符号の集合、充足関係のグラフ、環境の塔という四つの証人をそれぞれ構成する。
A : CS.S
A = LsetS c oc
順序数添字 c 自身も構成可能である。ord∈Lset-suc が c を Lset (sucV c) に入れ、順序数で添字づけられた構成可能段階への所属から、必要な構成可能性の証拠 cL が得られる。
cL : ⟨ isL c ⟩
cL = Lset→isL (sucV c) (suc-ord oc) c (ord∈Lset-suc c oc)
最初の証人は c における内部の階層表である。これは L の内部で、順序数添字が c より下にある構成可能段階を記録する。
hier : CS.S
hier = hierL c cL oc
第二の証人は、段階の台の上のすべての論理式符号からなる集合である。これらの符号は、後の階層記述で使われる。
codes : CS.S
codes = AllCodes A
一様な充足の表の順序対のグラフが第三の証人である。それぞれのキーに割り当てられた値を記録する。
table : CS.S
table = SatGraph.pairs A
環境の塔が第四の証人である。すべての有限の長さの環境を集める。
tower : CS.S
tower = Tower.tower A
順序数である段階の添字 c に対し、証人述語は、いま構成した四つの基礎となる集合が一つの共通の容器 K に属することを要求する。証明 oc : IsOrd c を量化するため、特定の順序数性の証明を選んで保持しない。後では、より大きな順序数添字 γ に対する Lset γ を K とする。
Witnesses : V ℓ → V ℓ → Type (ℓ-suc ℓ)
Witnesses K c = (oc : IsOrd c)
→ ⟨ (At.hier c oc) .fst ∈ K ⟩
× ⟨ (At.codes c oc) .fst ∈ K ⟩
× ⟨ (At.table c oc) .fst ∈ K ⟩
四つ目の所属が証人の述語を完成させる。環境の塔も同じ容器の中にある。
× ⟨ (At.tower c oc) .fst ∈ K ⟩
証人述語は命題である。c が順序数であることの各証明に対し、その結論は四つの所属命題の積である。また、値がすべて命題である依存関数も命題である。この命題性により、後では命題的に切り詰められた鎖の添字から Witnesses へ直接消去でき、その添字をデータとして選ぶ必要がない。
isPropWitnesses : (K c : V ℓ) → isProp (Witnesses K c)
isPropWitnesses K c = isPropΠ λ oc →
isProp× (((At.hier c oc) .fst ∈ K) .snd)
(isProp× (((At.codes c oc) .fst ∈ K) .snd)
(isProp× (((At.table c oc) .fst ∈ K) .snd) (((At.tower c oc) .fst ∈ K) .snd)))
十分な添字 γ は順序数であり、さらに三つの性質をもつ。各 x ∈ γ に対して sucV x ∈ γ であり、順序数 ω が γ に属し、各順序数 c ∈ γ の四つの証人集合が一つの構成可能段階 Lset γ の中にある。閉包条件が述べる対象は順序数添字 γ であり、証人条件が述べる対象は、それとは異なる集合 Lset γ である。
Adequate : V ℓ → Type (ℓ-suc ℓ)
Adequate γ =
IsOrd γ
× ((x : V ℓ) → ⟨ x ∈ γ ⟩ → ⟨ sucV x ∈ γ ⟩)
× ⟨ ω ∈ γ ⟩
最後の条項で、この構成の二つの層面が結びつく。前提 c ∈ γ は順序数添字どうしの所属であり、結論は c に結びつく四つの集合を構成可能段階 Lset γ に入れる。
× ((c : V ℓ) → ⟨ c ∈ γ ⟩ → Witnesses (Lset γ) c)
四つの欄が、これからの議論のために名付けられる。順序数性・後続の閉性・無限順序数の所属・そして証人の節である。
任意の順序数より上に十分な段階を構成する
集合 α のすべての要素にわたって上界を取るため、その小さな提示 ⟪ α ⟫ を使う。写像 ι α は、各提示添字を、それが名指す周囲の集合へ送る。この記法自体は、この時点で α を順序数とは仮定しない。順序数性は、名指された各要素が順序数であることを構成が示す段階で用いられる。
private
ι : (α : V ℓ) → ⟪ α ⟫ → V ℓ
ι α = ⟪ α ⟫↪
提示された索引はどれも、小さな所属と周囲の所属の橋を通して、順序数の一つの要素を名指す。
ι∈ : (α : V ℓ) (m : ⟪ α ⟫) → ⟨ ι α m ∈ α ⟩
ι∈ α m = ∈∈ₛ {a = ι α m} {b = α} .snd (∈ₛ⟪ α ⟫↪ m)
順序数の推移性は一度だけまとめられる。順序数の内側でつらなった二つの所属は、その順序数への一つの所属になる。
tr : (β : V ℓ) → IsOrd β → (x y : V ℓ) → ⟨ x ∈ β ⟩ → ⟨ y ∈ x ⟩ → ⟨ y ∈ β ⟩
tr β oβ x y x∈ y∈ = oβ .fst {x = x} {y = y} y∈ x∈
順序数添字 α から出発し、一回の上界構成で、より大きな順序数添字 β を作る。この一回で、α の要素から生じるすべての要請、すなわちそれらの後続と、四つの証人集合の誕生段階の添字を満たす。しかし、β に新たに加わった要素について同じ要請をまだ満たしていないので、この時点で β が十分であるとは主張しない。
module Bound1 (α : V ℓ) (oα : IsOrd α) where
まとめられた各構成可能集合 s : CS.S には、誕生段階の添字 stage (s .fst) (s .snd) がある。この補助式は、α の提示された一要素という文脈の中で、この操作を記録する。得られる添字は証人集合 s に依存し、周囲の引数は、その証人がどの要素について作られたかを記録する。
private
W : ⟪ α ⟫ → (c : V ℓ) → IsOrd c → CS.S → V ℓ
W m c oc s = stage (s .fst) (s .snd)
α の提示されたすべての要素は順序数である。順序数の要素は順序数だからである。
oc : (m : ⟪ α ⟫) → IsOrd (ι α m)
oc m = mem-ord {A = α} oα (ι α m) (ι∈ α m)
st を四つの証人構成にそれぞれ適用すると、誕生段階の添字からなる四つの族が得られる。次の共通上界は、これら四つの族を厳密に上から抑える必要がある。
st : (f : (c : V ℓ) (o : IsOrd c) → CS.S) → ⟪ α ⟫ → V ℓ
st f m = stage ((f (ι α m) (oc m)) .fst) ((f (ι α m) (oc m)) .snd)
誕生段階の添字 st f m は順序数である。これは誕生段階の構成に関する一般定理 stage-ord を、証人の基礎となる集合とその構成可能性の証拠に適用して得られる。
st-ord : (f : (c : V ℓ) (o : IsOrd c) → CS.S) (m : ⟪ α ⟫) → IsOrd (st f m)
st-ord f m = stage-ord ((f (ι α m) (oc m)) .fst) ((f (ι α m) (oc m)) .snd)
ここで五つの厳密な共通上界を取る。最初の四つは、α の提示された各要素について、階層表、符号集合、充足グラフ、環境の塔の誕生段階の添字をそれぞれ上から抑える。五つ目は、順序数の後続 sucV (ι α m) 自身を上から抑える。これらは順序数添字の間の上界であり、五つ目の族は誕生段階の族ではない。
b1 = boundingOrd ⟪ α ⟫ (st At.hier) (st-ord At.hier)
b2 = boundingOrd ⟪ α ⟫ (st At.codes) (st-ord At.codes)
b3 = boundingOrd ⟪ α ⟫ (st At.table) (st-ord At.table)
b4 = boundingOrd ⟪ α ⟫ (st At.tower) (st-ord At.tower)
b5 = boundingOrd ⟪ α ⟫ (λ m → sucV (ι α m)) (λ m → suc-ord (oc m))
六つ目の厳密な上界は、出発点の添字 α と ω の両方を含む。次に二項上界で六つの要請をまとめる。b7 は最初の二つの証人上界を、b8 は残る二つを、b9 は後続の上界と α および ω の上界を、b10 は四つの証人上界をそれぞれまとめる。最小の上界であるとは主張しない。これらの操作が与えるのは、必要な所属証明を伴う厳密な共通上界である。
b6 = bound2 α ω oα ω-ord
b7 = bound2 (b1 .fst) (b2 .fst) (b1 .snd .fst) (b2 .snd .fst)
b8 = bound2 (b3 .fst) (b4 .fst) (b3 .snd .fst) (b4 .snd .fst)
b9 = bound2 (b5 .fst) (b6 .fst) (b5 .snd .fst) (b6 .snd .fst)
b10 = bound2 (b7 .fst) (b8 .fst) (b7 .snd .fst) (b8 .snd .fst)
最後の二項上界は、後者、α、ω を担う枝と、四種類の誕生段階の上界を担う枝とを合わせる。したがって、その第一成分は六種類の要請すべてを同時に厳密に上から抑える。
b11 = bound2 (b9 .fst) (b10 .fst) (b9 .snd .fst) (b10 .snd .fst)
最終上界の第一成分を、新しい順序数添字 β とする。これは V ℓ の中の添字であり、証人を収める構成可能段階は Lset β である。
β : V ℓ
β = b11 .fst
最終の上界は順序数である。二項の上界の操作によって順序数から作られたからである。
oβ : IsOrd β
oβ = b11 .snd .fst
最後の合成に供給された二つの部分的な上界は、最終の上界の下にある。
private
b9∈ : ⟨ b9 .fst ∈ β ⟩
b9∈ = b11 .snd .snd .fst
b10∈ : ⟨ b10 .fst ∈ β ⟩
b10∈ = b11 .snd .snd .snd
β は推移的なので、厳密な所属を上界の木に沿って下へ伝えられる。b9 ∈ β から、後続の上界 b5 ∈ β と、α および ω の共通上界 b6 ∈ β が得られる。また b10 ∈ β から、まず b7 ∈ β が得られる。
b5∈ : ⟨ b5 .fst ∈ β ⟩
b5∈ = tr β oβ (b9 .fst) (b5 .fst) b9∈ (b9 .snd .snd .fst)
b6∈ : ⟨ b6 .fst ∈ β ⟩
b6∈ = tr β oβ (b9 .fst) (b6 .fst) b9∈ (b9 .snd .snd .snd)
b7∈ : ⟨ b7 .fst ∈ β ⟩
もう一方の枝から b8 ∈ β が得られる。さらに b7 を一段下ると、最初の証人上界 b1 も β に属する。同じ推移性の議論を繰り返せば、残る各証人上界も β に入る。
b7∈ = tr β oβ (b10 .fst) (b7 .fst) b10∈ (b10 .snd .snd .fst)
b8∈ : ⟨ b8 .fst ∈ β ⟩
b8∈ = tr β oβ (b10 .fst) (b8 .fst) b10∈ (b10 .snd .snd .snd)
b1∈ : ⟨ b1 .fst ∈ β ⟩
b1∈ = tr β oβ (b7 .fst) (b1 .fst) b7∈ (b7 .snd .snd .fst)
第二と第三の証人上界 b2 と b3 は、それぞれ枝 b7 と b8 から得られる。第四の上界 b4 も b8 の下で同じ位置にあるので、次の行でこの対称な議論が完結する。
b2∈ : ⟨ b2 .fst ∈ β ⟩
b2∈ = tr β oβ (b7 .fst) (b2 .fst) b7∈ (b7 .snd .snd .snd)
b3∈ : ⟨ b3 .fst ∈ β ⟩
b3∈ = tr β oβ (b8 .fst) (b3 .fst) b8∈ (b8 .snd .snd .fst)
b4∈ : ⟨ b4 .fst ∈ β ⟩
証人側の枝を最後に一段下ると b4 ∈ β が得られる。これで、四つの誕生段階の上界すべてが、共通の順序数添字 β に厳密に属することが分かった。
b4∈ = tr β oβ (b8 .fst) (b4 .fst) b8∈ (b8 .snd .snd .snd)
b6 を通る枝は、出発点の順序数添字も保つ。α ∈ b6 と b6 ∈ β から、推移性により α ∈ β が得られる。
α∈β : ⟨ α ∈ β ⟩
α∈β = tr β oβ (b6 .fst) α b6∈ (b6 .snd .snd .fst)
同じ枝は ω も保つ。ω ∈ b6 に b6 ∈ β をつなぐと、後で必要となる ω ∈ β が得られる。
ω∈β : ⟨ ω ∈ β ⟩
ω∈β = tr β oβ (b6 .fst) ω b6∈ (b6 .snd .snd .snd)
x ∈ α ならば、提示のファイバーから、ι α m ≡ x を満たす添字 m が得られる。五つ目の共通上界は sucV (ι α m) を含み、b5 ∈ β を経て、それが β に属することが分かる。最後にファイバーの等式に沿って置換し、sucV x ∈ β を得る。したがって、この一回の構成が示す後続閉包は α の要素に対するものだけであり、一回の上界構成に必要な結論と正確に一致する。
suc∈β : (x : V ℓ) → ⟨ x ∈ α ⟩ → ⟨ sucV x ∈ β ⟩
suc∈β x x∈ = subst (λ u → ⟨ sucV u ∈ β ⟩) (fib .snd)
(tr β oβ (b5 .fst) (sucV (ι α (fib .fst))) b5∈ (b5 .snd .snd (fib .fst)))
where
fib : Σ[ m ∶ ⟪ α ⟫ ] (ι α m ≡ x)
∈-asFiber は、周囲の所属の証明からこのファイバーを復元する。ここで得られるのは実際の依存対であり、命題的に切り詰められた存在だけではない。小さな提示は埋め込みを使うため、x の提示添字を同定するファイバーは命題値だからである。
fib = ∈-asFiber {a = x} {b = α} x∈
共通の順序数上界 β は、四種類の証人の出生段階の添字をすべて厳密に上から押さえるように構成されている。ここから、その証人自身を構成可能段階 Lset β に入れる。
private
四つの証人構成の一つ f と、α の要素を呈示する添字 m を固定する。対応する証人は Lset (st f m) に現れ、その出生添字は記録された上界 b.fst に属し、さらに b.fst は最終上界 β に属する。着地の補題は、ここから得られる Lset β への所属をまとめる。
land : (f : (c : V ℓ) (o : IsOrd c) → CS.S)
(b : Σ[ σ ∶ V ℓ ] (IsOrd σ × ((m : ⟪ α ⟫) → ⟨ st f m ∈ σ ⟩)))
→ ⟨ b .fst ∈ β ⟩
→ (m : ⟪ α ⟫) → ⟨ (f (ι α m) (oc m)) .fst ∈ Lset β ⟩
land f b b∈ m =
内側の Lset-mono は証人を Lset (st f m) から Lset (b.fst) へ運び、外側の適用がさらに Lset β へ運ぶ。どちらの移動も、対応する順序数添字どうしの厳密な所属に基づく。
Lset-mono {α = β} {β = b .fst} b∈
(Lset-mono {α = b .fst} {β = st f m} (b .snd .snd m)
(stage-mem ((f (ι α m) (oc m)) .fst) ((f (ι α m) (oc m)) .snd)))
m が呈示する要素について、まず階層表と論理式コードの集合を Lset β に入れる。呼び出し側は任意の証明 o : IsOrd (ι α m) を与えられるが、順序数性は命題なので、証人の構成に用いた oc m と同一視できる。
witAt : (m : ⟪ α ⟫) → Witnesses (Lset β) (ι α m)
witAt m o =
subst (λ u → ⟨ (At.hier (ι α m) u) .fst ∈ Lset β ⟩) (isPropIsOrd (ι α m) (oc m) o)
(land At.hier b1 b1∈ m)
, ( subst (λ u → ⟨ (At.codes (ι α m) u) .fst ∈ Lset β ⟩) (isPropIsOrd (ι α m) (oc m) o)
同じ議論でコード集合の所属を完成し、充足関係のグラフと環境の塔も Lset β に入れる。これで Witnesses (Lset β) (ι α m) の四成分がすべて得られ、その結果は特定の順序数性証明に依存しない。
(land At.codes b2 b2∈ m)
, ( subst (λ u → ⟨ (At.table (ι α m) u) .fst ∈ Lset β ⟩) (isPropIsOrd (ι α m) (oc m) o)
(land At.table b3 b3∈ m)
, subst (λ u → ⟨ (At.tower (ι α m) u) .fst ∈ Lset β ⟩) (isPropIsOrd (ι α m) (oc m) o)
(land At.tower b4 b4∈ m) ))
所属の証明 c ∈ α からは実際の提示ファイバーが得られ、添字 m と等式 ι α m ≡ c が取り出される。その等式に沿って witAt m を輸送すれば、抽象的に指定された要素 c の四つの証人が得られる。ここでは命題的切り詰めの除去も選択も行わない。
wit : (c : V ℓ) → ⟨ c ∈ α ⟩ → Witnesses (Lset β) c
wit c c∈ = subst (Witnesses (Lset β)) (fib .snd) (witAt (fib .fst))
where
fib : Σ[ m ∶ ⟪ α ⟫ ] (ι α m ≡ c)
fib = ∈-asFiber {a = c} {b = α} c∈
合併の構成は、自然数で添字づけられた任意の順序数族 ch から始まる。合併そのものには単調性を仮定せず、後の二つの適用で各項が次の項に属することを別に証明する。
module Union (ch : ℕ → V ℓ) (och : (n : ℕ) → IsOrd (ch n)) where
累積階層の合併は、周囲の宇宙レベルにある小さな添字型を要求する。ℕ を Lift ℕ に替えても変わるのは宇宙での位置だけで、F (lift n) は依然として順序数 ch n である。
private
F : Lift {ℓ-zero} {ℓ} ℕ → V ℓ
F n = ch (lower n)
この順序数族の集合論的な合併を、順序数添字 γ と書く。この時点で γ は周囲の累積階層の集合であり、対応する構成可能段階は Lset γ である。
γ : V ℓ
γ = ⋃ (sett (Lift {ℓ-zero} {ℓ} ℕ) F)
任意の順序数族の集合論的合併は、再び順序数である。この事実を F に適用して IsOrd γ を得る。ここでは自然数添字の順序や共終性に関する性質を使わない。
oγ : IsOrd γ
oγ = setUnion-ord (Lift {ℓ-zero} {ℓ} ℕ) F (λ n → och (lower n))
内向きの読み出しが、列のそれぞれの項目のすべての要素を、合併の中に受け入れる。
into : (n : ℕ) (x : V ℓ) → ⟨ x ∈ ch n ⟩ → ⟨ x ∈ γ ⟩
into n x = union-family-in (Lift {ℓ-zero} {ℓ} ℕ) F (lift n) x
外向きの読み出しは、切り詰めのもとで、合併の任意の要素を含む列の項目を復元する。切り詰められた添字は、命題の中だけで消費される。
outof : (x : V ℓ) → ⟨ x ∈ γ ⟩ → ∥ Σ[ n ∶ ℕ ] ⟨ x ∈ ch n ⟩ ∥₁
outof x h = map₁ (λ { (n , hn) → lower n , hn })
(union-family-out (Lift {ℓ-zero} {ℓ} ℕ) F x h)
一回の上界構成が満たすのは、直前の順序数から生じた要請だけである。構成の途中で生じるすべての要請を満たすため、p と ω を厳密に含む点から始め、自然数列に沿って Bound1 を繰り返し、得られた順序数添字の合併を取る。
module Above (p : V ℓ) (op : IsOrd p) where
最初の上界は、出発順序数 p と順序数 ω の両方を厳密に含む順序数である。これにより、最終的な合併まで保つべき二つの所属が直ちに得られる。
private
base = bound2 p ω op ω-ord
第零の順序数は最初の共通上界である。その後は各順序数を直前の項に Bound1 を適用して作るので、ch n の要素から生じる義務は ch (suc n) で満たされる。一回の構成だけで、その結果自身の全要素について十分になるとは主張していない。
ch : ℕ → Σ[ β ∶ V ℓ ] IsOrd β
ch 0 = base .fst , base .snd .fst
ch (suc n) = Bound1.β (ch n .fst) (ch n .snd) , Bound1.oβ (ch n .fst) (ch n .snd)
ここで、先の合併構成をこれらの順序数添字に適用する。内向きの写像は既知の所属を合併へ送り、外向きの写像は任意の要素を含む項を命題的切り詰めのもとでのみ位置づける。
module C = Union (λ n → ch n .fst) (λ n → ch n .snd) using (into; outof; oγ; γ)
これらの順序数添字の合併を γ とする。一段階の遅れは合併によって吸収される。ある項に現れた要素について、その後者と四つの証人集合は後の項で処理される。最終的に証人が属すべき先は添字 γ 自身ではなく、Lset γ である。
γ : V ℓ
γ = C.γ
各 ch n が順序数なので、その集合論的合併 γ も順序数である。ここで得られるのは IsOrd γ だけであり、Adequate γ の閉性と証人の成分は以下で別に証明する。
oγ : IsOrd γ
oγ = C.oγ
列のそれぞれの項目は、その後続の項目より厳密に下にある。一段階の上界の所属の条項によるものである。
private
up : (n : ℕ) → ⟨ ch n .fst ∈ ch (suc n) .fst ⟩
up n = Bound1.α∈β (ch n .fst) (ch n .snd)
順序数添字 ch n 自身を合併 γ に入れるには、まず ch n ∈ ch (suc n) を使い、ついで ch (suc n) の各要素を合併へ入れる。この事実が、後で Lset の単調性に必要な添字の比較を与える。
ch∈γ : (n : ℕ) → ⟨ ch n .fst ∈ γ ⟩
ch∈γ n = C.into (suc n) (ch n .fst) (up n)
基底の上界はすでに p を含む。これは列の第零項なので、合併の内向きの写像がこの所属を保ち、p ∈ γ を与える。
p∈γ : ⟨ p ∈ γ ⟩
p∈γ = C.into zero p (base .snd .snd .fst)
同じ内向きの写像が ω ∈ ch 0 を ω ∈ γ へ送る。これが Adequate γ に必要な所属の成分である。
ω∈γ : ⟨ ω ∈ γ ⟩
ω∈γ = C.into zero ω (base .snd .snd .snd)
x ∈ γ が与えられると、外向きの写像は x ∈ ch n を満たす添字 n の命題的に切り詰められた存在だけを与える。切り詰めの各分岐では、次の Bound1 が sucV x を ch (suc n) に入れ、そこから γ に入れる。目標の所属 sucV x ∈ γ は命題なので、各分岐を再びまとめられる。特定の n が命題的切り詰めの外へ取り出されることはない。
succ : (x : V ℓ) → ⟨ x ∈ γ ⟩ → ⟨ sucV x ∈ γ ⟩
succ x x∈ = rec₁ ((sucV x ∈ γ) .snd)
(λ { (n , x∈n) → C.into (suc n) (sucV x) (Bound1.suc∈β (ch n .fst) (ch n .snd) x x∈n) })
(C.outof x x∈)
c ∈ γ に対しても、外向きの写像が与えるのは c ∈ ch n を満たす n の命題的に切り詰められた存在だけである。各分岐では、一段階の上界構成が四つの証人を Lset (ch (suc n)) に用意し、ch (suc n) ∈ γ に沿う Lset-mono がそれらを Lset γ へ運ぶ。Witnesses (Lset γ) c は命題なので、得られた結果を命題的切り詰めから除去できる。
wit : (c : V ℓ) → ⟨ c ∈ γ ⟩ → Witnesses (Lset γ) c
wit c c∈ = rec₁ (isPropWitnesses (Lset γ) c)
(λ { (n , c∈n) → λ oc →
let w = Bound1.wit (ch n .fst) (ch n .snd) c c∈n oc
mono = Lset-mono {α = γ} {β = ch (suc n) .fst} (ch∈γ (suc n))
写像 mono は、添字 ch (suc n) から添字 γ への構成可能階層の単調性を表す。これを階層表、コード集合、充足関係のグラフ、環境の塔にそれぞれ適用して、四成分の証人を完成する。
in mono (w .fst) , ( mono (w .snd .fst) , ( mono (w .snd .snd .fst) , mono (w .snd .snd .snd) )) })
(C.outof c c∈)
順序数添字 γ は、ここで Adequate の四つの条項をすべて満たす。すなわち、順序数性、後者閉包、ω の所属、そして各 c ∈ γ に対応する四つの証人を、添字とは別の構成可能段階 Lset γ に入れることである。後で使う妥当性の内容は、この四項目に尽きる。
adequate : Adequate γ
adequate = oγ , ( succ , ( ω∈γ , wit ))
この定理は順序数添字 γ を明示的に返し、p ∈ γ と Adequate γ を添える。外側の依存対は切り詰められていないので、後の議論はこの γ を名指せる。ただし、それが最小であることも、p + ω のような標準的順序数演算で得られることも証明していない。
adequate-above : (p : V ℓ) → IsOrd p
→ Σ[ γ ∶ V ℓ ] (IsOrd γ × ⟨ p ∈ γ ⟩ × Adequate γ)
adequate-above p op = Above.γ p op , ( Above.oγ p op , ( Above.p∈γ p op , Above.adequate p op ))
段階全体で十分性を強化する
Superadequate λ は、各 d ∈ λ に対して、γ ∈ λ と d ∈ γ を満たす十分な順序数添字 γ が単に存在することを意味する。したがって γ は順序数 λ より厳密に下にあり、d を含むが、命題的切り詰めは特定の γ も最小の γ も保持しない。
Superadequate : V ℓ → Type (ℓ-suc ℓ)
Superadequate lam = (d : V ℓ) → ⟨ d ∈ lam ⟩
→ ∥ Σ[ γ ∶ V ℓ ] (⟨ γ ∈ lam ⟩ × ⟨ d ∈ γ ⟩ × Adequate γ) ∥₁
順序数 α より上にこの強化された十分な段階を作るため、adequate-above をもう一度反復する。今度は自然数列の各項がすでに十分な順序数添字なので、その項自身を後で局所的な十分な証人として使える。
module Super (α : V ℓ) (oα : IsOrd α) where
第零項は adequate-above α oα が明示的に返す順序数添字である。この添字は十分であり、出発順序数 α を厳密に含む。これらの事実は後で使えるよう項とともに保持される。
ch : ℕ → Σ[ γ ∶ V ℓ ] (IsOrd γ × Adequate γ)
ch 0 =
adequate-above α oα .fst
, ( adequate-above α oα .snd .fst , adequate-above α oα .snd .snd .snd )
ch (suc n) =
十分な順序数添字 ch n にもう一度 adequate-above を適用すると、次の十分な添字 ch (suc n) と所属 ch n ∈ ch (suc n) が得られる。この定理はそのような次の添字を明示的に与えるが、最小性は主張しない。
adequate-above (ch n .fst) (ch n .snd .fst) .fst
, ( adequate-above (ch n .fst) (ch n .snd .fst) .snd .fst
, adequate-above (ch n .fst) (ch n .snd .fst) .snd .snd .snd )
この十分な順序数添字の列に合併構成を適用する。先ほどと同様、合併の要素をある項に位置づけられるのは命題的切り詰めのもとだけである。
module U = Union (λ n → ch n .fst) (λ n → ch n .snd .fst) using (into; outof; oγ; γ)
これらの順序数添字の合併を、コードでは lam、本文では λ と書く。以下で示すのは、順序数添字 λ が Adequate λ と Superadequate λ の両方を満たすことである。対応する構成可能段階 Lset λ は、証人の条項でのみ使われる。
lam : V ℓ
lam = U.γ
各 ch n が順序数なので、その集合論的合併 λ も順序数である。この議論から、より強い極限性、正則性、基数としての性質は導かれない。
olam : IsOrd lam
olam = U.oγ
列のそれぞれの項目は、その後続の項目より厳密に下にある。adequate-above が産出する厳密な所属によるものである。
private
up : (n : ℕ) → ⟨ ch n .fst ∈ ch (suc n) .fst ⟩
up n = adequate-above (ch n .fst) (ch n .snd .fst) .snd .snd .fst
ch n ∈ ch (suc n) なので、合併の内向きの写像から ch n ∈ λ が得られる。したがって、列にある各十分な添字自身が最終的な順序数添字 λ の要素として利用できる。
ch∈λ : (n : ℕ) → ⟨ ch n .fst ∈ lam ⟩
ch∈λ n = U.into (suc n) (ch n .fst) (up n)
第零の十分な添字は α を厳密に含み、しかも合併を構成する集合の一つである。したがって α ∈ λ が従う。
α∈λ : ⟨ α ∈ lam ⟩
α∈λ = U.into zero α (adequate-above α oα .snd .snd .fst)
x ∈ λ が与えられると、外向きの写像が与えるのは x ∈ ch n を満たす n の命題的に切り詰められた存在だけである。各分岐では、その項の妥当性から sucV x ∈ ch n が得られ、内向きの写像が sucV x ∈ λ を与える。目標は所属命題なので、n を保持せずに結果を命題的切り詰めから除去できる。
succ : (x : V ℓ) → ⟨ x ∈ lam ⟩ → ⟨ sucV x ∈ lam ⟩
succ x x∈ = rec₁ ((sucV x ∈ lam) .snd)
(λ { (n , x∈n) → U.into n (sucV x) (Adequate.succ (ch n .fst) (ch n .snd .snd) x x∈n) })
(U.outof x x∈)
第零項は十分なので ω を含む。合併の内向きの写像がこの事実を、Adequate λ に必要な所属 ω ∈ λ へ送る。
ω∈λ : ⟨ ω ∈ lam ⟩
ω∈λ = U.into zero ω (Adequate.ω∈ (ch zero .fst) (ch zero .snd .snd))
c ∈ λ に対し、外向きの写像が与えるのは c ∈ ch n を満たす n の命題的に切り詰められた存在だけである。各分岐では、ch n の妥当性が四つの証人を Lset (ch n) に与え、ch n ∈ λ に沿う単調性がそれらを Lset λ へ運ぶ。Witnesses (Lset λ) c は命題なので、命題的切り詰めから正当に除去できる。
wit : (c : V ℓ) → ⟨ c ∈ lam ⟩ → Witnesses (Lset lam) c
wit c c∈ = rec₁ (isPropWitnesses (Lset lam) c)
(λ { (n , c∈n) → λ oc →
let w = Adequate.wit (ch n .fst) (ch n .snd .snd) c c∈n oc
in Lset-mono {α = lam} {β = ch n .fst} (ch∈λ n) (w .fst)
各成分は ch n ∈ λ に沿う構成可能段階の単調性によって運ばれる。階層表、コード集合、充足関係のグラフ、環境の塔はいずれも Lset (ch n) から Lset λ へ移る。
, ( Lset-mono {α = lam} {β = ch n .fst} (ch∈λ n) (w .snd .fst)
, ( Lset-mono {α = lam} {β = ch n .fst} (ch∈λ n) (w .snd .snd .fst)
, Lset-mono {α = lam} {β = ch n .fst} (ch∈λ n) (w .snd .snd .snd) )) })
(U.outof c c∈)
合併の順序数性、後者閉包、ω ∈ λ、そして輸送した証人を組み合わせると Adequate λ が得られる。最初の三項は順序数添字 λ に関する事実であり、第四項は集合を構成可能段階 Lset λ に入れる。これらは後の階層記述が使う閉包の事実であり、Lset λ に関するモデル理論的な主張ではない。
adequate : Adequate lam
adequate = olam , ( succ , ( ω∈λ , wit ))
d ∈ λ に対し、外向きの写像が与えるのは d ∈ ch n を満たす n の命題的に切り詰められた存在だけである。その切り詰めの内部で γ = ch n と置けば、この添字は λ に属し、d を含み、十分である。結果は切り詰められたままなので、選択関数 d ↦ γ は定義されない。
super : Superadequate lam
super d d∈ = map₁
(λ { (n , d∈n) → ch n .fst , ( ch∈λ n , ( d∈n , ch n .snd .snd )) })
(U.outof d d∈)
公開される定理は、α を厳密に含む順序数添字 λ を明示的に返し、Adequate λ と Superadequate λ の証明を添える。λ 自身はデータとして使えるが、その各要素に保証される局所的な十分な添字は命題的切り詰めのもとにある。最小の局所添字も大域的な選択族も得られない。
superadequate-above : (α : V ℓ) → IsOrd α
→ Σ[ lam ∶ V ℓ ] (IsOrd lam × ⟨ α ∈ lam ⟩ × Adequate lam × Superadequate lam)
superadequate-above α oα =
Super.lam α oα , ( Super.olam α oα , ( Super.α∈λ α oα , ( Super.adequate α oα , Super.super α oα )))
段階はその後者段階に属する
周囲の任意の集合 β について、集合 Lset β 全体は Lset (sucV β) の要素であり、β が順序数であるという仮定は要らない。等式 Lset (sucV β) = 𝒟ₒ (Lset β) により、主張は Lset β 上での定義可能性に帰着し、恒真な論理式が台全体をそれ自身の部分集合として定義する。結論は集合 Lset β が次の構成可能段階に属することであり、一つの段階が別の段階に要素ごとに含まれることとは異なる主張である。
Lset∈suc : (β : V ℓ) → ⟨ Lset β ∈ Lset (sucV β) ⟩
Lset∈suc β = subst (λ w → ⟨ Lset β ∈ w ⟩) (sym (Lset-suc β))
(𝒟ₒ-intro (Lset β) (Lset β) ∣ ⊤̇ , DefOf.defSet⊤≡A (Lset β) ∣₁)
{-# OPTIONS --cubical --safe --guardedness #-}open import Base.Preludeopen import Base.Classical using ( LEM )open import FOL.ZFStructure using ( module hPropView )open import FOL.Syntax using ( ⊤̇ )open import V.Hierarchy {ℓ} using ( 𝒮ᵥ )open import V.Model {ℓ} using ( union-family-in; union-family-out )open import L.Constructible {ℓ} using
( 𝒮ʟ; isL; IsOrd; isPropIsOrd; Lset; Lset-mono; Lset→isL; 𝒟ₒ-intro )open import L.Ordinal {ℓ} using ( boundingOrd; bound2; setUnion-ord; mem-ord; suc-ord; ω-ord )open import L.Ordinal.Stages {ℓ} lem using ( ord∈Lset-suc )open import L.Stage {ℓ} lem using ( stage; stage-ord; stage-mem )open import L.Hierarchy {ℓ} lem using ( hierL )open import L.Axioms.Basic {ℓ} using ( LsetS; Lset-suc )open import L.Coding.CodeSet {ℓ} lem using ( AllCodes )open import L.Definability {ℓ} using ( module DefOf )open import L.Coding.EnvironmentTower {ℓ} lem using ( module Tower )open import L.Coding.SatisfactionGraphSet {ℓ} lem using ( module SatGraph )