@@ -213,6 +213,61 @@ let ⟨V, h, h'⟩ := nhds_inter_eq_singleton_of_mem_discrete hx in
213
213
⟨{x}ᶜ ∩ V, inter_mem_nhds_within _ h,
214
214
(disjoint_iff_inter_eq_empty.mpr (by { rw [inter_assoc, h', compl_inter_self] }))⟩
215
215
216
+ /-- Let `X` be a topological space and let `s, t ⊆ X` be two subsets. If there is an inclusion
217
+ `t ⊆ s`, then the topological space structure on `t` induced by `X` is the same as the one
218
+ obtained by the induced topological space structure on `s`. -/
219
+ lemma topological_space.subset_trans {X : Type *} [tX : topological_space X]
220
+ {s t : set X} (ts : t ⊆ s) :
221
+ (subtype.topological_space : topological_space t) =
222
+ (subtype.topological_space : topological_space s).induced (set.inclusion ts) :=
223
+ begin
224
+ change tX.induced ((coe : s → X) ∘ (set.inclusion ts)) =
225
+ topological_space.induced (set.inclusion ts) (tX.induced _),
226
+ rw ← induced_compose,
227
+ end
228
+
229
+ /-- This lemma characterizes discrete topological spaces as those whose singletons are
230
+ neighbourhoods. -/
231
+ lemma discrete_topology_iff_nhds {X : Type *} [topological_space X] :
232
+ discrete_topology X ↔ (nhds : X → filter X) = pure :=
233
+ begin
234
+ split,
235
+ { introI hX,
236
+ exact nhds_discrete X },
237
+ { intro h,
238
+ constructor,
239
+ apply eq_of_nhds_eq_nhds,
240
+ simp [h, nhds_bot] }
241
+ end
242
+
243
+ /-- The topology pulled-back under an inclusion `f : X → Y` from the discrete topology (`⊥`) is the
244
+ discrete topology.
245
+ This version does not assume the choice of a topology on either the source `X`
246
+ nor the target `Y` of the inclusion `f`. -/
247
+ lemma induced_bot {X Y : Type *} {f : X → Y} (hf : function.injective f) :
248
+ topological_space.induced f ⊥ = ⊥ :=
249
+ eq_of_nhds_eq_nhds (by simp [nhds_induced, ← set.image_singleton, hf.preimage_image, nhds_bot])
250
+
251
+ /-- The topology induced under an inclusion `f : X → Y` from the discrete topological space `Y`
252
+ is the discrete topology on `X`. -/
253
+ lemma discrete_topology_induced {X Y : Type *} [tY : topological_space Y] [discrete_topology Y]
254
+ {f : X → Y} (hf : function.injective f) : @discrete_topology X (topological_space.induced f tY) :=
255
+ begin
256
+ constructor,
257
+ rw discrete_topology.eq_bot Y,
258
+ exact induced_bot hf
259
+ end
260
+
261
+ /-- Let `s, t ⊆ X` be two subsets of a topological space `X`. If `t ⊆ s` and the topology induced
262
+ by `X`on `s` is discrete, then also the topology induces on `t` is discrete. -/
263
+ lemma discrete_topology.of_subset {X : Type *} [topological_space X] {s t : set X}
264
+ (ds : discrete_topology s) (ts : t ⊆ s) :
265
+ discrete_topology t :=
266
+ begin
267
+ rw [topological_space.subset_trans ts, ds.eq_bot],
268
+ exact {eq_bot := induced_bot (set.inclusion_injective ts)}
269
+ end
270
+
216
271
/-- A T₂ space, also known as a Hausdorff space, is one in which for every
217
272
`x ≠ y` there exists disjoint open sets around `x` and `y`. This is
218
273
the most widely used of the separation axioms. -/
0 commit comments