@@ -6,8 +6,7 @@ Authors: Violeta Hernández Palacios
66module
77
88public import Mathlib.Order.DirSupClosed
9- public import Mathlib.Order.IsNormal
10- public import Mathlib.SetTheory.Cardinal.Cofinality.Basic
9+ public import Mathlib.SetTheory.Cardinal.Cofinality.Ordinal
1110
1211/-!
1312# Club sets
@@ -27,7 +26,7 @@ public section
2726
2827universe u v
2928
30- open Cardinal Order
29+ open Cardinal Order Ordinal Set
3130
3231/-- A club set is closed under suprema and cofinal. -/
3332structure IsClub {α : Type *} [LinearOrder α] (s : Set α) where
@@ -51,7 +50,7 @@ protected theorem univ : IsClub (α := α) .univ :=
5150 ⟨.univ, .univ⟩
5251
5352protected theorem union (hs : IsClub s) (ht : IsClub t) : IsClub (s ∪ t) :=
54- ⟨hs.dirSupClosed.union ht.dirSupClosed, hs.isCofinal.mono Set. subset_union_left⟩
53+ ⟨hs.dirSupClosed.union ht.dirSupClosed, hs.isCofinal.mono subset_union_left⟩
5554
5655theorem isLUB_mem (hs : IsClub s) (ht : t ⊆ s) (ht₀ : t.Nonempty) (hx : IsLUB t x) : x ∈ s :=
5756 hs.dirSupClosed ht ht₀ (.of_linearOrder _) hx
@@ -63,12 +62,12 @@ theorem csSup_mem {α} [ConditionallyCompleteLinearOrder α] {s t : Set α}
6362theorem sInter_of_orderTop {s : Set (Set α)} [OrderTop α] (hs : ∀ x ∈ s, IsClub x) :
6463 IsClub (⋂₀ s) := by
6564 refine ⟨.sInter fun x hx ↦ (hs x hx).dirSupClosed, ?_⟩
66- rw [isCofinal_iff_top_mem, Set. mem_sInter]
65+ rw [isCofinal_iff_top_mem, mem_sInter]
6766 exact fun x hx ↦ (hs x hx).isCofinal.top_mem
6867
6968theorem iInter_of_orderTop {ι : Type *} {f : ι → Set α} [OrderTop α] (hs : ∀ i, IsClub (f i)) :
7069 IsClub (⋂ i, f i) := by
71- rw [← Set. sInter_range]
70+ rw [← sInter_range]
7271 exact .sInter_of_orderTop (by simpa)
7372
7473theorem sInter_of_cof_le_one {s : Set (Set α)} (hα : cof α ≤ 1 ) (hs : ∀ x ∈ s, IsClub x) :
@@ -80,7 +79,7 @@ theorem sInter_of_cof_le_one {s : Set (Set α)} (hα : cof α ≤ 1) (hs : ∀ x
8079
8180theorem iInter_of_cof_le_one {ι : Type *} {f : ι → Set α} (hα : cof α ≤ 1 ) (hs : ∀ i, IsClub (f i)) :
8281 IsClub (⋂ i, f i) := by
83- rw [← Set. sInter_range]
82+ rw [← sInter_range]
8483 exact .sInter_of_cof_le_one hα (by simpa)
8584
8685section WellFoundedLT
@@ -102,7 +101,7 @@ protected theorem sInter {s : Set (Set α)} (hα : cof α ≠ ℵ₀) (hsα : #s
102101 refine .of_not_isCofinal fun hg ↦ (cof_le hg).not_gt (hα.trans_le' ?_)
103102 simpa using mk_range_le_lift (f := g)
104103 refine ⟨_, fun t ht ↦ ?_, le_csSup hg ⟨0 , rfl⟩⟩
105- apply (hs t ht).isLUB_mem (t := .range fun n ↦ f ⟨t, ht⟩ (g n)) _ (Set. range_nonempty _)
104+ apply (hs t ht).isLUB_mem (t := .range fun n ↦ f ⟨t, ht⟩ (g n)) _ (range_nonempty _)
106105 · refine ⟨?_, fun b hb ↦ csSup_le' ?_⟩ <;> rintro _ ⟨n, rfl⟩
107106 · apply (le_csSup (.of_not_isCofinal _) _).trans (le_csSup hg ⟨n + 1 , rfl⟩)
108107 · exact fun hg' ↦ (cof_le hg').not_gt (mk_range_le.trans_lt hsα)
@@ -113,14 +112,14 @@ protected theorem sInter {s : Set (Set α)} (hα : cof α ≠ ℵ₀) (hsα : #s
113112protected theorem iInter {ι : Type u} {f : ι → Set α} (hα : cof α ≠ ℵ₀)
114113 (hι : Cardinal.lift.{v} #ι < Cardinal.lift.{u} (cof α)) (hf : ∀ i, IsClub (f i)) :
115114 IsClub (⋂ i, f i) := by
116- rw [← Set. sInter_range]
115+ rw [← sInter_range]
117116 refine IsClub.sInter hα ?_ (by simpa)
118117 rw [← Cardinal.lift_lt]
119118 exact mk_range_le_lift.trans_lt hι
120119
121120protected theorem inter {s t : Set α} (hα : cof α ≠ ℵ₀) (hs : IsClub s) (ht : IsClub t) :
122121 IsClub (s ∩ t) := by
123- rw [← Set. sInter_pair]
122+ rw [← sInter_pair]
124123 have H : ∀ x ∈ ({s, t} : Set _), IsClub x := by simpa [hs]
125124 obtain hα | hα' := hα.lt_or_gt
126125 · rw [cof_lt_aleph0_iff] at hα
@@ -134,7 +133,7 @@ theorem _root_.Order.IsNormal.isClub_fixedPoints {f : α → α} (hα : cof α
134133 IsClub f.fixedPoints := by
135134 cases isEmpty_or_nonempty α; · simp
136135 refine ⟨fun s hs hs₀ _ a ha ↦ (hf.map_isLUB ha hs₀).unique ?_, fun a ↦ ?_⟩
137- · rwa [Set. image_congr hs, Set. image_id']
136+ · rwa [image_congr hs, image_id']
138137 · cases topOrderOrNoTopOrder α with
139138 | inl => use ⊤; simpa using hf.strictMono.id_le ⊤
140139 | inr h =>
@@ -145,5 +144,20 @@ theorem _root_.Order.IsNormal.isClub_fixedPoints {f : α → α} (hα : cof α
145144 ((aleph0_le_cof.lt_of_ne' hα).trans_le' ?_)
146145 simpa using mk_range_le_lift (f := fun n : ℕ ↦ f^[n] a)
147146
147+ /-- Every cofinal set of order type `(cof α).ord` has a club superset of the same order type. -/
148+ theorem ord_cof_eq_isClub_of_isCofinal (hs : IsCofinal s) (hsα : typeLT s = (cof α).ord) :
149+ ∃ t, s ⊆ t ∧ IsClub t ∧ typeLT t = (cof α).ord := by
150+ obtain hα | hα := le_or_gt (cof α) ℵ₀
151+ · refine ⟨s, subset_rfl, ⟨?_, hs⟩, hsα⟩
152+ apply dirSupClosed_of
153+ sorry
154+
155+ variable (α) in
156+ /-- Every well-order has a club subset of order type `(cof α).ord`. -/
157+ theorem ord_cof_eq_isClub : ∃ t : Set α, IsClub t ∧ typeLT t = (cof α).ord := by
158+ obtain ⟨s, hs, hs'⟩ := ord_cof_eq α
159+ obtain ⟨t, -, ht, ht'⟩ := ord_cof_eq_isClub_of_isCofinal hs hs'
160+ exact ⟨t, ht, ht'⟩
161+
148162end WellFoundedLT
149163end IsClub
0 commit comments