Parameters of the construction #
We describe the various parameters to the model construction.
The parameters of the construction. We collect them all in one class for simplicity.
Note that the ordinal λ
in the paper is instead referred to here as Λ
, since the symbol λ
is
used for lambda abstractions.
Ordinals and cardinals are represented here as arbitrary types (not sets) with certain properties.
For instance, Λ
is an arbitrary type that has an ordering <
, which is assumed to be a
well-ordering (the Λ_isWellOrder
term is a proof of this fact).
The prefix #
denotes the cardinality of a type.
- Λ : Type u
- Λ_linearOrder : LinearOrder ConNF.Λ
- Λ_isWellOrder : IsWellOrder ConNF.Λ fun (x x_1 : ConNF.Λ) => x < x_1
- Λ_zero : Zero ConNF.Λ
- Λ_succ : SuccOrder ConNF.Λ
- Λ_zero_le : ∀ (α : ConNF.Λ), 0 ≤ α
- Λ_isLimit : (Ordinal.type fun (x x_1 : ConNF.Λ) => x < x_1).IsLimit
- κ : Type u
- κ_linearOrder : LinearOrder ConNF.κ
- κ_isWellOrder : IsWellOrder ConNF.κ fun (x x_1 : ConNF.κ) => x < x_1
- κ_ord : (Ordinal.type fun (x x_1 : ConNF.κ) => x < x_1) = (Cardinal.mk ConNF.κ).ord
- κ_isRegular : (Cardinal.mk ConNF.κ).IsRegular
- κ_succ : SuccOrder ConNF.κ
- κ_addMonoid : AddMonoid ConNF.κ
- κ_sub : Sub ConNF.κ
- κ_add_typein : ∀ (i j : ConNF.κ), Ordinal.typein (fun (x x_1 : ConNF.κ) => x < x_1) (i + j) = Ordinal.typein (fun (x x_1 : ConNF.κ) => x < x_1) i + Ordinal.typein (fun (x x_1 : ConNF.κ) => x < x_1) j
- κ_sub_typein : ∀ (i j : ConNF.κ), Ordinal.typein (fun (x x_1 : ConNF.κ) => x < x_1) (i - j) = Ordinal.typein (fun (x x_1 : ConNF.κ) => x < x_1) i - Ordinal.typein (fun (x x_1 : ConNF.κ) => x < x_1) j
- Λ_lt_κ : Cardinal.mk ConNF.Λ < Cardinal.mk ConNF.κ
- μ : Type u
- μ_linearOrder : LinearOrder ConNF.μ
- μ_isWellOrder : IsWellOrder ConNF.μ fun (x x_1 : ConNF.μ) => x < x_1
- μ_ord : (Ordinal.type fun (x x_1 : ConNF.μ) => x < x_1) = (Cardinal.mk ConNF.μ).ord
- μ_isStrongLimit : (Cardinal.mk ConNF.μ).IsStrongLimit
- κ_lt_μ : Cardinal.mk ConNF.κ < Cardinal.mk ConNF.μ
- κ_le_μ_ord_cof : Cardinal.mk ConNF.κ ≤ (Cardinal.mk ConNF.μ).ord.cof
Instances
Explicit parameters #
There exist valid parameters for the model. The smallest such parameters are
We begin by creating a few instances that allow us to use cardinals to satisfy the model parameters.
Equations
- ConNF.succOrderOfIsWellOrder h = { succ := ⋯.succ, le_succ := ⋯, max_of_succ_le := ⋯, succ_le_of_lt := ⋯, le_of_lt_succ := ⋯ }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- IsWellFounded.bot α r = ⋯.min Set.univ ⋯
Instances For
Equations
- ConNF.addZeroClass_of_type_eq_ord h = let __spread.0 := ConNF.add_of_type_eq_ord h; AddZeroClass.mk ⋯ ⋯
Instances For
Equations
- ConNF.addMonoid_of_type_eq_ord h = let __spread.0 := ConNF.addZeroClass_of_type_eq_ord h; AddMonoid.mk ⋯ ⋯ nsmulRec ⋯ ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
The smallest set of valid parameters for the model.
They are instantiated in Lean's minimal universe 0
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ConNF.instLinearOrderΛ = ConNF.Params.Λ_linearOrder
Equations
- ⋯ = ⋯
Equations
- ConNF.instZeroΛ = ConNF.Params.Λ_zero
Equations
- ConNF.instInhabitedΛ = { default := 0 }
Equations
- ConNF.instSuccOrderΛ = ConNF.Params.Λ_succ
Equations
- ConNF.instLinearOrderκ = ConNF.Params.κ_linearOrder
Equations
- ⋯ = ⋯
Equations
- ConNF.instSuccOrderκ = ConNF.Params.κ_succ
Equations
- ConNF.instAddMonoidκ = ConNF.Params.κ_addMonoid
Equations
- ConNF.instSubκ = ConNF.Params.κ_sub
Equations
- ConNF.instInhabitedκ = { default := 0 }
Equations
- ConNF.instLinearOrderμ = ConNF.Params.μ_linearOrder
Equations
- ⋯ = ⋯
Equations
- ConNF.κ_ofNat 0 = 0
- ConNF.κ_ofNat n.succ = Order.succ (ConNF.κ_ofNat n)
Instances For
Equations
- ConNF.instOfNatκ n = { ofNat := ConNF.κ_ofNat n }
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Type indices #
Either the base type or a proper type index (an element of Λ
).
The base type is written ⊥
.
Instances For
Since Λ
is well-ordered, so is Λ
together with the base type ⊥
.
This allows well founded recursion on type indices.
Equations
- ConNF.instWellFoundedRelationΛ = IsWellOrder.toHasWellFounded
Equations
- ConNF.instWellFoundedRelationTypeIndex = IsWellOrder.toHasWellFounded
There are exactly Λ
type indices.
Sets of the form {y | y < x}
have cardinality < μ
.
Sets of the form {y | y ≤ x}
have cardinality < μ
.