Documentation

Mathlib.SetTheory.ZFC.Ordinal

Von Neumann ordinals #

This file works towards the development of von Neumann ordinals, i.e. transitive sets, well-ordered under .

Definitions #

TODO #

Transitive sets #

A transitive set is one where every element is a subset.

This is equivalent to being an infinite-open interval in the transitive closure of membership.

Equations
    Instances For
      theorem ZFSet.isTransitive_iff_mem_trans {z : ZFSet.{u}} :
      z.IsTransitive ∀ {x y : ZFSet.{u}}, x yy zx z
      theorem ZFSet.IsTransitive.mem_trans {z : ZFSet.{u}} :
      z.IsTransitive∀ {x y : ZFSet.{u}}, x yy zx z

      Alias of the forward direction of ZFSet.isTransitive_iff_mem_trans.

      The union of a transitive set is transitive.

      The union of transitive sets is transitive.

      Ordinals #

      A set x is a von Neumann ordinal when it's a transitive set, that's transitive under . We prove that this further implies that x is well-ordered under in isOrdinal_iff_isWellOrder.

      The transitivity condition a ∈ b → b ∈ c → a ∈ c can be written without assuming a ∈ x and b ∈ x. The lemma isOrdinal_iff_isTrans shows this condition is equivalent to the usual one.

      • isTransitive : x.IsTransitive

        An ordinal is a transitive set.

      • mem_trans' {y z w : ZFSet.{u_1}} : y zz ww xy w

        The membership operation within an ordinal is transitive.

      Instances For
        theorem ZFSet.IsOrdinal.subset_of_mem {x y : ZFSet.{u}} (h : x.IsOrdinal) :
        y xy x
        theorem ZFSet.IsOrdinal.mem_trans {x y z : ZFSet.{u}} (h : z.IsOrdinal) :
        x yy zx z
        theorem ZFSet.IsOrdinal.isTrans {x : ZFSet.{u}} (h : x.IsOrdinal) :
        IsTrans { x_1 : ZFSet.{u} // x_1 x } (Subrel (fun (x1 x2 : ZFSet.{u}) => x1 x2) fun (x_1 : ZFSet.{u}) => x_1 x)
        theorem ZFSet.isOrdinal_iff_isTrans {x : ZFSet.{u}} :
        x.IsOrdinal x.IsTransitive IsTrans { x_1 : ZFSet.{u} // x_1 x } (Subrel (fun (x1 x2 : ZFSet.{u}) => x1 x2) fun (x_1 : ZFSet.{u}) => x_1 x)

        The simplified form of transitivity used within IsOrdinal yields an equivalent definition to the standard one.

        theorem ZFSet.IsOrdinal.mem {x y : ZFSet.{u}} (hx : x.IsOrdinal) (hy : y x) :

        An ordinal is a transitive set of transitive sets.

        An ordinal is a transitive set of ordinals.

        theorem ZFSet.IsOrdinal.subset_iff_eq_or_mem {x y : ZFSet.{u}} (hx : x.IsOrdinal) (hy : y.IsOrdinal) :
        x y x = y x y
        theorem ZFSet.IsOrdinal.eq_or_mem_of_subset {x y : ZFSet.{u}} (hx : x.IsOrdinal) (hy : y.IsOrdinal) :
        x yx = y x y

        Alias of the forward direction of ZFSet.IsOrdinal.subset_iff_eq_or_mem.

        theorem ZFSet.IsOrdinal.mem_of_subset_of_mem {x y z : ZFSet.{u}} (h : x.IsOrdinal) (hz : z.IsOrdinal) (hx : x y) (hy : y z) :
        x z
        theorem ZFSet.IsOrdinal.notMem_iff_subset {x y : ZFSet.{u}} (hx : x.IsOrdinal) (hy : y.IsOrdinal) :
        xy y x
        @[deprecated ZFSet.IsOrdinal.notMem_iff_subset (since := "2025-05-23")]
        theorem ZFSet.IsOrdinal.not_mem_iff_subset {x y : ZFSet.{u}} (hx : x.IsOrdinal) (hy : y.IsOrdinal) :
        xy y x

        Alias of ZFSet.IsOrdinal.notMem_iff_subset.

        theorem ZFSet.IsOrdinal.mem_or_subset {x y : ZFSet.{u}} (hx : x.IsOrdinal) (hy : y.IsOrdinal) :
        x y y x
        theorem ZFSet.IsOrdinal.subset_total {x y : ZFSet.{u}} (hx : x.IsOrdinal) (hy : y.IsOrdinal) :
        x y y x
        theorem ZFSet.IsOrdinal.mem_trichotomous {x y : ZFSet.{u}} (hx : x.IsOrdinal) (hy : y.IsOrdinal) :
        x y x = y y x
        theorem ZFSet.IsOrdinal.isTrichotomous {x : ZFSet.{u}} (h : x.IsOrdinal) :
        IsTrichotomous { x_1 : ZFSet.{u} // x_1 x } (Subrel (fun (x1 x2 : ZFSet.{u}) => x1 x2) fun (x_1 : ZFSet.{u}) => x_1 x)
        theorem ZFSet.isOrdinal_iff_isTrichotomous {x : ZFSet.{u}} :
        x.IsOrdinal x.IsTransitive IsTrichotomous { x_1 : ZFSet.{u} // x_1 x } (Subrel (fun (x1 x2 : ZFSet.{u}) => x1 x2) fun (x_1 : ZFSet.{u}) => x_1 x)

        An ordinal is a transitive set, trichotomous under membership.

        theorem ZFSet.IsOrdinal.isWellOrder {x : ZFSet.{u}} (h : x.IsOrdinal) :
        IsWellOrder { x_1 : ZFSet.{u} // x_1 x } (Subrel (fun (x1 x2 : ZFSet.{u}) => x1 x2) fun (x_1 : ZFSet.{u}) => x_1 x)
        theorem ZFSet.isOrdinal_iff_isWellOrder {x : ZFSet.{u}} :
        x.IsOrdinal x.IsTransitive IsWellOrder { x_1 : ZFSet.{u} // x_1 x } (Subrel (fun (x1 x2 : ZFSet.{u}) => x1 x2) fun (x_1 : ZFSet.{u}) => x_1 x)

        An ordinal is a transitive set, well-ordered under membership.