@@ -659,6 +659,24 @@ instance [LocallyCompactSpace α] : LocallyCompactSpace (Compacts α) := by
659659 vietoris.specializes_of_subset_closure ?_ ?_⟩ <;>
660660 grind [coe_mk, subset_closure]
661661
662+ instance [SeparableSpace α] : SeparableSpace (Compacts α) := by
663+ obtain ⟨s, hs₁, hs₂⟩ := exists_countable_dense α
664+ refine ⟨_, (countable_setOf_finite_subset hs₁).preimage SetLike.coe_injective, ?_⟩
665+ simp [dense_iff_closure_eq, closure_finite_subsets, hs₂.closure_eq]
666+
667+ @[simp]
668+ theorem separableSpace_iff : SeparableSpace (Compacts α) ↔ SeparableSpace α := by
669+ refine ⟨fun _ => ?_, fun _ => inferInstance⟩
670+ cases isEmpty_or_nonempty α
671+ · infer_instance
672+ obtain ⟨s, hs₁, hs₂⟩ := exists_countable_dense (Compacts α)
673+ refine ⟨(fun K => Classical.epsilon (· ∈ K)) '' s, hs₁.image _,
674+ dense_iff_inter_open.mpr fun U hU ⟨x, hx⟩ => ?_⟩
675+ obtain ⟨K, ⟨hK₁, hK₂⟩, hK₃⟩ := hs₂.inter_open_nonempty _
676+ ((isOpen_subsets_of_isOpen hU).inter (isOpen_inter_nonempty_of_isOpen hU)) ⟨{x}, by simpa⟩
677+ refine ⟨Classical.epsilon (· ∈ K), ?_, mem_image_of_mem _ hK₃⟩
678+ exact hK₁ <| Classical.epsilon_spec (hK₂.mono inter_subset_left)
679+
662680end Compacts
663681
664682namespace NonemptyCompacts
@@ -900,6 +918,16 @@ theorem _root_.TopologicalSpace.Compacts.locallyCompactSpace_iff :
900918 ⟨fun _ => NonemptyCompacts.locallyCompactSpace_iff.mp
901919 isOpenEmbedding_toCompacts.locallyCompactSpace, fun _ => inferInstance⟩
902920
921+ instance [SeparableSpace α] : SeparableSpace (NonemptyCompacts α) :=
922+ isOpenEmbedding_toCompacts.separableSpace
923+
924+ @[simp]
925+ theorem separableSpace_iff : SeparableSpace (NonemptyCompacts α) ↔ SeparableSpace α := by
926+ refine ⟨fun _ => ?_, fun _ => inferInstance⟩
927+ rw [← Compacts.separableSpace_iff, ← isSeparable_univ_iff, ← union_compl_self {⊥},
928+ ← range_toCompacts]
929+ exact (finite_singleton _).isSeparable.union (isSeparable_range continuous_toCompacts)
930+
903931end NonemptyCompacts
904932
905933end TopologicalSpace
0 commit comments