@@ -244,7 +244,7 @@ lemma isNowhereDense_iff_forall_notMem_nhds {s : Set X} :
244244 mem_interior_iff_mem_nhds]
245245
246246/-- The image of a nowhere dense set through an inducing map is nowhere dense. -/
247- lemma Topology.IsInducing.isNowhereDense_image {f : X → Y} [TopologicalSpace Y]
247+ lemma Topology.IsInducing.isNowhereDense_image [TopologicalSpace Y] {f : X → Y}
248248 (hf : Topology.IsInducing f) {s : Set X} (h : IsNowhereDense s) : IsNowhereDense (f '' s) := by
249249 rw [isNowhereDense_iff_forall_notMem_nhds, forall_mem_image] at *
250250 simp_rw [hf.nhds_eq_comap, hf.closure_eq_preimage_closure_image] at h
@@ -283,6 +283,14 @@ lemma isMeagre_iUnion [Countable ι'] {f : ι' → Set X} (hs : ∀ i, IsMeagre
283283 rw [IsMeagre, compl_iUnion]
284284 exact countable_iInter_mem.mpr hs
285285
286+ lemma isMeagre_biUnion {I : Set ι} (c : I.Countable) {f : ι → Set X}
287+ (h : ∀ i ∈ I, IsMeagre (f i)) : IsMeagre (⋃ i ∈ I, f i) := by
288+ suffices IsMeagre (⋃ i : I, f i) by simpa
289+ have : Countable I := c
290+ apply isMeagre_iUnion
291+ intro ⟨i, hi⟩
292+ exact h i hi
293+
286294/-- A set is meagre iff it is contained in a countable union of nowhere dense sets. -/
287295lemma isMeagre_iff_countable_union_isNowhereDense {s : Set X} :
288296 IsMeagre s ↔ ∃ S : Set (Set X), (∀ t ∈ S, IsNowhereDense t) ∧ S.Countable ∧ s ⊆ ⋃₀ S := by
@@ -302,4 +310,33 @@ lemma nonempty_of_not_isMeagre {s : Set X} (hs : ¬IsMeagre s) : s.Nonempty := b
302310 contrapose! hs
303311 simpa [hs] using IsMeagre.empty
304312
313+ /-- A nowhere dense set is meagre. -/
314+ lemma IsNowhereDense.isMeagre {s : Set X} (h : IsNowhereDense s) : IsMeagre s := by
315+ rw [isMeagre_iff_countable_union_isNowhereDense]
316+ exact ⟨{s}, by simpa, by simp, by simp⟩
317+
318+ lemma exists_of_not_isMeagre_biUnion {I : Set ι}
319+ (c : I.Countable) {A : ι → Set X} (h : ¬IsMeagre (⋃ i ∈ I, A i)) :
320+ ∃ i ∈ I, ¬IsMeagre (A i) := by
321+ contrapose! h
322+ exact isMeagre_biUnion c h
323+
324+ /-- The image of a meagre set through an inducing map is meagre. -/
325+ lemma Topology.IsInducing.isMeagre_image [TopologicalSpace Y] {f : X → Y}
326+ (hf : Topology.IsInducing f) {s : Set X} (h : IsMeagre s) : IsMeagre (f '' s) := by
327+ rw [isMeagre_iff_countable_union_isNowhereDense] at *
328+ obtain ⟨T, isNowhereDense, countable, cover⟩ := h
329+ refine ⟨(Set.image f) '' T, ?isNowhereDense, countable.image _, ?cover⟩
330+ case isNowhereDense =>
331+ intro u ⟨t, tT, tu⟩
332+ rw [← tu]
333+ apply hf.isNowhereDense_image (isNowhereDense t tT)
334+ case cover =>
335+ rw [← Set.image_sUnion]
336+ grw [cover]
337+
338+ /-- A set is meagre if it is meagre in some subspace. -/
339+ lemma IsMeagre.image_val {s : Set X} {m : Set s} (h : IsMeagre (m : Set s)) :
340+ IsMeagre (m : Set X) := Topology.IsInducing.subtypeVal.isMeagre_image h
341+
305342end IsMeagre
0 commit comments