为序数选取基数代表

可以直接阅读本章,也可以通过阅读指南和依赖地图选择其他路线。

阅读指南 · 依赖地图

L 内部的计数以基数表述,而具体构造往往只产生任意序数。对 L 中的序数 α,本章找出包含于 α 的内部基数 μ,并给出两个方向的内部单射。因此,μ 在模型内部代表 α 的基数。构造在 α 的后继中搜索,选取 α 能够内部单射到的最小序数。

{-# OPTIONS --cubical --safe --guardedness #-}

open import Base.Prelude
open import Base.Classical using ( LEM )

module L.GCH.CardinalRepresentative { : Level} (lem : LEM (ℓ-suc )) where

假设在层级 ℓ-suc ℓ 上成立排中律。良序搜索与序数三分法都会使用这个假设。结论中的单射全部位于 L 内部:它们由可构造的图见证,并非外部函数。

open import FOL.ZFStructure using ( module hPropStructure )
open import V.Hierarchy {} using ( 𝒮ᵥ )
open import V.Presentation {} using ( member; fiber )
open import L.Constructible {} using ( 𝒮ʟ; IsOrd; isL; isL-trans )
open import L.Ordinal {} using ( mem-ord; suc-ord )

这里同时出现两个结构。外围层级提供成员关系以及搜索所用的小呈现;可构造结构提供序数、基数与内部单射谓词。可构造性沿成员关系向下传递,所以在外围层级中找到的成员可以重新进入 L 的论域。

open import L.Ordinal.Linear {} lem using ( Tri; ord-tri )
open import L.Cardinal {} lem using ( InjL; IsCardinalL; module LeastCardInjL )
open import L.WellOrder.Base {ℓₚ = ℓ-suc }
  using ( IsLeast; leastOf; module SWO )
open import L.InjectionComposition {} lem using ( inclusion-coded; injl-trans )

搜索建立在呈现序数的索引良序之上;这个次序与所指元素之间的成员关系一致。包含关系的编码把包含化为内部单射,单射的传递性则复合连续的内部单射。

open import Cubical.HITs.CumulativeHierarchy.Properties using ( ⟪_⟫; ⟪_⟫↪ )
open import Cubical.HITs.CumulativeHierarchy.Constructions
  using ( module InfinitySet )
open InfinitySet {} using ( sucV )

候选集合取为后继 sucV α命题截断表达适当代表的存在,而不在外部选择一个代表;和类型与空类型用于后面的三分法论证。

open import Cubical.Data.Sigma using ( _×_ )
open import Cubical.Data.Sum using ( inl; inr )
import Cubical.Data.Empty as Empty
import Cubical.HITs.PropositionalTruncation as PT
open PT using ( ∥_∥₁; ∣_∣₁; squash₁ )

SV.S 表示外围集合,以 SL.S 表示可构造集合。SL.S 的元素由外围集合及其可构造性证书组成。成员关系比较作用于第一分量,而 InjLIsCardinalL 以完整的可构造元素为对象。

open hPropStructure 𝒮ᵥ using ( _∈ˢ_ )
module SV = hPropStructure 𝒮ᵥ using ( S )
module SL = hPropStructure 𝒮ʟ using ( S )

给定序数 α,定理仅仅断言存在满足五项性质的 μμ 是序数,是内部基数,满足 μ ⊆ α,并且存在内部单射 α ↪ μμ ↪ α。截断使整个结论成为命题。

cardOf :
    (α : SL.S)  IsOrd (fst α)
    Σ[ μ  SL.S ]
       ( IsOrd (fst μ) × IsCardinalL μ

最终见证由代表 μ 与下面构造的五项证明组成。由于目标已经截断,只要这些分量齐备,放入这个依值对即可完成定理。

       × ((z : SV.S)   z ∈ˢ fst μ    z ∈ˢ fst α )
       × InjL α μ × InjL μ α ) ∥₁

关于 α 的辅助搜索准备提供后继的可构造性、指名 α 自身的索引及相应等式,还提供呈现索引上的良序 ww 的次序关系就是所指序数之间的成员关系。

cardOf α  =  μ ,  , cardμ , μ⊆α , α↪μ , μ↪α ∣₁
  where
  module LC = LeastCardInjL α  using ( hSucα; self; self-eq; w; w-lt )

T 为序数 α 的底层集合的后继。后继仍是序数,因此 T 的每个成员都是序数,搜索全程都可使用由成员关系给出的次序。

  T : SV.S
  T = sucV (fst α)

  oT : IsOrd T
  oT = suc-ord 

集合 T 是可构造的。这个证书不可或缺,因为搜索索引最初只指名 T 的外围成员;可构造性的向下封闭把该成员化为 SL.S 的元素。

  opaque
    hT :  isL T 
    hT = LC.hSucα

T 的呈现索引 bupL b 把所指成员与其可构造性证明配成依值对。后一个证明由该成员属于 T 以及 T 的可构造性得到。

  upL :  T   SL.S
  upL b =  T ⟫↪ b , isL-trans (member T b) hT
  Good :  T   hProp (ℓ-suc )
  Good b =  Σ[ δ  SL.S ] ((fst δ   T ⟫↪ b) × InjL α δ) ∥₁ , squash₁

若索引 b 所指的成员是某个可构造集合 δ 的底层集合,并且存在内部单射 α ↪ δ,就称 b 为好索引。Good b 中的等式连接索引呈现与可构造见证,截断则使好索引性取值于命题。

  selfGood :  Good LC.self 
  selfGood =  α , sym LC.self-eq , inclusion-coded α α  z z∈α  z∈α) ∣₁

  nonempty :  Σ[ b   T  ]  Good b  ∥₁
  nonempty =  LC.self , selfGood ∣₁

指名 α 的索引是好的:它所指成员等于 α,恒等包含则编码出从 α 到自身的内部单射。因此,好索引的类型仅仅非空。

  least : Σ[ b   T  ] IsLeast LC.w Good b
  least = leastOf LC.w lem Good nonempty

  m :  T 
  m = fst least

对良序 w 与命题值谓词 Good 应用最小元搜索。排中律判定好索引性,非空性保证存在最小的好索引;把它记作 m

  μ : SL.S
  μ = upL m

  μ∈T :  fst μ ∈ˢ T 
  μ∈T = member T m

把选中的索引 m 提升到可构造论域,并把所得元素记作 μ。依定义,μ 的底层集合就是 mT 中指名的成员。

   : IsOrd (fst μ)
   = mem-ord {A = T} oT (fst μ) μ∈T

呈现定理给出 μ ∈ T。由于 T 是序数,其每个成员仍是序数,所以 μ 具有所需的序数性。

  α↪μ : InjL α μ
  α↪μ = PT.rec squash₁ from (fst (snd least))
    where
    from : Σ[ δ  SL.S ] ((fst δ   T ⟫↪ m) × InjL α δ)  InjL α μ

最小索引的好索引性在截断之下给出可构造集合 δ、其底层集合与 m 所指成员之间的等式,以及单射 α ↪ δ。目标 InjL α μ 是命题,所以可以把截断见证消去到这个目标中。

    from (δ , e , α↪δ) =
      injl-trans α δ μ α↪δ
        (inclusion-coded δ μ  z z∈δ  subst  v   z ∈ˢ v ) e z∈δ))

沿索引等式搬运可知 δ 包含于 μ;包含关系的编码把它化为内部单射 δ ↪ μ。再与已有的 α ↪ δ 复合,便得到 α ↪ μ

  cardμ : IsCardinalL μ
  cardμ δ δ∈μ μ↪δ = snd (snd least) b bGood b<m
    where
    δ∈T :  fst δ ∈ˢ T 
    δ∈T = oT .fst {x = fst μ} {y = fst δ} δ∈μ μ∈T

为证明 μ 是基数,假设某个成员 δ ∈ μ 允许内部单射 μ ↪ δ。序数 T 的传递性给出 δ ∈ T,于是 T 的呈现产生一个指名 δ 的索引 b

    b :  T 
    b = fiber T δ∈T .fst
     :  T ⟫↪ b  fst δ

纤维定理同时给出索引 b 以及把它所指成员识别为 δ 的等式。这些数据使成员关系与单射陈述可以在索引成员和可构造元素 δ 之间搬运。

     = fiber T δ∈T .snd
    bGood :  Good b 
    bGood =  δ , sym  , injl-trans α μ δ α↪μ μ↪δ ∣₁

索引 b 是好的:把 α ↪ μ 与假设的 μ ↪ δ 复合,再用纤维等式匹配索引所指的成员。于是 b 是同一次搜索中的另一个候选。

    b<m : SWO._<∙_ LC.w b m
    b<m = transport  i  sym (LC.w-lt b m) i)
            (subst  z   z ∈ˢ fst μ ) (sym ) δ∈μ)

而且 b < m。良序 w 的关系就是所指序数之间的成员关系,假设 δ ∈ μ 搬运后恰好给出这个比较。最小好索引之下不可能再有好索引,所以这样的单射 μ ↪ δ 不存在;因此 μ 是内部基数。

  μ⊆α : (z : SV.S)   z ∈ˢ fst μ    z ∈ˢ fst α 
  μ⊆α = go (ord-tri (fst μ)  (fst α) )
    where
    go : Tri (fst μ) (fst α)  (z : SV.S)   z ∈ˢ fst μ    z ∈ˢ fst α 

还需证明 μ ⊆ α。序数三分法比较二者的底层序数。若 μ ∈ α,由 α 的传递性得到包含;若 μ = α,沿等式搬运即可。

    go (inl μ∈α)       z z∈μ =  .fst z∈μ μ∈α
    go (inr (inl e))   z z∈μ = subst  v   z ∈ˢ v ) e z∈μ

第三种情形 α ∈ μ 与最小性矛盾。指名 α 的索引是好的,而 α ∈ μ 表明这个索引在良序 w 中严格位于 m 之前。因此只剩三分法的前两种情形。

    go (inr (inr α∈μ)) z z∈μ =
      Empty.rec (snd (snd least) LC.self selfGood
        (transport  i  sym (LC.w-lt LC.self m) i)
          (subst  v   v ∈ˢ fst μ ) (sym LC.self-eq) α∈μ)))

包含 μ ⊆ α 编码出内部单射 μ ↪ α。连同 α ↪ μ 以及 μ 的序数性和基数性,这就完成了所承诺的代表。此后关于序数大小的论证可以在不离开 L 的前提下转到这个内部基数上。

  μ↪α : InjL μ α
  μ↪α = inclusion-coded μ α μ⊆α

代表 μ 是一个序数基数;它可以内部单射到 αα 也可以内部单射到它,并且包含于 α。由此,任意可构造序数上的基数算术都可以化归为内部基数上的基数算术。