@@ -151,7 +151,8 @@ theorem cof_omega0 : cof ω = ℵ₀ :=
151151
152152@ [deprecated (since := "2026-02-18" )] alias cof_eq_one_iff_is_succ := cof_eq_one_iff
153153
154- theorem ord_cof_eq (α : Type *) [LinearOrder α] [WellFoundedLT α] :
154+ variable (α) in
155+ theorem ord_cof_eq [LinearOrder α] [WellFoundedLT α] :
155156 ∃ s : Set α, IsCofinal s ∧ typeLT s = (Order.cof α).ord := by
156157 obtain ⟨s, hs, hs'⟩ := Order.cof_eq α
157158 obtain ⟨r, hr, hr'⟩ := exists_ord_eq s
@@ -166,8 +167,9 @@ theorem ord_cof_eq (α : Type*) [LinearOrder α] [WellFoundedLT α] :
166167 · obtain ⟨x, z, hz, rfl⟩ := x
167168 exact (hz _ hxy').asymm hxy
168169
170+ variable (α) in
169171@[simp]
170- theorem _root_.Order.cof_ord_cof (α : Type *) [LinearOrder α] [WellFoundedLT α] :
172+ theorem _root_.Order.cof_ord_cof [LinearOrder α] [WellFoundedLT α] :
171173 (Order.cof α).ord.cof = Order.cof α := by
172174 obtain ⟨s, hs, hs'⟩ := ord_cof_eq α
173175 rw [← hs', cof_type]
@@ -183,6 +185,21 @@ theorem cof_ord_cof (o : Ordinal) : o.cof.ord.cof = o.cof := by
183185
184186@ [deprecated (since := "2026-03-21" )] alias cof_cof := cof_ord_cof
185187
188+ theorem dirSupClosed_of_type_le_omega0 [LinearOrder α] [WellFoundedLT α]
189+ {s : Set α} (hs : IsCofinal s) (hω : typeLT s ≤ ω) : DirSupClosed s := by
190+ obtain hω | hω := hω.lt_or_eq
191+ · obtain ⟨n, hn⟩ := lt_omega0.1 hω
192+ apply_fun card at hn
193+ apply Finite.dirSupClosed
194+ rw [Set.Finite, ← mk_lt_aleph0_iff]
195+ simp_all
196+ · let e : ℕ ≃o s := by
197+ rw [omega0, ← lift_id (type _), lift_type_eq] at hω
198+ exact OrderIso.ofRelIsoLT hω.some.symm
199+ have hfs : .range (Subtype.val ∘ e) = s := by simp
200+ rw [← hfs] at hs ⊢
201+ exact dirSupClosed_range_nat ((Subtype.mono_coe _).comp e.monotone) hs
202+
186203/-! ### Cofinalities and suprema -/
187204
188205section LinearOrder
0 commit comments