Arithmetic on families of ordinals #
This file proves basic results about the suprema of families of ordinals.
Various other basic arithmetic results are given in Principal.lean instead.
Supremum of a family of ordinals #
theorem
Ordinal.bddAbove_image
{s : Set Ordinal.{u}}
(hf : BddAbove s)
(f : Ordinal.{u} → Ordinal.{max u v})
:
theorem
Ordinal.bddAbove_range_comp
{ι : Type u}
{f : ι → Ordinal.{v}}
(hf : BddAbove (Set.range f))
(g : Ordinal.{v} → Ordinal.{max v w})
:
le_ciSup whenever the input type is small in the output universe. This lemma sometimes
fails to infer f in simple cases and needs it to be given explicitly.
@[simp]
theorem
Ordinal.iSup_le_iff
{ι : Type u_3}
{f : ι → Ordinal.{u}}
{a : Ordinal.{u}}
[Small.{u, u_3} ι]
:
ciSup_le_iff' whenever the input type is small in the output universe.
An alias of ciSup_le' for discoverability.
@[simp]
theorem
Ordinal.lt_iSup_iff
{ι : Type u_3}
{f : ι → Ordinal.{u}}
{a : Ordinal.{u}}
[Small.{u, u_3} ι]
:
lt_ciSup_iff' whenever the input type is small in the output universe.
theorem
Ordinal.iSup_add_one_le_iff
{ι : Type u_3}
{f : ι → Ordinal.{u}}
{a : Ordinal.{u}}
[Small.{u, u_3} ι]
:
theorem
Ordinal.iSup_add_one_le
{ι : Sort u_3}
{f : ι → Ordinal.{u}}
{a : Ordinal.{u}}
(h : ∀ (i : ι), f i < a)
:
theorem
Ordinal.lt_iSup_add_one_iff
{ι : Type u_3}
{f : ι → Ordinal.{u}}
{a : Ordinal.{u}}
[Small.{u, u_3} ι]
:
theorem
Ordinal.succ_lt_iSup_of_ne_iSup
{ι : Type u_3}
{f : ι → Ordinal.{u}}
[Small.{u, u_3} ι]
(hf : ∀ (i : ι), f i ≠ iSup f)
{a : Ordinal.{u}}
(hao : a < iSup f)
:
theorem
Ordinal.iSup_sum
{α : Type u_3}
{β : Type u_4}
(f : α ⊕ β → Ordinal.{u})
[Small.{u, u_3} α]
[Small.{u, u_4} β]
:
theorem
Ordinal.unbounded_range_of_le_iSup
{α β : Type u}
(r : α → α → Prop)
[IsWellOrder α r]
(f : β → α)
(h : type r ≤ ⨆ (i : β), (typein r).toRelEmbedding (f i))
:
Set.Unbounded r (Set.range f)
theorem
Ordinal.iSup_add_one
{β : Type u_3}
[LinearOrder β]
[NoMaxOrder β]
{f : β → Ordinal.{u}}
(hf : StrictMono f)
:
theorem
Ordinal.iSup_Iio_add_one
{a : Ordinal.{u}}
{f : ↑(Set.Iio a) → Ordinal.{u}}
(hf : StrictMono f)
(ha : Order.IsSuccPrelimit a)
:
Results about injectivity and surjectivity #
The type of ordinals in universe u is not Small.{u}. This is the type-theoretic analog of
the Burali-Forti paradox.
Casting naturals into ordinals, compatibility with operations #
@[simp]
theorem
Ordinal.add_iSup
(o : Ordinal.{u})
{ι : Type u_1}
[Small.{u, u_1} ι]
[Nonempty ι]
(f : ι → Ordinal.{u})
:
@[simp]
theorem
Ordinal.add_sSup
(o : Ordinal.{u})
{s : Set Ordinal.{u}}
[Small.{u, u + 1} ↑s]
(hs : s.Nonempty)
:
@[simp]
@[simp]