@@ -38,46 +38,48 @@ structure IsClub {α : Type*} [LinearOrder α] (s : Set α) where
3838 See `not_bddAbove_iff_isCofinal`. -/
3939 isCofinal : IsCofinal s
4040
41+ namespace IsClub
42+
4143variable {α : Type v} {s t : Set α} {x : α} [LinearOrder α]
4244
4345@[simp]
44- theorem IsClub. of_isEmpty [IsEmpty α] {s : Set α} : IsClub s :=
46+ theorem of_isEmpty [IsEmpty α] {s : Set α} : IsClub s :=
4547 ⟨.of_isEmpty, .of_isEmpty⟩
4648
4749@[simp]
48- theorem IsClub. univ : IsClub (α := α) .univ :=
50+ protected theorem univ : IsClub (α := α) .univ :=
4951 ⟨.univ, .univ⟩
5052
51- theorem IsClub. union (hs : IsClub s) (ht : IsClub t) : IsClub (s ∪ t) :=
53+ protected theorem union (hs : IsClub s) (ht : IsClub t) : IsClub (s ∪ t) :=
5254 ⟨hs.dirSupClosed.union ht.dirSupClosed, hs.isCofinal.mono Set.subset_union_left⟩
5355
54- theorem IsClub. isLUB_mem (hs : IsClub s) (ht : t ⊆ s) (ht₀ : t.Nonempty) (hx : IsLUB t x) : x ∈ s :=
56+ theorem isLUB_mem (hs : IsClub s) (ht : t ⊆ s) (ht₀ : t.Nonempty) (hx : IsLUB t x) : x ∈ s :=
5557 hs.dirSupClosed ht ht₀ (.of_linearOrder _) hx
5658
57- theorem IsClub. csSup_mem {α} [ConditionallyCompleteLinearOrder α] {s t : Set α}
59+ theorem csSup_mem {α} [ConditionallyCompleteLinearOrder α] {s t : Set α}
5860 (hs : IsClub s) (ht : t ⊆ s) (ht₀ : t.Nonempty) (ht₁ : BddAbove t) : sSup t ∈ s :=
5961 hs.isLUB_mem ht ht₀ (isLUB_csSup ht₀ ht₁)
6062
61- theorem IsClub. sInter_of_orderTop {s : Set (Set α)} [OrderTop α]
62- (hs : ∀ x ∈ s, IsClub x) : IsClub (⋂₀ s) := by
63+ theorem sInter_of_orderTop {s : Set (Set α)} [OrderTop α] (hs : ∀ x ∈ s, IsClub x) :
64+ IsClub (⋂₀ s) := by
6365 refine ⟨.sInter fun x hx ↦ (hs x hx).dirSupClosed, ?_⟩
6466 rw [isCofinal_iff_top_mem, Set.mem_sInter]
6567 exact fun x hx ↦ (hs x hx).isCofinal.top_mem
6668
67- theorem IsClub. iInter_of_orderTop {ι : Type *} {f : ι → Set α} [OrderTop α]
68- (hs : ∀ i, IsClub (f i)) : IsClub (⋂ i, f i) := by
69+ theorem iInter_of_orderTop {ι : Type *} {f : ι → Set α} [OrderTop α] (hs : ∀ i, IsClub (f i)) :
70+ IsClub (⋂ i, f i) := by
6971 rw [← Set.sInter_range]
7072 exact .sInter_of_orderTop (by simpa)
7173
72- theorem IsClub. sInter_of_cof_le_one {s : Set (Set α)} (hα : cof α ≤ 1 )
73- (hs : ∀ x ∈ s, IsClub x) : IsClub (⋂₀ s) := by
74+ theorem sInter_of_cof_le_one {s : Set (Set α)} (hα : cof α ≤ 1 ) (hs : ∀ x ∈ s, IsClub x) :
75+ IsClub (⋂₀ s) := by
7476 cases isEmpty_or_nonempty α; · simp
7577 cases topOrderOrNoTopOrder α
7678 · exact .sInter_of_orderTop hs
7779 · cases one_lt_cof.not_ge hα
7880
79- theorem IsClub. iInter_of_cof_le_one {ι : Type *} {f : ι → Set α} (hα : cof α ≤ 1 )
80- (hs : ∀ i, IsClub (f i)) : IsClub (⋂ i, f i) := by
81+ theorem iInter_of_cof_le_one {ι : Type *} {f : ι → Set α} (hα : cof α ≤ 1 ) (hs : ∀ i, IsClub (f i)) :
82+ IsClub (⋂ i, f i) := by
8183 rw [← Set.sInter_range]
8284 exact .sInter_of_cof_le_one hα (by simpa)
8385
@@ -88,7 +90,7 @@ variable [WellFoundedLT α]
8890attribute [local instance ]
8991 WellFoundedLT.toOrderBot WellFoundedLT.conditionallyCompleteLinearOrderBot
9092
91- theorem IsClub. sInter {s : Set (Set α)} (hα : cof α ≠ ℵ₀) (hsα : #s < cof α)
93+ protected theorem sInter {s : Set (Set α)} (hα : cof α ≠ ℵ₀) (hsα : #s < cof α)
9294 (hs : ∀ x ∈ s, IsClub x) : IsClub (⋂₀ s) := by
9395 cases isEmpty_or_nonempty α; · simp
9496 obtain hα | hα := hα.lt_or_gt
@@ -108,15 +110,15 @@ theorem IsClub.sInter {s : Set (Set α)} (hα : cof α ≠ ℵ₀) (hsα : #s <
108110 · exact (hf ⟨t, ht⟩ _).2 .trans <| hb ⟨_, rfl⟩
109111 · grind
110112
111- theorem IsClub. iInter {ι : Type u} {f : ι → Set α} (hα : cof α ≠ ℵ₀)
113+ protected theorem iInter {ι : Type u} {f : ι → Set α} (hα : cof α ≠ ℵ₀)
112114 (hι : Cardinal.lift.{v} #ι < Cardinal.lift.{u} (cof α)) (hf : ∀ i, IsClub (f i)) :
113115 IsClub (⋂ i, f i) := by
114116 rw [← Set.sInter_range]
115117 refine IsClub.sInter hα ?_ (by simpa)
116118 rw [← Cardinal.lift_lt]
117119 exact mk_range_le_lift.trans_lt hι
118120
119- theorem IsClub. inter {s t : Set α} (hα : cof α ≠ ℵ₀) (hs : IsClub s) (ht : IsClub t) :
121+ protected theorem inter {s t : Set α} (hα : cof α ≠ ℵ₀) (hs : IsClub s) (ht : IsClub t) :
120122 IsClub (s ∩ t) := by
121123 rw [← Set.sInter_pair]
122124 have H : ∀ x ∈ ({s, t} : Set _), IsClub x := by simpa [hs]
@@ -125,10 +127,10 @@ theorem IsClub.inter {s t : Set α} (hα : cof α ≠ ℵ₀) (hs : IsClub s) (h
125127 exact .sInter_of_cof_le_one hα H
126128 · exact .sInter hα (hα'.trans_le' <| by simp) H
127129
128- theorem Order.IsNormal.isClub_range {f : α → α} (hf : IsNormal f) : IsClub (.range f) :=
130+ theorem _root_. Order.IsNormal.isClub_range {f : α → α} (hf : IsNormal f) : IsClub (.range f) :=
129131 ⟨hf.dirSupClosed_range, fun x ↦ ⟨_, ⟨x, rfl⟩, hf.strictMono.le_apply⟩⟩
130132
131- theorem Order.IsNormal.isClub_fixedPoints {f : α → α} (hα : cof α ≠ ℵ₀) (hf : IsNormal f) :
133+ theorem _root_. Order.IsNormal.isClub_fixedPoints {f : α → α} (hα : cof α ≠ ℵ₀) (hf : IsNormal f) :
132134 IsClub f.fixedPoints := by
133135 cases isEmpty_or_nonempty α; · simp
134136 refine ⟨fun s hs hs₀ _ a ha ↦ (hf.map_isLUB ha hs₀).unique ?_, fun a ↦ ?_⟩
@@ -144,3 +146,4 @@ theorem Order.IsNormal.isClub_fixedPoints {f : α → α} (hα : cof α ≠ ℵ
144146 simpa using mk_range_le_lift (f := fun n : ℕ ↦ f^[n] a)
145147
146148end WellFoundedLT
149+ end IsClub
0 commit comments