Documentation

LeanPool.SetTheory.Ordinals

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.

def SetTheory.IsOrdinal {M : Type 1} [ZFStructure M] (x : M) :

The IsOrdinal declaration.

Equations
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) :
    IsOrdinal (j x₁) IsOrdinal x₁
    def SetTheory.IsStrongLimit {M : Type 1} [ZFStructure M] [hM : IsVonNeumann M] (κ : M) :

    The IsStrongLimit declaration.

    Equations
    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.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 ZFSet.IsOrdinal.mem_iff_lt {x y : ZFSet.{u_1}} (hx : x.IsOrdinal) (hy : y.IsOrdinal) :
      x y x < y
      theorem SetTheory.IsOrdinal.mem_iff_lt {M : Type 1} [ZFStructure M] [hM : IsVonNeumann M] {x y : M} (hx : IsOrdinal x) (hy : IsOrdinal y) :
      x y x < y
      @[reducible, inline]
      abbrev SetTheory.Ordinals (M : Type 1) [ZFStructure M] :

      The Ordinals declaration.

      Equations
      Instances For
        noncomputable def SetTheory.rank {M : Type 1} [ZFStructure M] [hM : IsVonNeumann M] (x : M) :
        M

        The rank declaration.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem SetTheory.toZFSet_rank {M : Type 1} [ZFStructure M] [hM : IsVonNeumann M] {x : M} :
          theorem SetTheory.rank_mem {M : Type 1} [ZFStructure M] [hM : IsVonNeumann M] {x y : M} (mem : x y) :
          rank x < rank 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} ( : IsOrdinal α) :
          rank α = α
          @[simp]
          theorem SetTheory.isOrdinal_rank {M : Type 1} [ZFStructure M] [hM : IsVonNeumann M] {α : M} :
          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} ( : IsOrdinal α) ( : IsOrdinal β) :
          ¬α β β < α
          theorem SetTheory.rank_trcl {M : Type 1} [ZFStructure M] [hM : IsVonNeumann M] {x : M} :
          rank (trcl x) = rank x
          theorem SetTheory.rank_singleton {M : Type 1} [ZFStructure M] [hM : IsVonNeumann M] {x : M} :
          noncomputable def SetTheory.rankFunc {M : Type 1} [ZFStructure M] [hM : IsVonNeumann M] (x : M) :
          (trcl {x})(succ (rank x))

          The rankFunc declaration.

          Equations
          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) :
            IsRankFunction (j x₁) (j x₂) IsRankFunction x₁ x₂
            theorem SetTheory.rankAux.eu {M : Type 1} [ZFStructure M] [hM : IsVonNeumann M] (x : M) :
            ∃! α : M, IsGLB {α : M | ∃ (f : M), IsRankFunction x f apply f x = α} α
            theorem SetTheory.rankAux.realize_iff {M : Type 1} [sM : ZFStructure M] [cM₁ : IsVonNeumann M] (v✝ : Fin 2M) :
            theorem SetTheory.rankAux.spec {M : Type 1} [sM : ZFStructure M] [cM₁ : IsVonNeumann M] (x₁ : M) :
            IsGLB {α : M | ∃ (f : M), IsRankFunction x₁ f apply f x₁ = α} (rankAux x₁)
            theorem SetTheory.rankAux.eq_iff {M : Type 1} [sM : ZFStructure M] [cM₁ : IsVonNeumann M] (x₁ v : M) :
            rankAux x₁ = v IsGLB {α : M | ∃ (f : M), IsRankFunction x₁ f apply f x₁ = α} v
            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) :
            rankAux (j x₁) = j (rankAux x₁)
            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 1M) => 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 : MProp} (x : M) (h : ∀ (x : M), (∀ (y : M), rank y < rank xp y)p x) :
              p x
              theorem SetTheory.rankAux_eq_rank {M : Type 1} [ZFStructure M] [hM : IsVonNeumann M] {x : M} :
              @[implicit_reducible]
              noncomputable instance SetTheory.instLinearOrderOrdinals {M : Type 1} [ZFStructure M] [hM : IsVonNeumann 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] :
              Equations
              noncomputable def SetTheory.toOrdinal {M : Type 1} [ZFStructure M] [hM : IsVonNeumann M] :

              The toOrdinal declaration.

              Equations
              Instances For

                The maxOrdinal declaration.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  theorem SetTheory.exists_toOrdinal_eq {M : Type 1} [ZFStructure M] [hM : IsVonNeumann M] {α : Ordinal.{0}} ( : α < maxOrdinal M) :
                  ∃ (β : Ordinals M), toOrdinal β = α
                  theorem SetTheory.toOrdinal_lt {M : Type 1} [ZFStructure M] [hM : IsVonNeumann M] {α : Ordinals M} :