Skip to content

Commit bd0eb03

Browse files
committed
finish
2 parents a8dd560 + a33cc54 commit bd0eb03

3 files changed

Lines changed: 20 additions & 15 deletions

File tree

Mathlib/Order/DirSupClosed.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ lemma dirSupInaccOn_Iic (a : α) : DirSupInaccOn D (Iic a) :=
289289

290290
end Preorder
291291

292-
namespace PartialOrder
292+
section PartialOrder
293293
variable [PartialOrder α]
294294

295295
theorem dirSupClosed_singleton (a : α) : DirSupClosed {a} := by
@@ -301,7 +301,7 @@ theorem dirSupClosed_singleton (a : α) : DirSupClosed {a} := by
301301
theorem dirSupClosedOn_singleton (a : α) : DirSupClosedOn D {a} :=
302302
(dirSupClosed_singleton a).dirSupClosedOn
303303

304-
theorem DirSupClosed.of_finite (hs : s.Finite) : DirSupClosed s := by
304+
theorem Set.Finite.dirSupClosed (hs : s.Finite) : DirSupClosed s := by
305305
intro t ht ht₀ ht₁ a ha
306306
obtain ⟨b, hbt, hb⟩ := ht₁.finite_le ht₀ (hs.subset ht)
307307
exact ht <| ha.unique ⟨hb, fun x hx ↦ hx hbt⟩ ▸ hbt

Mathlib/SetTheory/Cardinal/Cofinality/Club.lean

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -189,11 +189,6 @@ theorem not_isStationary_union [WellFoundedLT α] (hα : cof α ≠ ℵ₀)
189189
refine ⟨_, hu.inter hα hv, ?_⟩
190190
grind
191191

192-
theorem dirSupClosed_of_type_le_omega0 [WellFoundedLT α] {s : Set α} (hs : typeLT s ≤ ω) :
193-
DirSupClosed s := by
194-
195-
sorry
196-
197192
theorem IsStationary.of_not_isCofinal_compl (hs : ¬ IsCofinal (sᶜ)) : IsStationary s := by
198193
intro t ht
199194
obtain ⟨a, ha⟩ := not_isCofinal_iff.1 hs
@@ -205,6 +200,9 @@ theorem IsStationary.of_not_isCofinal_compl (hs : ¬ IsCofinal (sᶜ)) : IsStati
205200
theorem isStationary_iff_not_isCofinal_compl [WellFoundedLT α] (hα : cof α ≤ ℵ₀) :
206201
IsStationary s ↔ ¬ IsCofinal (sᶜ) where
207202
mp hs h := by
208-
obtain ⟨t, ht, ht', htα⟩ := Ordinal.ord_cof_eq_of_isCofinal h
209-
sorry
203+
obtain ⟨t, hts, ht, htα⟩ := ord_cof_eq_of_isCofinal h
204+
have ht' := dirSupClosed_of_type_le_omega0 ht (htα.trans_le ?_)
205+
· cases hs ⟨ht', ht⟩
206+
grind
207+
· simpa using ord_mono hα
210208
mpr := .of_not_isCofinal_compl

Mathlib/SetTheory/Cardinal/Cofinality/Ordinal.lean

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -195,13 +195,20 @@ theorem cof_ord_cof (o : Ordinal) : o.cof.ord.cof = o.cof := by
195195
@[deprecated (since := "2026-03-21")] alias cof_cof := cof_ord_cof
196196

197197
theorem dirSupClosed_of_type_le_omega0 [LinearOrder α] [WellFoundedLT α]
198-
{s : Set α} (hs : IsCofinal s) (hs' : typeLT s ≤ ω) : DirSupClosed s := by
199-
obtain rfl | hs₀ := s.eq_empty_or_nonempty
200-
· simp
201-
let f (n : ℕ) : α := if hn : n < typeLT s then enum (· < · : s → _) ⟨n, hn⟩
202-
sorry
198+
{s : Set α} (hs : IsCofinal s) (hω : typeLT s ≤ ω) : DirSupClosed s := by
199+
obtain hω | hω := hω.lt_or_eq
200+
· obtain ⟨n, hn⟩ := lt_omega0.1
201+
apply_fun card at hn
202+
apply Finite.dirSupClosed
203+
rw [Set.Finite, ← mk_lt_aleph0_iff]
204+
simp_all
205+
· let e : ℕ ≃o s := by
206+
rw [omega0, ← lift_id (type _), lift_type_eq] at hω
207+
exact OrderIso.ofRelIsoLT hω.some.symm
208+
have hfs : .range (Subtype.val ∘ e) = s := by simp
209+
rw [← hfs] at hs ⊢
210+
exact dirSupClosed_range_nat ((Subtype.mono_coe _).comp e.monotone) hs
203211

204-
#exit
205212
/-! ### Cofinalities and suprema -/
206213

207214
section LinearOrder

0 commit comments

Comments
 (0)