Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 792e492

Browse files
committed
feat(topology/separation): add API for interaction between discrete topology and subsets (#6570)
The final result: Let `s, t ⊆ X` be two subsets of a topological space `X`. If `t ⊆ s` and the topology induced by `X`on `s` is discrete, then also the topology induces on `t` is discrete. The proofs are by Patrick Massot.
1 parent 8713c0b commit 792e492

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

src/topology/separation.lean

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,61 @@ let ⟨V, h, h'⟩ := nhds_inter_eq_singleton_of_mem_discrete hx in
213213
⟨{x}ᶜ ∩ V, inter_mem_nhds_within _ h,
214214
(disjoint_iff_inter_eq_empty.mpr (by { rw [inter_assoc, h', compl_inter_self] }))⟩
215215

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+
216271
/-- A T₂ space, also known as a Hausdorff space, is one in which for every
217272
`x ≠ y` there exists disjoint open sets around `x` and `y`. This is
218273
the most widely used of the separation axioms. -/

0 commit comments

Comments
 (0)