@@ -113,8 +113,8 @@ noncomputable theory
113
113
114
114
universes u v w u' v' w'
115
115
116
- open set
117
- open_locale manifold
116
+ open set filter
117
+ open_locale manifold filter topological_space
118
118
119
119
localized " notation `∞` := (⊤ : with_top ℕ)" in manifold
120
120
@@ -201,35 +201,49 @@ variables (𝕜 E)
201
201
202
202
end
203
203
204
- @[simp, mfld_simps] lemma model_with_corners.target : I.target = range (I : H → E) :=
204
+ @[simp, mfld_simps] lemma model_with_corners.target_eq : I.target = range (I : H → E) :=
205
205
by { rw [← image_univ, ← I.source_eq], exact (I.to_local_equiv.image_source_eq_target).symm }
206
206
207
207
@[simp, mfld_simps] lemma model_with_corners.left_inv (x : H) : I.symm (I x) = x :=
208
- by { convert I.left_inv' _, simp }
208
+ by { refine I.left_inv' _, simp }
209
209
210
- @[simp, mfld_simps] lemma model_with_corners.left_inv' : I.symm ∘ I = id :=
211
- by { ext x, exact model_with_corners.left_inv _ _ }
210
+ protected lemma model_with_corners.left_inverse : function.left_inverse I.symm I := I.left_inv
211
+
212
+ @[simp, mfld_simps] lemma model_with_corners.symm_comp_self : I.symm ∘ I = id :=
213
+ I.left_inverse.comp_eq_id
214
+
215
+ protected lemma model_with_corners.right_inv_on : right_inv_on I.symm I (range I) :=
216
+ I.left_inverse.right_inv_on_range
212
217
213
218
@[simp, mfld_simps] lemma model_with_corners.right_inv {x : E} (hx : x ∈ range I) :
214
219
I (I.symm x) = x :=
215
- by { apply I.right_inv', simp [hx] }
220
+ I.right_inv_on hx
216
221
217
222
lemma model_with_corners.image (s : set H) :
218
223
I '' s = I.symm ⁻¹' s ∩ range I :=
219
224
begin
220
- ext x,
221
- simp only [mem_image, mem_inter_eq, mem_range, mem_preimage],
222
- split,
223
- { rintros ⟨y, ⟨ys, hy⟩⟩,
224
- rw ← hy,
225
- simp only [ys, true_and, model_with_corners.left_inv],
226
- exact ⟨y, rfl⟩ },
227
- { rintros ⟨xs, ⟨y, yx⟩⟩,
228
- rw ← yx at xs,
229
- simp only [model_with_corners.left_inv] at xs,
230
- exact ⟨y, ⟨xs, yx⟩⟩ }
225
+ refine (I.to_local_equiv.image_eq_target_inter_inv_preimage _).trans _,
226
+ { rw I.source_eq, exact subset_univ _ },
227
+ { rw [inter_comm, I.target_eq, I.to_local_equiv_coe_symm] }
231
228
end
232
229
230
+ protected lemma model_with_corners.closed_embedding : closed_embedding I :=
231
+ I.left_inverse.closed_embedding I.continuous_symm I.continuous
232
+
233
+ lemma model_with_corners.closed_range : is_closed (range I) :=
234
+ I.closed_embedding.closed_range
235
+
236
+ lemma model_with_corners.map_nhds_eq (x : H) : map I (𝓝 x) = 𝓝[range I] (I x) :=
237
+ I.closed_embedding.to_embedding.map_nhds_eq x
238
+
239
+ lemma model_with_corners.image_mem_nhds_within {x : H} {s : set H} (hs : s ∈ 𝓝 x) :
240
+ I '' s ∈ 𝓝[range I] (I x) :=
241
+ I.map_nhds_eq x ▸ image_mem_map hs
242
+
243
+ lemma model_with_corners.symm_map_nhds_within_range (x : H) :
244
+ map I.symm (𝓝[range I] (I x)) = 𝓝 x :=
245
+ by rw [← I.map_nhds_eq, map_map, I.symm_comp_self, map_id]
246
+
233
247
lemma model_with_corners.unique_diff_preimage {s : set H} (hs : is_open s) :
234
248
unique_diff_on 𝕜 (I.symm ⁻¹' s ∩ range I) :=
235
249
by { rw inter_comm, exact I.unique_diff.inter (hs.preimage I.continuous_inv_fun) }
@@ -646,7 +660,7 @@ lemma ext_chart_at_target_mem_nhds_within :
646
660
(ext_chart_at I x).target ∈ 𝓝[range I] ((ext_chart_at I x) x) :=
647
661
begin
648
662
rw [ext_chart_at, local_equiv.trans_target],
649
- simp only [function.comp_app, local_equiv.coe_trans, model_with_corners.target ],
663
+ simp only [function.comp_app, local_equiv.coe_trans, model_with_corners.target_eq ],
650
664
refine inter_mem_nhds_within _
651
665
(mem_nhds_sets ((chart_at H x).open_target.preimage I.continuous_symm) _),
652
666
simp only with mfld_simps
0 commit comments