@@ -154,7 +154,7 @@ assume s h, ⟨_, h, rfl⟩
154
154
155
155
lemma continuous_induced_rng {g : γ → α} {t₂ : tspace β} {t₁ : tspace γ}
156
156
(h : cont t₁ t₂ (f ∘ g)) : cont t₁ (induced f t₂) g :=
157
- assume s ⟨t, ht, s_eq⟩, s_eq.symm ▸ h t ht
157
+ assume s ⟨t, ht, s_eq⟩, s_eq ▸ h t ht
158
158
159
159
lemma continuous_coinduced_rng {t : tspace α} : cont t (coinduced f t) f :=
160
160
assume s h, h
@@ -241,39 +241,23 @@ section induced
241
241
open topological_space
242
242
variables [t : topological_space β] {f : α → β}
243
243
244
+ theorem is_open_induced_eq {s : set α} :
245
+ @_root_.is_open _ (induced f t) s ↔ s ∈ preimage f '' {s | is_open s} :=
246
+ iff.refl _
247
+
244
248
theorem is_open_induced {s : set β} (h : is_open s) : (induced f t).is_open (f ⁻¹' s) :=
245
249
⟨s, h, rfl⟩
246
250
247
251
lemma nhds_induced_eq_comap {a : α} : @nhds α (induced f t) a = comap f (nhds (f a)) :=
248
- le_antisymm
249
- (assume s ⟨s', hs', (h_s : f ⁻¹' s' ⊆ s)⟩,
250
- let ⟨t', hsub, ht', hin⟩ := mem_nhds_sets_iff.1 hs' in
251
- (@nhds α (induced f t) a).sets_of_superset
252
- begin
253
- simp [mem_nhds_sets_iff],
254
- exact ⟨preimage f t', preimage_mono hsub, is_open_induced ht', hin⟩
255
- end
256
- h_s)
257
- (le_infi $ assume s, le_infi $ assume ⟨as, s', is_open_s', s_eq⟩,
258
- begin
259
- simp [comap, mem_nhds_sets_iff, s_eq],
260
- exact ⟨s', ⟨s', subset.refl _, is_open_s', by rwa [s_eq] at as⟩, subset.refl _⟩
261
- end )
252
+ calc @nhds α (induced f t) a = (⨅ s (x : s ∈ preimage f '' set_of is_open ∧ a ∈ s), principal s) :
253
+ by simp [nhds, is_open_induced_eq, -mem_image, and_comm]
254
+ ... = (⨅ s (x : is_open s ∧ f a ∈ s), principal (f ⁻¹' s)) :
255
+ by simp only [infi_and, infi_image]; refl
256
+ ... = _ : by simp [nhds, comap_infi, and_comm]
262
257
263
- lemma map_nhds_induced_eq {a : α} (h : image f univ ∈ (nhds (f a)).sets) :
258
+ lemma map_nhds_induced_eq {a : α} (h : range f ∈ (nhds (f a)).sets) :
264
259
map f (@nhds α (induced f t) a) = nhds (f a) :=
265
- le_antisymm
266
- (@continuous.tendsto α β (induced f t) _ _ continuous_induced_dom a)
267
- (assume s, assume hs : f ⁻¹' s ∈ (@nhds α (induced f t) a).sets,
268
- let ⟨t', t_subset, is_open_t, a_in_t⟩ := mem_nhds_sets_iff.mp h in
269
- let ⟨s', s'_subset, ⟨s'', is_open_s'', s'_eq⟩, a_in_s'⟩ := (@mem_nhds_sets_iff _ (induced f t) _ _).mp hs in
270
- by subst s'_eq; exact (mem_nhds_sets_iff.mpr $
271
- ⟨t' ∩ s'',
272
- assume x ⟨h₁, h₂⟩, match x, h₂, t_subset h₁ with
273
- | x, h₂, ⟨y, _, y_eq⟩ := begin subst y_eq, exact s'_subset h₂ end
274
- end ,
275
- is_open_inter is_open_t is_open_s'',
276
- ⟨a_in_t, a_in_s'⟩⟩))
260
+ by rw [nhds_induced_eq_comap, filter.map_comap h]
277
261
278
262
lemma closure_induced [t : topological_space β] {f : α → β} {a : α} {s : set α}
279
263
(hf : ∀x y, f x = f y → x = y) :
@@ -331,16 +315,16 @@ lemma embedding_open {f : α → β} {s : set α}
331
315
(hf : embedding f) (h : is_open (range f)) (hs : is_open s) : is_open (f '' s) :=
332
316
let ⟨t, ht, h_eq⟩ := by rw [hf.right] at hs; exact hs in
333
317
have is_open (t ∩ range f), from is_open_inter ht h,
334
- h_eq.symm ▸ by rwa [image_preimage_eq_inter_range]
318
+ h_eq ▸ by rwa [image_preimage_eq_inter_range]
335
319
336
320
lemma embedding_is_closed {f : α → β} {s : set α}
337
321
(hf : embedding f) (h : is_closed (range f)) (hs : is_closed s) : is_closed (f '' s) :=
338
322
let ⟨t, ht, h_eq⟩ := by rw [hf.right, is_closed_induced_iff] at hs; exact hs in
339
323
have is_closed (t ∩ range f), from is_closed_inter ht h,
340
324
h_eq.symm ▸ by rwa [image_preimage_eq_inter_range]
341
325
342
- lemma embedding.map_nhds_eq [topological_space α] [topological_space β] {f : α → β} (hf : embedding f) (a : α)
343
- (h : f '' univ ∈ (nhds (f a)).sets) : (nhds a).map f = nhds (f a) :=
326
+ lemma embedding.map_nhds_eq [topological_space α] [topological_space β] {f : α → β}
327
+ (hf : embedding f) (a : α) (h : range f ∈ (nhds (f a)).sets) : (nhds a).map f = nhds (f a) :=
344
328
by rw [hf.2 ]; exact map_nhds_induced_eq h
345
329
346
330
lemma embedding.tendsto_nhds_iff {ι : Type *}
@@ -552,12 +536,8 @@ lemma prod_eq_generate_from [tα : topological_space α] [tβ : topological_spac
552
536
generate_from {g | ∃(s:set α) (t:set β), is_open s ∧ is_open t ∧ g = set.prod s t} :=
553
537
le_antisymm
554
538
(sup_le
555
- (assume s ⟨t, ht, s_eq⟩,
556
- have set.prod t univ = s, by simp [s_eq, preimage, set.prod],
557
- this ▸ (generate_open.basic _ ⟨t, univ, ht, is_open_univ, rfl⟩))
558
- (assume s ⟨t, ht, s_eq⟩,
559
- have set.prod univ t = s, by simp [s_eq, preimage, set.prod],
560
- this ▸ (generate_open.basic _ ⟨univ, t, is_open_univ, ht, rfl⟩)))
539
+ (ball_image_of_ball $ λt ht, generate_open.basic _ ⟨t, univ, by simpa [set.prod_eq] using ht⟩)
540
+ (ball_image_of_ball $ λt ht, generate_open.basic _ ⟨univ, t, by simpa [set.prod_eq] using ht⟩))
561
541
(generate_from_le $ assume g ⟨s, t, hs, ht, g_eq⟩, g_eq.symm ▸ is_open_prod hs ht)
562
542
563
543
lemma is_open_prod_iff {s : set (α×β)} : is_open s ↔
@@ -801,7 +781,7 @@ lemma embedding_inl : embedding (@sum.inl α β) :=
801
781
change
802
782
(is_open (sum.inl ⁻¹' (@sum.inl α β '' u)) ∧
803
783
is_open (sum.inr ⁻¹' (@sum.inl α β '' u))) ∧
804
- u = sum.inl ⁻¹' (sum.inl '' u),
784
+ sum.inl ⁻¹' (sum.inl '' u) = u ,
805
785
have : sum.inl ⁻¹' (@sum.inl α β '' u) = u :=
806
786
preimage_image_eq u (λ _ _, sum.inl.inj_iff.mp), rw this ,
807
787
have : sum.inr ⁻¹' (@sum.inl α β '' u) = ∅ :=
@@ -819,7 +799,7 @@ lemma embedding_inr : embedding (@sum.inr α β) :=
819
799
change
820
800
(is_open (sum.inl ⁻¹' (@sum.inr α β '' u)) ∧
821
801
is_open (sum.inr ⁻¹' (@sum.inr α β '' u))) ∧
822
- u = sum.inr ⁻¹' (sum.inr '' u),
802
+ sum.inr ⁻¹' (sum.inr '' u) = u ,
823
803
have : sum.inl ⁻¹' (@sum.inr α β '' u) = ∅ :=
824
804
eq_empty_iff_forall_not_mem.mpr (assume b ⟨a, _, h⟩, sum.inr_ne_inl h), rw this ,
825
805
have : sum.inr ⁻¹' (@sum.inr α β '' u) = u :=
@@ -1007,7 +987,7 @@ lemma pi_eq_generate_from [∀a, topological_space (π a)] :
1007
987
generate_from {g | ∃(s:Πa, set (π a)) (i : finset ι), (∀a∈i, is_open (s a)) ∧ g = pi ↑i s} :=
1008
988
le_antisymm
1009
989
(supr_le $ assume a s ⟨t, ht, s_eq⟩, generate_open.basic _ $
1010
- ⟨function.update (λa, univ) a t, {a}, by simpa using ht, by ext f; simp [s_eq, pi]⟩)
990
+ ⟨function.update (λa, univ) a t, {a}, by simpa using ht, by ext f; simp [s_eq.symm , pi]⟩)
1011
991
(generate_from_le $ assume g ⟨s, i, hi, eq⟩, eq.symm ▸ is_open_set_pi (finset.finite_to_set _) hi)
1012
992
1013
993
lemma pi_generate_from_eq {g : Πa, set (set (π a))} :
@@ -1091,7 +1071,8 @@ lemma tendsto_cons_iff [topological_space β]
1091
1071
tendsto f (nhds (a :: l)) b ↔ tendsto (λp:α×list α, f (p.1 :: p.2 )) ((nhds a).prod (nhds l)) b :=
1092
1072
have nhds (a :: l) = ((nhds a).prod (nhds l)).map (λp:α×list α, (p.1 :: p.2 )),
1093
1073
begin
1094
- simp only [nhds_cons, prod_eq, (filter.map_def _ _).symm, (filter.seq_eq_filter_seq _ _).symm],
1074
+ simp only
1075
+ [nhds_cons, filter.prod_eq, (filter.map_def _ _).symm, (filter.seq_eq_filter_seq _ _).symm],
1095
1076
simp [-filter.seq_eq_filter_seq, -filter.map_def, (∘)] with functor_norm,
1096
1077
end ,
1097
1078
by rw [this , filter.tendsto_map'_iff]
@@ -1127,7 +1108,8 @@ lemma tendsto_insert_nth' {a : α} : ∀{n : ℕ} {l : list α},
1127
1108
have (nhds a).prod (nhds (a' :: l)) =
1128
1109
((nhds a).prod ((nhds a').prod (nhds l))).map (λp:α×α×list α, (p.1 , p.2 .1 :: p.2 .2 )),
1129
1110
begin
1130
- simp only [nhds_cons, prod_eq, (filter.map_def _ _).symm, (filter.seq_eq_filter_seq _ _).symm],
1111
+ simp only
1112
+ [nhds_cons, filter.prod_eq, (filter.map_def _ _).symm, (filter.seq_eq_filter_seq _ _).symm],
1131
1113
simp [-filter.seq_eq_filter_seq, -filter.map_def, (∘)] with functor_norm
1132
1114
end ,
1133
1115
begin
0 commit comments