@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
44Authors: Attila Gáspár
55-/
66import Mathlib.Topology.Sets.Compacts
7+ import Mathlib.Topology.UniformSpace.Compact
78import Mathlib.Topology.UniformSpace.UniformEmbedding
89
910/-!
@@ -74,6 +75,18 @@ instance isTrans_hausdorffEntourage (U : SetRel α α) [hU : U.IsTrans] :
7475 (hausdorffEntourage U).IsTrans := by
7576 grw [isTrans_iff_comp_subset_self, ← hausdorffEntourage_comp, comp_subset_self]
7677
78+ theorem TotallyBounded.exists_prodMk_finset_mem_hausdorffEntourage [UniformSpace α]
79+ {s : Set α} (hs : TotallyBounded s) {U : SetRel α α} (hU : U ∈ 𝓤 α) :
80+ ∃ t : Finset α, (↑t, s) ∈ hausdorffEntourage U := by
81+ obtain ⟨t, ht₁, ht₂⟩ := hs _ (symm_le_uniformity hU)
82+ lift t to Finset α using ht₁
83+ classical
84+ refine ⟨{x ∈ t | ∃ y ∈ s, (x, y) ∈ U}, ?_⟩
85+ rw [Finset.coe_filter]
86+ refine ⟨fun _ h => h.2 , fun x hx => ?_⟩
87+ obtain ⟨y, hy, hxy⟩ := Set.mem_iUnion₂.mp (ht₂ hx)
88+ exact ⟨y, ⟨hy, x, hx, hxy⟩, hxy⟩
89+
7790end hausdorffEntourage
7891
7992variable [UniformSpace α]
@@ -154,8 +167,41 @@ end TopologicalSpace.Closeds
154167
155168namespace TopologicalSpace.Compacts
156169
170+ open UniformSpace in
157171instance uniformSpace : UniformSpace (Compacts α) :=
158- .comap SetLike.coe .hausdorff
172+ .replaceTopology (.comap SetLike.coe .hausdorff) <| by
173+ -- We need to show that the Hausdorff uniformity induces the Vietoris topology
174+ refine le_antisymm (le_of_nhds_le_nhds fun K => ?_) ?_
175+ · simp_rw [nhds_eq_comap_uniformity]
176+ change _ ≤ Filter.comap _ (Filter.comap _ (Filter.lift' _ _))
177+ rw [Filter.comap_comap,
178+ uniformity_hasBasis_open.lift' monotone_hausdorffEntourage |>.comap _ |>.ge_iff]
179+ intro U ⟨hU₁, hU₂⟩
180+ simp_rw [Function.comp_id, hausdorffEntourage, Set.preimage_setOf_eq, Function.comp,
181+ Set.setOf_and]
182+ have : U.IsRefl := ⟨fun _ => refl_mem_uniformity hU₁⟩
183+ refine Filter.inter_mem ?_ <| (isOpen_subsets_of_isOpen hU₂.relImage).mem_nhds <|
184+ SetRel.self_subset_image _
185+ obtain ⟨V : SetRel α α, hV₁, hV₂, _, hVU⟩ := comp_open_symm_mem_uniformity_sets hU₁
186+ obtain ⟨s, hs₁, hs₂⟩ :=
187+ K.isCompact.totallyBounded.exists_prodMk_finset_mem_hausdorffEntourage hV₁
188+ dsimp only at hs₁ hs₂
189+ filter_upwards [(Filter.eventually_all_finset s).mpr fun x hx =>
190+ isOpen_inter_nonempty_of_isOpen (isOpen_ball x hV₂) |>.eventually_mem (hs₁ hx)] with L hL
191+ grw [hs₂, ← SetRel.preimage_eq_image, ← hVU, SetRel.preimage_comp]
192+ gcongr
193+ exact hL
194+ · apply le_generateFrom
195+ rintro _ (⟨U, hU, rfl⟩ | ⟨U, hU, rfl⟩)
196+ · simp_rw [isOpen_iff_mem_nhds, UniformSpace.mem_nhds_iff]
197+ intro K hK
198+ obtain ⟨V, hV₁, hV₂⟩ :=
199+ K.isCompact.nhdsSet_basis_uniformity (𝓤 _).basis_sets
200+ |>.mem_iff.mp (hU.mem_nhdsSet.mpr hK)
201+ rw [Set.iUnion₂_subset_iff] at hV₂
202+ exact ⟨_, Filter.preimage_mem_comap (Filter.mem_lift' hV₁),
203+ fun L ⟨_, hL⟩ x hx => (hL hx).elim fun y ⟨hy, hyx⟩ => hV₂ y hy hyx⟩
204+ · exact isOpen_induced (hausdorff.isOpen_inter_nonempty_of_isOpen hU)
159205
160206theorem uniformity_def :
161207 𝓤 (Compacts α) = .comap (Prod.map (↑) (↑)) ((𝓤 α).lift' hausdorffEntourage) :=
@@ -173,20 +219,17 @@ theorem isUniformEmbedding_coe : IsUniformEmbedding ((↑) : Compacts α → Set
173219theorem uniformContinuous_coe : UniformContinuous ((↑) : Compacts α → Set α) :=
174220 isUniformEmbedding_coe.uniformContinuous
175221
176- theorem isOpen_inter_nonempty_of_isOpen {s : Set α} (hs : IsOpen s) :
177- IsOpen {t : Compacts α | ((t : Set α) ∩ s).Nonempty} :=
178- isOpen_induced (UniformSpace.hausdorff.isOpen_inter_nonempty_of_isOpen hs)
179-
180- theorem isClosed_subsets_of_isClosed {s : Set α} (hs : IsClosed s) :
181- IsClosed {t : Compacts α | (t : Set α) ⊆ s} :=
182- isClosed_induced (UniformSpace.hausdorff.isClosed_subsets_of_isClosed hs)
183-
184222end TopologicalSpace.Compacts
185223
186224namespace TopologicalSpace.NonemptyCompacts
187225
188226instance uniformSpace : UniformSpace (NonemptyCompacts α) :=
189- .comap SetLike.coe .hausdorff
227+ .replaceTopology (.comap SetLike.coe .hausdorff) <| by
228+ rw [isEmbedding_toCompacts.eq_induced]
229+ change (Compacts.uniformSpace.comap toCompacts).toTopologicalSpace = _
230+ congr 1
231+ ext1
232+ exact Filter.comap_comap
190233
191234theorem uniformity_def :
192235 𝓤 (NonemptyCompacts α) = .comap (Prod.map (↑) (↑)) ((𝓤 α).lift' hausdorffEntourage) :=
@@ -227,16 +270,4 @@ theorem isUniformEmbedding_toCompacts : IsUniformEmbedding (toCompacts (α := α
227270theorem uniformContinuous_toCompacts : UniformContinuous (toCompacts (α := α)) :=
228271 isUniformEmbedding_toCompacts.uniformContinuous
229272
230- @[fun_prop]
231- theorem continuous_toCompacts : Continuous (toCompacts (α := α)) :=
232- uniformContinuous_toCompacts.continuous
233-
234- theorem isOpen_inter_nonempty_of_isOpen {s : Set α} (hs : IsOpen s) :
235- IsOpen {t : NonemptyCompacts α | ((t : Set α) ∩ s).Nonempty} :=
236- isOpen_induced (UniformSpace.hausdorff.isOpen_inter_nonempty_of_isOpen hs)
237-
238- theorem isClosed_subsets_of_isClosed {s : Set α} (hs : IsClosed s) :
239- IsClosed {t : NonemptyCompacts α | (t : Set α) ⊆ s} :=
240- isClosed_induced (UniformSpace.hausdorff.isClosed_subsets_of_isClosed hs)
241-
242273end TopologicalSpace.NonemptyCompacts
0 commit comments