Documentation

Mathlib.SetTheory.Cardinal.Cofinality.Enum

Enumerating a cofinal set #

We define a typeclass IsRegularCardinalOrder for well-ordered types, whose order type equals (the initial ordinal of) their cofinality. This notion does not appear in the literature, but intends to generalize the properties of intervals Iio c.ord, wherever c is a regular cardinal. Other instances of this typeclass include , Ordinal, and Cardinal.

If s is a cofinal subset of a regular cardinal order α, there exists a unique order isomorphism α ≃o s, which we call Order.enum. When α = Ordinal, this is referred to as the enumerator function of the set. Note that if α = ℕ, then this definition matches Nat.nth.

TODO #

A typeclass which expresses that the order type of a well-order equals (the initial ordinal of) its cofinality.

If α is infinite, this implies that α is order isomorphic to Iio c.ord for some regular cardinal c. In the informal literature, one often says that α is a regular cardinal, by abuse of notation.

Instances
    theorem Order.ord_cof_eq_type_lt {α : Type u_1} [LinearOrder α] [WellFoundedLT α] [IsRegularCardinalOrder α] :
    (cof α).ord = Ordinal.type fun (x1 x2 : α) => x1 < x2
    @[simp]
    theorem Cardinal.ord_cardinalMk {α : Type u_1} [LinearOrder α] [WellFoundedLT α] [IsRegularCardinalOrder α] :
    (mk α).ord = Ordinal.type fun (x1 x2 : α) => x1 < x2
    theorem Order.type_eq_of_isCofinal {α : Type u_1} [LinearOrder α] [WellFoundedLT α] [IsRegularCardinalOrder α] {s : Set α} (hs : IsCofinal s) :
    (Ordinal.type fun (x1 x2 : s) => x1 < x2) = Ordinal.type fun (x1 x2 : α) => x1 < x2
    noncomputable def Order.enum {α : Type u_1} [LinearOrder α] [WellFoundedLT α] [IsRegularCardinalOrder α] (s : Set α) (hs : IsCofinal s) :
    α ≃o s

    Enumerate the elements of a cofinal subset of α by α itself. This is a generalization of Nat.nth.

    Equations
    Instances For
      theorem Order.enum_le_of_forall_lt {α : Type u_1} [LinearOrder α] [WellFoundedLT α] [IsRegularCardinalOrder α] {a o : α} {s : Set α} {hs : IsCofinal s} (ho : o s) (H : b < a, ((enum s hs) b) < o) :
      ((enum s hs) a) o
      theorem Order.enum_succ_le_of_lt {α : Type u_1} [LinearOrder α] [WellFoundedLT α] [IsRegularCardinalOrder α] [SuccOrder α] {a o : α} {s : Set α} {hs : IsCofinal s} (ha : o s) (H : ((enum s hs) a) < o) :
      ((enum s hs) (succ a)) o
      @[simp]
      theorem Order.enum_univ {α : Type u_1} [LinearOrder α] [WellFoundedLT α] [IsRegularCardinalOrder α] (x : α) :
      (enum Set.univ ) x = x,