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

Commit ead4731

Browse files
committed
feat(geometry/manifold): model_with_corners is a closed_embedding (#6393)
1 parent 27b6110 commit ead4731

File tree

2 files changed

+34
-20
lines changed

2 files changed

+34
-20
lines changed

src/geometry/manifold/smooth_manifold_with_corners.lean

Lines changed: 33 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,8 @@ noncomputable theory
113113

114114
universes u v w u' v' w'
115115

116-
open set
117-
open_locale manifold
116+
open set filter
117+
open_locale manifold filter topological_space
118118

119119
localized "notation `∞` := (⊤ : with_top ℕ)" in manifold
120120

@@ -201,35 +201,49 @@ variables (𝕜 E)
201201

202202
end
203203

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) :=
205205
by { rw [← image_univ, ← I.source_eq], exact (I.to_local_equiv.image_source_eq_target).symm }
206206

207207
@[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 }
209209

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
212217

213218
@[simp, mfld_simps] lemma model_with_corners.right_inv {x : E} (hx : x ∈ range I) :
214219
I (I.symm x) = x :=
215-
by { apply I.right_inv', simp [hx] }
220+
I.right_inv_on hx
216221

217222
lemma model_with_corners.image (s : set H) :
218223
I '' s = I.symm ⁻¹' s ∩ range I :=
219224
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] }
231228
end
232229

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+
233247
lemma model_with_corners.unique_diff_preimage {s : set H} (hs : is_open s) :
234248
unique_diff_on 𝕜 (I.symm ⁻¹' s ∩ range I) :=
235249
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 :
646660
(ext_chart_at I x).target ∈ 𝓝[range I] ((ext_chart_at I x) x) :=
647661
begin
648662
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],
650664
refine inter_mem_nhds_within _
651665
(mem_nhds_sets ((chart_at H x).open_target.preimage I.continuous_symm) _),
652666
simp only with mfld_simps

src/geometry/manifold/times_cont_mdiff.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -726,7 +726,7 @@ begin
726726
{ rintros p ⟨⟨hp₁, ⟨hp₂, hp₃⟩⟩, hp₄⟩,
727727
refine ⟨hp₁, ⟨hp₂, o_subset ⟨hp₄, ⟨hp₂, _⟩⟩⟩⟩,
728728
have := hp₁.1,
729-
rwa model_with_corners.target at this },
729+
rwa I.target_eq at this },
730730
have : times_cont_diff_on 𝕜 n (((ext_chart_at I'' y) ∘ g ∘ (ext_chart_at I' (f x')).symm) ∘
731731
((ext_chart_at I' (f x')) ∘ f ∘ (ext_chart_at I x).symm)) u,
732732
{ refine times_cont_diff_on.comp (hg.2 (f x') y) ((hf.2 x (f x')).mono u_subset) (λp hp, _),

0 commit comments

Comments
 (0)