Skip to content

Commit

Permalink
feat(set_theory/ordinal_arithmetic): Suprema and least strict upper b…
Browse files Browse the repository at this point in the history
…ounds of constant families (#11862)
  • Loading branch information
vihdzp committed Feb 6, 2022
1 parent 6787a8d commit 4148990
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions src/set_theory/ordinal_arithmetic.lean
Expand Up @@ -969,6 +969,9 @@ by rw [sup_le, comp, H.le_set' (λ_:ι, true) g (let ⟨i⟩ := h in ⟨i, ⟨
theorem sup_ord {ι} (f : ι → cardinal) : sup (λ i, (f i).ord) = (cardinal.sup f).ord :=
eq_of_forall_ge_iff $ λ a, by simp only [sup_le, cardinal.ord_le, cardinal.sup_le]

theorem sup_const {ι} [hι : nonempty ι] (o : ordinal) : sup (λ _ : ι, o) = o :=
le_antisymm (sup_le.2 (λ _, le_rfl)) (le_sup _ hι.some)

lemma unbounded_range_of_sup_ge {α β : Type u} (r : α → α → Prop) [is_well_order α r] (f : β → α)
(h : type r ≤ sup.{u u} (typein r ∘ f)) : unbounded r (range f) :=
(not_bounded_iff _).1 $ λ ⟨x, hx⟩, not_lt_of_le h $ lt_of_le_of_lt
Expand Down Expand Up @@ -1049,6 +1052,9 @@ theorem lt_bsup_of_limit {o : ordinal} {f : Π a < o, ordinal}
(ho : o.is_limit) (i h) : f i h < bsup o f :=
lt_of_lt_of_le (hf _ _ $ lt_succ_self i) (le_bsup f i.succ $ ho.2 _ h)

theorem bsup_const {o : ordinal} (ho : o ≠ 0) (a : ordinal) : bsup o (λ _ _, a) = a :=
le_antisymm (bsup_le.2 (λ _ _, le_rfl)) (le_bsup _ 0 (ordinal.pos_iff_ne_zero.2 ho))

theorem bsup_id {o} (ho : is_limit o) : bsup.{u u} o (λ x _, x) = o :=
le_antisymm (bsup_le.2 (λ i hi, hi.le))
(not_lt.1 (λ h, (lt_bsup_of_limit.{u u} (λ _ _ _ _, id) ho _ h).false))
Expand Down Expand Up @@ -1117,6 +1123,9 @@ begin
exact this.false
end

theorem lsub_const {ι} [hι : nonempty ι] (o : ordinal) : lsub (λ _ : ι, o) = o + 1 :=
sup_const o.succ

theorem lsub_nmem_range {ι} (f : ι → ordinal) : lsub f ∉ set.range f :=
λ ⟨i, h⟩, h.not_lt (lt_lsub f i)

Expand Down Expand Up @@ -1198,6 +1207,9 @@ eq_of_forall_ge_iff $ λ o,
by rw [blsub_le, lsub_le]; exact
⟨λ H b, H _ _, λ H i h, by simpa only [typein_enum] using H (enum r i h)⟩

theorem blsub_const {o : ordinal} (ho : o ≠ 0) (a : ordinal) : blsub.{u v} o (λ _ _, a) = a + 1 :=
bsup_const.{u v} ho a.succ

theorem blsub_id {o} : blsub.{u u} o (λ x _, x) = o :=
begin
apply le_antisymm,
Expand Down

0 comments on commit 4148990

Please sign in to comment.