Cofinality of an ordinal #
This file contains the definition of the cofinality Ordinal.cof o of an ordinal. This is the
cofinality of the ordinal o when viewed as a linear order.
Main statements #
Cardinal.lt_power_cof_ord: A consequence of König's theorem stating thatc < c ^ c.ord.cofforc ≥ ℵ₀.
Implementation notes #
- We do not separately define the cofinality of a cardinal. If
cis a cardinal number, you can write its cofinality asc.ord.cof.
Cofinality of ordinals #
@[simp]
@[simp]
@[simp]
@[deprecated Ordinal.cof_add_one (since := "2026-05-25")]
@[simp]
@[simp]
@[deprecated Ordinal.one_lt_cof_iff (since := "2026-03-22")]
theorem
Ordinal.cof_eq_aleph0_of_isSuccLimit
{o : Ordinal.{u_1}}
(ho : Order.IsSuccLimit o)
(ho' : o < omega 1)
:
A countable limit ordinal has cofinality ℵ₀.
Every well-order has a cofinal subset of order type (cof α).ord.
@[deprecated Ordinal.exists_ord_cof_eq (since := "2026-05-25")]
Alias of Ordinal.exists_ord_cof_eq.
Every well-order has a cofinal subset of order type (cof α).ord.
theorem
Ordinal.exists_ord_cof_eq_of_isCofinal
{α : Type u}
[LinearOrder α]
[WellFoundedLT α]
{s : Set α}
(hs : IsCofinal s)
:
Every cofinal set has a cofinal subset of order type (cof α).ord.
@[simp]
@[deprecated Ordinal.cof_ord_cof (since := "2026-03-21")]
Alias of Ordinal.cof_ord_cof.
Cofinalities and suprema #
theorem
Ordinal.lift_cof_iSup_add_one
{β : Type v}
[LinearOrder β]
[Small.{u, v} β]
{f : β → Ordinal.{u}}
(hf : StrictMono f)
:
theorem
Ordinal.cof_iSup_add_one
{γ : Type u}
[LinearOrder γ]
{f : γ → Ordinal.{u}}
(hf : StrictMono f)
:
theorem
Ordinal.lift_cof_iSup
{β : Type v}
[LinearOrder β]
[Small.{u, v} β]
[NoMaxOrder β]
{f : β → Ordinal.{u}}
(hf : StrictMono f)
:
theorem
Ordinal.cof_iSup
{γ : Type u}
[LinearOrder γ]
[NoMaxOrder γ]
{f : γ → Ordinal.{u}}
(hf : StrictMono f)
:
theorem
Ordinal.cof_iSup_Iio_add_one
{a : Ordinal.{u_1}}
{f : ↑(Set.Iio a) → Ordinal.{u_1}}
(hf : StrictMono f)
:
theorem
Ordinal.cof_iSup_Iio
{a : Ordinal.{u_1}}
{f : ↑(Set.Iio a) → Ordinal.{u_1}}
(hf : StrictMono f)
(ha : Order.IsSuccPrelimit a)
:
theorem
Ordinal.cof_map_of_isNormal
{f : Ordinal.{u_1} → Ordinal.{u_1}}
(hf : Order.IsNormal f)
{a : Ordinal.{u_1}}
(ha : Order.IsSuccLimit a)
:
@[deprecated Ordinal.cof_map_of_isNormal (since := "2026-03-19")]
theorem
Ordinal.cof_eq_of_isNormal
{f : Ordinal.{u_1} → Ordinal.{u_1}}
(hf : Order.IsNormal f)
{a : Ordinal.{u_1}}
(ha : Order.IsSuccLimit a)
:
Alias of Ordinal.cof_map_of_isNormal.
theorem
Ordinal.le_cof_map_of_isNormal
{f : Ordinal.{u_1} → Ordinal.{u_1}}
(hf : Order.IsNormal f)
(a : Ordinal.{u_1})
:
@[deprecated Ordinal.le_cof_map_of_isNormal (since := "2026-03-19")]
theorem
Ordinal.cof_le_of_isNormal
{f : Ordinal.{u_1} → Ordinal.{u_1}}
(hf : Order.IsNormal f)
(a : Ordinal.{u_1})
:
Alias of Ordinal.le_cof_map_of_isNormal.
theorem
Ordinal.sSup_add_one_lt_of_lt_cof
{s : Set Ordinal.{u}}
{a : Ordinal.{u}}
(ha : Cardinal.mk ↑s < (lift.{u + 1, u} a).cof)
(hs : ∀ i ∈ s, i < a)
:
theorem
Ordinal.sSup_lt_of_lt_cof
{s : Set Ordinal.{u}}
{a : Ordinal.{u}}
(ha : Cardinal.mk ↑s < (lift.{u + 1, u} a).cof)
(hs : ∀ i ∈ s, i < a)
:
theorem
Ordinal.lift_iSup_add_one_lt_of_lt_cof
{β : Type v}
{f : β → Ordinal.{u}}
{a : Ordinal.{u}}
(ha : Cardinal.lift.{u, v} (Cardinal.mk β) < (lift.{v, u} a).cof)
(hf : ∀ (i : β), f i < a)
:
theorem
Ordinal.iSup_add_one_lt_of_lt_cof
{α : Type u}
{f : α → Ordinal.{u}}
{a : Ordinal.{u}}
(ha : Cardinal.mk α < a.cof)
(hf : ∀ (i : α), f i < a)
:
theorem
Ordinal.lift_iSup_lt_of_lt_cof
{β : Type v}
{f : β → Ordinal.{u}}
{a : Ordinal.{u}}
(ha : Cardinal.lift.{u, v} (Cardinal.mk β) < (lift.{v, u} a).cof)
(hf : ∀ (i : β), f i < a)
:
theorem
Ordinal.iSup_lt_of_lt_cof
{α : Type u}
{f : α → Ordinal.{u}}
{a : Ordinal.{u}}
(ha : Cardinal.mk α < a.cof)
(hf : ∀ (i : α), f i < a)
:
theorem
Cardinal.sSup_lt_of_lt_cof_ord
{s : Set Cardinal.{u}}
{a : Cardinal.{u}}
(ha : mk ↑s < (lift.{u + 1, u} a).ord.cof)
(hs : ∀ i ∈ s, i < a)
:
theorem
Cardinal.lift_iSup_lt_of_lt_cof_ord
{β : Type v}
{f : β → Cardinal.{u}}
{a : Cardinal.{u}}
(ha : lift.{u, v} (mk β) < (lift.{v, u} a).ord.cof)
(hf : ∀ (i : β), f i < a)
:
theorem
Cardinal.iSup_lt_of_lt_cof_ord
{α : Type u}
{f : α → Cardinal.{u}}
{a : Cardinal.{u}}
(ha : mk α < a.ord.cof)
(hf : ∀ (i : α), f i < a)
:
@[deprecated "to build an increasing function with limit o, use the fundamental sequence API." (since := "2026-03-27")]
theorem
Ordinal.cof_lsub_def_nonempty
(o : Ordinal.{u})
:
{a : Cardinal.{u} | ∃ (ι : Type u) (f : ι → Ordinal.{u}), lsub f = o ∧ Cardinal.mk ι = a}.Nonempty
The set in the lsub characterization of cof is nonempty.
@[deprecated "to build an increasing function with limit o, use the fundamental sequence API." (since := "2026-03-27")]
theorem
Ordinal.cof_eq_sInf_lsub
(o : Ordinal.{u})
:
o.cof = sInf {a : Cardinal.{u} | ∃ (ι : Type u) (f : ι → Ordinal.{u}), lsub f = o ∧ Cardinal.mk ι = a}
@[deprecated "to build an increasing function with limit o, use the fundamental sequence API." (since := "2026-03-27")]
theorem
Ordinal.exists_lsub_cof
(o : Ordinal.{u})
:
∃ (ι : Type u) (f : ι → Ordinal.{u}), lsub f = o ∧ Cardinal.mk ι = o.cof
@[deprecated Ordinal.cof_iSup_add_one_le (since := "2026-03-22")]
@[deprecated Ordinal.cof_lift_iSup_add_one_le (since := "2026-03-22")]
@[deprecated Order.le_cof_iff (since := "2026-03-21")]
@[deprecated Ordinal.lift_iSup_add_one_lt_of_lt_cof (since := "2026-03-22")]
theorem
Ordinal.lsub_lt_ord_lift
{ι : Type u}
{f : ι → Ordinal.{max u v}}
{c : Ordinal.{max u v}}
(hι : Cardinal.lift.{v, u} (Cardinal.mk ι) < c.cof)
(hf : ∀ (i : ι), f i < c)
:
@[deprecated Ordinal.iSup_add_one_lt_of_lt_cof (since := "2026-03-22")]
theorem
Ordinal.lsub_lt_ord
{ι : Type u}
{f : ι → Ordinal.{u}}
{c : Ordinal.{u}}
(hι : Cardinal.mk ι < c.cof)
:
@[deprecated Ordinal.lift_iSup_lt_of_lt_cof (since := "2026-03-22")]
theorem
Ordinal.cof_iSup_le_lift
{ι : Type u}
{f : ι → Ordinal.{max u v}}
(H : ∀ (i : ι), f i < iSup f)
:
@[deprecated Ordinal.iSup_lt_of_lt_cof (since := "2026-03-22")]
@[deprecated Ordinal.lift_iSup_lt_of_lt_cof (since := "2026-03-22")]
theorem
Ordinal.iSup_lt_ord_lift
{ι : Type u}
{f : ι → Ordinal.{max u v}}
{c : Ordinal.{max u v}}
(hι : Cardinal.lift.{v, u} (Cardinal.mk ι) < c.cof)
(hf : ∀ (i : ι), f i < c)
:
@[deprecated Ordinal.iSup_lt_of_lt_cof (since := "2026-03-22")]
theorem
Ordinal.iSup_lt_ord
{α : Type u}
{f : α → Ordinal.{u}}
{a : Ordinal.{u}}
(ha : Cardinal.mk α < a.cof)
(hf : ∀ (i : α), f i < a)
:
Alias of Ordinal.iSup_lt_of_lt_cof.
@[deprecated Ordinal.lift_iSup_lt_of_lt_cof (since := "2026-03-22")]
theorem
Ordinal.iSup_lt_lift
{ι : Type u}
{f : ι → Cardinal.{max u v}}
{c : Cardinal.{max u v}}
(hι : Cardinal.lift.{v, u} (Cardinal.mk ι) < c.ord.cof)
(hf : ∀ (i : ι), f i < c)
:
@[deprecated Cardinal.iSup_lt_of_lt_cof_ord (since := "2026-03-22")]
theorem
Ordinal.iSup_lt
{α : Type u}
{f : α → Cardinal.{u}}
{a : Cardinal.{u}}
(ha : Cardinal.mk α < a.ord.cof)
(hf : ∀ (i : α), f i < a)
:
Alias of Cardinal.iSup_lt_of_lt_cof_ord.
theorem
Ordinal.nfpFamily_lt_ord_lift
{ι : Type u}
{f : ι → Ordinal.{max u v} → Ordinal.{max u v}}
{c : Ordinal.{max u v}}
(hc : Cardinal.aleph0 < c.cof)
(hc' : Cardinal.lift.{v, u} (Cardinal.mk ι) < c.cof)
(hf : ∀ (i : ι), ∀ b < c, f i b < c)
{a : Ordinal.{max u v}}
(ha : a < c)
:
theorem
Ordinal.nfpFamily_lt_ord
{ι : Type u}
{f : ι → Ordinal.{u} → Ordinal.{u}}
{c : Ordinal.{u}}
(hc : Cardinal.aleph0 < c.cof)
(hc' : Cardinal.mk ι < c.cof)
(hf : ∀ (i : ι), ∀ b < c, f i b < c)
{a : Ordinal.{u}}
:
theorem
Ordinal.nfp_lt_ord
{f : Ordinal.{u_1} → Ordinal.{u_1}}
{c : Ordinal.{u_1}}
(hc : Cardinal.aleph0 < c.cof)
(hf : ∀ i < c, f i < c)
{a : Ordinal.{u_1}}
:
@[deprecated Ordinal.exists_lsub_cof (since := "2026-03-21")]
theorem
Ordinal.exists_blsub_cof
(o : Ordinal.{u})
:
∃ (f : (a : Ordinal.{u}) → a < o.cof.ord → Ordinal.{u}), o.cof.ord.blsub f = o
@[deprecated Order.le_cof_iff (since := "2026-03-21")]
theorem
Ordinal.le_cof_iff_blsub
{b : Ordinal.{u}}
{a : Cardinal.{u}}
:
a ≤ b.cof ↔ ∀ {o : Ordinal.{u}} (f : (a : Ordinal.{u}) → a < o → Ordinal.{u}), o.blsub f = b → a ≤ o.card
@[deprecated Ordinal.cof_lift_iSup_add_one_le (since := "2026-03-22")]
theorem
Ordinal.cof_blsub_le_lift
{o : Ordinal.{u}}
(f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v})
:
@[deprecated Ordinal.cof_iSup_add_one_le (since := "2026-03-22")]
@[deprecated Ordinal.lift_iSup_add_one_lt_of_lt_cof (since := "2026-03-22")]
theorem
Ordinal.blsub_lt_ord_lift
{o : Ordinal.{u}}
{f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v}}
{c : Ordinal.{max u v}}
(ho : Cardinal.lift.{v, u} o.card < c.cof)
(hf : ∀ (i : Ordinal.{u}) (hi : i < o), f i hi < c)
:
@[deprecated Ordinal.iSup_add_one_lt_of_lt_cof (since := "2026-03-22")]
theorem
Ordinal.blsub_lt_ord
{o : Ordinal.{u}}
{f : (a : Ordinal.{u}) → a < o → Ordinal.{u}}
{c : Ordinal.{u}}
(ho : o.card < c.cof)
(hf : ∀ (i : Ordinal.{u}) (hi : i < o), f i hi < c)
:
@[deprecated Ordinal.lift_iSup_lt_of_lt_cof (since := "2026-03-22")]
theorem
Ordinal.cof_bsup_le_lift
{o : Ordinal.{u}}
{f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v}}
(H : ∀ (i : Ordinal.{u}) (h : i < o), f i h < o.bsup f)
:
@[deprecated Ordinal.iSup_lt_of_lt_cof (since := "2026-03-22")]
@[deprecated Ordinal.lift_iSup_lt_of_lt_cof (since := "2026-03-22")]
theorem
Ordinal.bsup_lt_ord_lift
{o : Ordinal.{u}}
{f : (a : Ordinal.{u}) → a < o → Ordinal.{max u v}}
{c : Ordinal.{max u v}}
(ho : Cardinal.lift.{v, u} o.card < c.cof)
(hf : ∀ (i : Ordinal.{u}) (hi : i < o), f i hi < c)
:
@[deprecated Ordinal.iSup_lt_of_lt_cof (since := "2026-03-22")]
theorem
Ordinal.bsup_lt_ord
{o : Ordinal.{u}}
{f : (a : Ordinal.{u}) → a < o → Ordinal.{u}}
{c : Ordinal.{u}}
(ho : o.card < c.cof)
:
(∀ (i : Ordinal.{u}) (hi : i < o), f i hi < c) → o.bsup f < c
Cofinality arithmetic #
@[simp]
@[simp]
@[simp]
@[simp]
@[deprecated Order.cof_eq (since := "2026-03-20")]
theorem
Ordinal.cof_eq'
{α : Type u}
(r : α → α → Prop)
[H : IsWellOrder α r]
(h : Order.IsSuccLimit (type r))
:
Results on sets #
theorem
Cardinal.mk_bounded_subset
{α : Type u_1}
(h : (mk α).IsStrongPrelimit)
{r : α → α → Prop}
[IsWellOrder α r]
(hr : (mk α).ord = Ordinal.type r)
:
Consequences of König's lemma #
@[deprecated Cardinal.lt_power_cof_ord (since := "2026-03-30")]
Alias of Cardinal.lt_power_cof_ord.
@[deprecated Cardinal.lt_cof_ord_power (since := "2026-03-30")]
Alias of Cardinal.lt_cof_ord_power.