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

Commit ab20b5f

Browse files
rwbartonjohoelzl
authored andcommitted
style(analysis/topology/continuity): minor reorganizations
1 parent ca7f118 commit ab20b5f

File tree

1 file changed

+78
-78
lines changed

1 file changed

+78
-78
lines changed

analysis/topology/continuity.lean

Lines changed: 78 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,66 @@ continuous_iff_le_coinduced.2 $ bot_le
220220

221221
end constructions
222222

223+
section induced
224+
open topological_space
225+
variables [t : topological_space β] {f : α → β}
226+
227+
theorem is_open_induced {s : set β} (h : is_open s) : (induced f t).is_open (f ⁻¹' s) :=
228+
⟨s, h, rfl⟩
229+
230+
lemma nhds_induced_eq_comap {a : α} : @nhds α (induced f t) a = comap f (nhds (f a)) :=
231+
le_antisymm
232+
(assume s ⟨s', hs', (h_s : f ⁻¹' s' ⊆ s)⟩,
233+
let ⟨t', hsub, ht', hin⟩ := mem_nhds_sets_iff.1 hs' in
234+
(@nhds α (induced f t) a).sets_of_superset
235+
begin
236+
simp [mem_nhds_sets_iff],
237+
exact ⟨preimage f t', preimage_mono hsub, is_open_induced ht', hin⟩
238+
end
239+
h_s)
240+
(le_infi $ assume s, le_infi $ assume ⟨as, s', is_open_s', s_eq⟩,
241+
begin
242+
simp [comap, mem_nhds_sets_iff, s_eq],
243+
exact ⟨s', ⟨s', subset.refl _, is_open_s', by rwa [s_eq] at as⟩, subset.refl _⟩
244+
end)
245+
246+
lemma map_nhds_induced_eq {a : α} (h : image f univ ∈ (nhds (f a)).sets) :
247+
map f (@nhds α (induced f t) a) = nhds (f a) :=
248+
le_antisymm
249+
(@continuous.tendsto α β (induced f t) _ _ continuous_induced_dom a)
250+
(assume s, assume hs : f ⁻¹' s ∈ (@nhds α (induced f t) a).sets,
251+
let ⟨t', t_subset, is_open_t, a_in_t⟩ := mem_nhds_sets_iff.mp h in
252+
let ⟨s', s'_subset, ⟨s'', is_open_s'', s'_eq⟩, a_in_s'⟩ := (@mem_nhds_sets_iff _ (induced f t) _ _).mp hs in
253+
by subst s'_eq; exact (mem_nhds_sets_iff.mpr $
254+
⟨t' ∩ s'',
255+
assume x ⟨h₁, h₂⟩, match x, h₂, t_subset h₁ with
256+
| x, h₂, ⟨y, _, y_eq⟩ := begin subst y_eq, exact s'_subset h₂ end
257+
end,
258+
is_open_inter is_open_t is_open_s'',
259+
⟨a_in_t, a_in_s'⟩⟩))
260+
261+
lemma closure_induced [t : topological_space β] {f : α → β} {a : α} {s : set α}
262+
(hf : ∀x y, f x = f y → x = y) :
263+
a ∈ @closure α (topological_space.induced f t) s ↔ f a ∈ closure (f '' s) :=
264+
have comap f (nhds (f a) ⊓ principal (f '' s)) ≠ ⊥ ↔ nhds (f a) ⊓ principal (f '' s) ≠ ⊥,
265+
from ⟨assume h₁ h₂, h₁ $ h₂.symm ▸ comap_bot,
266+
assume h,
267+
forall_sets_neq_empty_iff_neq_bot.mp $
268+
assume s₁ ⟨s₂, hs₂, (hs : f ⁻¹' s₂ ⊆ s₁)⟩,
269+
have f '' s ∈ (nhds (f a) ⊓ principal (f '' s)).sets,
270+
from mem_inf_sets_of_right $ by simp [subset.refl],
271+
have s₂ ∩ f '' s ∈ (nhds (f a) ⊓ principal (f '' s)).sets,
272+
from inter_mem_sets hs₂ this,
273+
let ⟨b, hb₁, ⟨a, ha, ha₂⟩⟩ := inhabited_of_mem_sets h this in
274+
ne_empty_of_mem $ hs $ by rwa [←ha₂] at hb₁⟩,
275+
calc a ∈ @closure α (topological_space.induced f t) s
276+
↔ (@nhds α (topological_space.induced f t) a) ⊓ principal s ≠ ⊥ : by rw [closure_eq_nhds]; refl
277+
... ↔ comap f (nhds (f a)) ⊓ principal (f ⁻¹' (f '' s)) ≠ ⊥ : by rw [nhds_induced_eq_comap, preimage_image_eq _ hf]
278+
... ↔ comap f (nhds (f a) ⊓ principal (f '' s)) ≠ ⊥ : by rw [comap_inf, ←comap_principal]
279+
... ↔ _ : by rwa [closure_eq_nhds]
280+
281+
end induced
282+
223283
section embedding
224284

225285
/-- A function between topological spaces is an embedding if it is injective,
@@ -262,6 +322,19 @@ let ⟨t, ht, h_eq⟩ := by rw [hf.right, is_closed_induced_iff] at hs; exact hs
262322
have is_closed (t ∩ range f), from is_closed_inter ht h,
263323
h_eq.symm ▸ by rwa [image_preimage_eq_inter_range]
264324

325+
lemma embedding.map_nhds_eq [topological_space α] [topological_space β] {f : α → β} (hf : embedding f) (a : α)
326+
(h : f '' univ ∈ (nhds (f a)).sets) : (nhds a).map f = nhds (f a) :=
327+
by rw [hf.2]; exact map_nhds_induced_eq h
328+
329+
lemma embedding.tendsto_nhds_iff {ι : Type*}
330+
{f : ι → β} {g : β → γ} {a : filter ι} {b : β} (hg : embedding g) :
331+
tendsto f a (nhds b) ↔ tendsto (g ∘ f) a (nhds (g b)) :=
332+
by rw [tendsto, tendsto, hg.right, nhds_induced_eq_comap, ← map_le_iff_le_comap, filter.map_map]
333+
334+
lemma embedding.continuous_iff {f : α → β} {g : β → γ} (hg : embedding g) :
335+
continuous f ↔ continuous (g ∘ f) :=
336+
by simp [continuous_iff_tendsto, embedding.tendsto_nhds_iff hg]
337+
265338
end embedding
266339

267340
section quotient_map
@@ -289,6 +362,10 @@ lemma quotient_map_of_quotient_map_compose {f : α → β} {g : β → γ}
289362
(by rw [hgf.right, ← continuous_iff_le_coinduced];
290363
apply hf.comp continuous_coinduced_rng)⟩
291364

365+
lemma quotient_map.continuous_iff {f : α → β} {g : β → γ} (hf : quotient_map f) :
366+
continuous g ↔ continuous (g ∘ f) :=
367+
by rw [continuous_iff_le_coinduced, continuous_iff_le_coinduced, hf.right, coinduced_compose]
368+
292369
end quotient_map
293370

294371
section sierpinski
@@ -308,70 +385,6 @@ lemma continuous_Prop {p : α → Prop} : continuous p ↔ is_open {x | p x} :=
308385

309386
end sierpinski
310387

311-
section induced
312-
open topological_space
313-
variables [t : topological_space β] {f : α → β}
314-
315-
theorem is_open_induced {s : set β} (h : is_open s) : (induced f t).is_open (f ⁻¹' s) :=
316-
⟨s, h, rfl⟩
317-
318-
lemma nhds_induced_eq_comap {a : α} : @nhds α (induced f t) a = comap f (nhds (f a)) :=
319-
le_antisymm
320-
(assume s ⟨s', hs', (h_s : f ⁻¹' s' ⊆ s)⟩,
321-
let ⟨t', hsub, ht', hin⟩ := mem_nhds_sets_iff.1 hs' in
322-
(@nhds α (induced f t) a).sets_of_superset
323-
begin
324-
simp [mem_nhds_sets_iff],
325-
exact ⟨preimage f t', preimage_mono hsub, is_open_induced ht', hin⟩
326-
end
327-
h_s)
328-
(le_infi $ assume s, le_infi $ assume ⟨as, s', is_open_s', s_eq⟩,
329-
begin
330-
simp [comap, mem_nhds_sets_iff, s_eq],
331-
exact ⟨s', ⟨s', subset.refl _, is_open_s', by rwa [s_eq] at as⟩, subset.refl _⟩
332-
end)
333-
334-
lemma map_nhds_induced_eq {a : α} (h : image f univ ∈ (nhds (f a)).sets) :
335-
map f (@nhds α (induced f t) a) = nhds (f a) :=
336-
le_antisymm
337-
(@continuous.tendsto α β (induced f t) _ _ continuous_induced_dom a)
338-
(assume s, assume hs : f ⁻¹' s ∈ (@nhds α (induced f t) a).sets,
339-
let ⟨t', t_subset, is_open_t, a_in_t⟩ := mem_nhds_sets_iff.mp h in
340-
let ⟨s', s'_subset, ⟨s'', is_open_s'', s'_eq⟩, a_in_s'⟩ := (@mem_nhds_sets_iff _ (induced f t) _ _).mp hs in
341-
by subst s'_eq; exact (mem_nhds_sets_iff.mpr $
342-
⟨t' ∩ s'',
343-
assume x ⟨h₁, h₂⟩, match x, h₂, t_subset h₁ with
344-
| x, h₂, ⟨y, _, y_eq⟩ := begin subst y_eq, exact s'_subset h₂ end
345-
end,
346-
is_open_inter is_open_t is_open_s'',
347-
⟨a_in_t, a_in_s'⟩⟩))
348-
349-
lemma embedding.map_nhds_eq [topological_space α] [topological_space β] {f : α → β} (hf : embedding f) (a : α)
350-
(h : f '' univ ∈ (nhds (f a)).sets) : (nhds a).map f = nhds (f a) :=
351-
by rw [hf.2]; exact map_nhds_induced_eq h
352-
353-
lemma closure_induced [t : topological_space β] {f : α → β} {a : α} {s : set α}
354-
(hf : ∀x y, f x = f y → x = y) :
355-
a ∈ @closure α (topological_space.induced f t) s ↔ f a ∈ closure (f '' s) :=
356-
have comap f (nhds (f a) ⊓ principal (f '' s)) ≠ ⊥ ↔ nhds (f a) ⊓ principal (f '' s) ≠ ⊥,
357-
from ⟨assume h₁ h₂, h₁ $ h₂.symm ▸ comap_bot,
358-
assume h,
359-
forall_sets_neq_empty_iff_neq_bot.mp $
360-
assume s₁ ⟨s₂, hs₂, (hs : f ⁻¹' s₂ ⊆ s₁)⟩,
361-
have f '' s ∈ (nhds (f a) ⊓ principal (f '' s)).sets,
362-
from mem_inf_sets_of_right $ by simp [subset.refl],
363-
have s₂ ∩ f '' s ∈ (nhds (f a) ⊓ principal (f '' s)).sets,
364-
from inter_mem_sets hs₂ this,
365-
let ⟨b, hb₁, ⟨a, ha, ha₂⟩⟩ := inhabited_of_mem_sets h this in
366-
ne_empty_of_mem $ hs $ by rwa [←ha₂] at hb₁⟩,
367-
calc a ∈ @closure α (topological_space.induced f t) s
368-
↔ (@nhds α (topological_space.induced f t) a) ⊓ principal s ≠ ⊥ : by rw [closure_eq_nhds]; refl
369-
... ↔ comap f (nhds (f a)) ⊓ principal (f ⁻¹' (f '' s)) ≠ ⊥ : by rw [nhds_induced_eq_comap, preimage_image_eq _ hf]
370-
... ↔ comap f (nhds (f a) ⊓ principal (f '' s)) ≠ ⊥ : by rw [comap_inf, ←comap_principal]
371-
... ↔ _ : by rwa [closure_eq_nhds]
372-
373-
end induced
374-
375388
section prod
376389
open topological_space
377390
variables [topological_space α] [topological_space β] [topological_space γ]
@@ -605,18 +618,9 @@ continuous_inf_dom hf hg
605618

606619
end sum
607620

608-
lemma embedding.tendsto_nhds_iff [topological_space β] [topological_space γ]
609-
{f : α → β} {g : β → γ} {a : filter α} {b : β} (hg : embedding g) :
610-
tendsto f a (nhds b) ↔ tendsto (g ∘ f) a (nhds (g b)) :=
611-
by rw [tendsto, tendsto, hg.right, nhds_induced_eq_comap, ← map_le_iff_le_comap, filter.map_map]
612-
613621
section subtype
614622
variables [topological_space α] [topological_space β] [topological_space γ] {p : α → Prop}
615623

616-
lemma embedding.continuous_iff {f : α → β} {g : β → γ} (hg : embedding g) :
617-
continuous f ↔ continuous (g ∘ f) :=
618-
by simp [continuous_iff_tendsto, @embedding.tendsto_nhds_iff α β γ _ _ f g _ _ hg]
619-
620624
lemma embedding_graph {f : α → β} (hf : continuous f) : embedding (λx, (x, f x)) :=
621625
embedding_of_embedding_compose (continuous_id.prod_mk hf) continuous_fst embedding_id
622626

@@ -713,7 +717,7 @@ continuous_iff_is_closed.mpr $
713717
end,
714718
by rwa [this]
715719

716-
lemma closure_subtype {p : α → Prop} {x : {a // p a}} {s : set {a // p a}}:
720+
lemma closure_subtype {x : {a // p a}} {s : set {a // p a}}:
717721
x ∈ closure s ↔ x.val ∈ closure (subtype.val '' s) :=
718722
closure_induced $ assume x y, subtype.eq
719723

@@ -723,10 +727,6 @@ section quotient
723727
variables [topological_space α] [topological_space β] [topological_space γ]
724728
variables {r : α → α → Prop} {s : setoid α}
725729

726-
lemma quotient_map.continuous_iff {f : α → β} {g : β → γ} (hf : quotient_map f) :
727-
continuous g ↔ continuous (g ∘ f) :=
728-
by rw [continuous_iff_le_coinduced, continuous_iff_le_coinduced, hf.right, coinduced_compose]
729-
730730
lemma quotient_map_quot_mk : quotient_map (@quot.mk α r) :=
731731
⟨quot.exists_rep, rfl⟩
732732

0 commit comments

Comments
 (0)