Ordinals in models of ZF #
This module develops the theory of ordinals inside a von Neumann model of ZF, including
their order structure and the correspondence with Mathlib's Ordinal type.
The IsOrdinal declaration.
Equations
- SetTheory.IsOrdinal x = (SetTheory.IsTransitive x ∧ ∀ y ∈ x, SetTheory.IsTransitive y)
Instances For
theorem
SetTheory.IsOrdinal.elementarity
{M : Type 1}
[sM : ZFStructure M]
{N : Type 1}
[sN : ZFStructure N]
(x₁ : M)
{F : Type u_1}
[FunLike F M N]
[ElementaryEmbeddingClass F M N]
(j : F)
:
The IsStrongLimit declaration.
Equations
- SetTheory.IsStrongLimit κ = (SetTheory.IsOrdinal κ ∧ ∀ α ∈ κ, SetTheory.cardLT (𝓟 α) κ)
Instances For
theorem
SetTheory.IsStrongLimit.elementarity
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
{N : Type 1}
[sN : ZFStructure N]
[cN₁ : IsVonNeumann N]
(x₁ : M)
{F : Type u_1}
[FunLike F M N]
[ElementaryEmbeddingClass F M N]
(j : F)
:
theorem
SetTheory.IsStrongLimit.realize_iff
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
(v✝ : Fin 1 → M)
:
theorem
SetTheory.IsStrongLimit.to_realize
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
(x₁ : M)
:
The IsOrdinalValuedFunc declaration.
Equations
- SetTheory.IsOrdinalValuedFunc f = (SetTheory.IsFunc f ∧ ∀ x ∈ SetTheory.Ran f, SetTheory.IsOrdinal x)
Instances For
theorem
SetTheory.IsOrdinalValuedFunc.realize_iff
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
(v✝ : Fin 1 → M)
:
theorem
SetTheory.IsOrdinalValuedFunc.elementarity
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
{N : Type 1}
[sN : ZFStructure N]
[cN₁ : IsVonNeumann N]
(x₁ : M)
{F : Type u_1}
[FunLike F M N]
[ElementaryEmbeddingClass F M N]
(j : F)
:
theorem
SetTheory.IsOrdinalValuedFunc.to_realize
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
(x₁ : M)
:
@[simp]
theorem
SetTheory.IsOrdinal.mem_iff_lt
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
{x y : M}
(hx : IsOrdinal x)
(hy : IsOrdinal y)
:
@[reducible, inline]
The Ordinals declaration.
Equations
- SetTheory.Ordinals M = { x : M // SetTheory.IsOrdinal x }
Instances For
The rank declaration.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
SetTheory.rank_mem
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
{x y : M}
(mem : x ∈ y)
:
theorem
SetTheory.rank_mono
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
{x y : M}
(sub : x ⊆ y)
:
theorem
SetTheory.rank_ordinal
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
{α : M}
(hα : IsOrdinal α)
:
@[simp]
theorem
SetTheory.IsOrdinal.mem
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
{α β : M}
(hx : IsOrdinal α)
(hy : β ∈ α)
:
theorem
SetTheory.IsOrdinal.lt_of_mem
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
{α β : M}
(hx : IsOrdinal α)
(hy : β ∈ α)
:
theorem
SetTheory.IsOrdinal.not_le_iff
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
{α β : M}
(hα : IsOrdinal α)
(hβ : IsOrdinal β)
:
theorem
SetTheory.rank_enoughTransitive
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
{x : M}
:
The rankFunc declaration.
Equations
- SetTheory.rankFunc x ⟨y, hy⟩ = ⟨SetTheory.rank y, ⋯⟩
Instances For
theorem
SetTheory.IsRankFunction.elementarity
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
{N : Type 1}
[sN : ZFStructure N]
[cN₁ : IsVonNeumann N]
(x₁ x₂ : M)
{F : Type u_1}
[FunLike F M N]
[ElementaryEmbeddingClass F M N]
(j : F)
:
theorem
SetTheory.IsRankFunction.to_realize
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
(x₁ x₂ : M)
:
theorem
SetTheory.IsRankFunction.realize_iff
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
(v✝ : Fin 2 → M)
:
theorem
SetTheory.isRankFunction_rankFunc
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
{x : M}
:
IsRankFunction x (funcToSet (rankFunc x))
theorem
SetTheory.rankAux.realize_iff
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
(v✝ : Fin 2 → M)
:
theorem
SetTheory.rankAux.eq_iff
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
(x₁ v : M)
:
theorem
SetTheory.rankAux.elementarity
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
{N : Type 1}
[sN : ZFStructure N]
[cN₁ : IsVonNeumann N]
(x₁ : M)
{F : Type u_1}
[FunLike F M N]
[ElementaryEmbeddingClass F M N]
(j : F)
:
theorem
SetTheory.rankAux.to_realize
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
(x₁ x₂ : M)
:
instance
SetTheory.rankAux.instFormulaToFunction
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
:
FormulaToFunction formula fun (v : Fin 1 → M) => rankAux (v 0)
noncomputable def
SetTheory.rankAux
{M : Type 1}
[sM : ZFStructure M]
[cM₁ : IsVonNeumann M]
(x₁ : M)
:
M
The set-theoretic function automatically realized from its defining property.
Equations
Instances For
theorem
SetTheory.rank_induction
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
{p : M → Prop}
(x : M)
(h : ∀ (x : M), (∀ (y : M), rank y < rank x → p y) → p x)
:
p x
@[implicit_reducible]
noncomputable instance
SetTheory.instLinearOrderOrdinals
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
:
LinearOrder (Ordinals M)
Equations
- One or more equations did not get rendered due to their size.
@[implicit_reducible]
noncomputable instance
SetTheory.instOrderBotOrdinals
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
:
@[implicit_reducible]
noncomputable instance
SetTheory.instConditionallyCompleteLinearOrderBotOrdinals
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
:
@[simp]
The toOrdinal declaration.
Equations
- SetTheory.toOrdinal = { toFun := fun (α : SetTheory.Ordinals M) => (⇓↑α).rank, inj' := ⋯, map_rel_iff' := ⋯ }
Instances For
The maxOrdinal declaration.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
SetTheory.toZFSet_toOrdinal
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
{α : Ordinals M}
:
theorem
SetTheory.exists_toOrdinal_eq
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
{α : Ordinal.{0}}
(hα : ↑α < maxOrdinal M)
:
theorem
SetTheory.toOrdinal_lt
{M : Type 1}
[ZFStructure M]
[hM : IsVonNeumann M]
{α : Ordinals M}
: