File tree Expand file tree Collapse file tree 3 files changed +27
-0
lines changed Expand file tree Collapse file tree 3 files changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -583,6 +583,19 @@ theorem range_restrictPreimage : range (t.restrictPreimage f) = Subtype.val ⁻
583
583
simp only [← image_univ, ← image_restrictPreimage, preimage_univ]
584
584
#align set.range_restrict_preimage Set.range_restrictPreimage
585
585
586
+ @[simp]
587
+ theorem restrictPreimage_mk (h : a ∈ f ⁻¹' t) : t.restrictPreimage f ⟨a, h⟩ = ⟨f a, h⟩ := rfl
588
+
589
+ theorem image_val_preimage_restrictPreimage {u : Set t} :
590
+ Subtype.val '' (t.restrictPreimage f ⁻¹' u) = f ⁻¹' (Subtype.val '' u) := by
591
+ ext
592
+ simp
593
+
594
+ theorem preimage_restrictPreimage {u : Set t} :
595
+ t.restrictPreimage f ⁻¹' u = (fun a : f ⁻¹' t ↦ f a) ⁻¹' (Subtype.val '' u) := by
596
+ rw [← preimage_preimage (g := f) (f := Subtype.val), ← image_val_preimage_restrictPreimage,
597
+ preimage_image_eq _ Subtype.val_injective]
598
+
586
599
variable {U : ι → Set β}
587
600
588
601
lemma restrictPreimage_injective (hf : Injective f) : Injective (t.restrictPreimage f) :=
Original file line number Diff line number Diff line change @@ -1229,6 +1229,15 @@ theorem DiscreteTopology.preimage_of_continuous_injective {X Y : Type*} [Topolog
1229
1229
DiscreteTopology.of_continuous_injective (β := s) (Continuous.restrict
1230
1230
(by exact fun _ x ↦ x) hc) ((MapsTo.restrict_inj _).mpr hinj.injOn)
1231
1231
1232
+ /-- If `f : X → Y` is a quotient map,
1233
+ then its restriction to the preimage of an open set is a quotient map too. -/
1234
+ theorem QuotientMap.restrictPreimage_isOpen {f : X → Y} (hf : QuotientMap f)
1235
+ {s : Set Y} (hs : IsOpen s) : QuotientMap (s.restrictPreimage f) := by
1236
+ refine quotientMap_iff.2 ⟨hf.surjective.restrictPreimage _, fun U ↦ ?_⟩
1237
+ rw [hs.openEmbedding_subtype_val.open_iff_image_open, ← hf.isOpen_preimage,
1238
+ (hs.preimage hf.continuous).openEmbedding_subtype_val.open_iff_image_open,
1239
+ image_val_preimage_restrictPreimage]
1240
+
1232
1241
end Subtype
1233
1242
1234
1243
section Quotient
Original file line number Diff line number Diff line change @@ -1194,6 +1194,11 @@ theorem OpenEmbedding.map_nhdsWithin_preimage_eq {f : α → β} (hf : OpenEmbed
1194
1194
rw [inter_assoc, inter_self]
1195
1195
#align open_embedding.map_nhds_within_preimage_eq OpenEmbedding.map_nhdsWithin_preimage_eq
1196
1196
1197
+ theorem QuotientMap.continuousOn_isOpen_iff {f : α → β} {g : β → γ} (h : QuotientMap f) {s : Set β}
1198
+ (hs : IsOpen s) : ContinuousOn g s ↔ ContinuousOn (g ∘ f) (f ⁻¹' s) := by
1199
+ simp only [continuousOn_iff_continuous_restrict, (h.restrictPreimage_isOpen hs).continuous_iff]
1200
+ rfl
1201
+
1197
1202
theorem continuousWithinAt_of_not_mem_closure {f : α → β} {s : Set α} {x : α} (hx : x ∉ closure s) :
1198
1203
ContinuousWithinAt f s x := by
1199
1204
rw [mem_closure_iff_nhdsWithin_neBot, not_neBot] at hx
You can’t perform that action at this time.
0 commit comments