@@ -54,6 +54,8 @@ This shortens the overall argument, as the definition of submersions has the sam
5454* `IsImmersion.id`: the identity map is an immersion
5555* `IsImmersion.of_opens`: the inclusion of an open subset `s → M` of a smooth manifold
5656 is a smooth immersion
57+ * `IsImmersionOfComplement.sumInl` and `IsImmersionOfComplement.sumInr`: given `C^n` manifolds
58+ `M` and `N`, `Sum.inl : M → M ⊕ N` and `Sum.inr : N → M ⊕ N` are `C^n` immersions
5759* `IsImmersionAt.contMDiffAt`: if f is an immersion at `x`, it is `C^n` at `x`.
5860* `IsImmersion.contMDiff`: if f is a `C^n` immersion, it is automatically `C^n`
5961 in the sense of `ContMDiff`.
@@ -615,6 +617,7 @@ In other words, `f` is an immersion at each `x ∈ M`.
615617This definition has a fixed parameter `F`, which is a choice of complement of `E` in `E'`:
616618being an immersion at `x` includes a choice of linear isomorphism between `E × F` and `E'`.
617619-/
620+ @[expose]
618621def IsImmersionOfComplement (f : M → N) : Prop := ∀ x, IsImmersionAtOfComplement F I J n f x
619622
620623variable (I J n) in
@@ -696,6 +699,32 @@ lemma of_opens [IsManifold I n M] (s : TopologicalSpace.Opens M) :
696699 IsImmersionOfComplement PUnit I I n (Subtype.val : s → M) :=
697700 fun y ↦ IsImmersionAtOfComplement.of_opens s y
698701
702+ /-- Given `C^n` manifolds `M` and `N` over the same model `I`,
703+ `Sum.inl : M → M ⊕ N` is a `C^n` immersion with complement `Unit` -/
704+ lemma sumInl {M' : Type *} [TopologicalSpace M'] [ChartedSpace H M'] [IsManifold I n M]
705+ [IsManifold I n M'] : IsImmersionOfComplement Unit I I n (@Sum.inl M M') := by
706+ intro x
707+ apply IsImmersionAtOfComplement.mk_of_continuousAt (equiv := (.prodUnique 𝕜 E _))
708+ (by fun_prop) _ _ (mem_chart_source H x) (mem_chart_source H (Sum.inl x))
709+ (IsManifold.chart_mem_maximalAtlas x) (IsManifold.chart_mem_maximalAtlas (Sum.inl x))
710+ intro y hy
711+ have : I ((chartAt H x) ((chartAt H x).symm (I.symm y))) = y := by
712+ rw [(chartAt H x).right_inv (by simp_all), I.right_inv (by simp_all)]
713+ simpa
714+
715+ /-- Given `C^n` manifolds `M` and `N` over the same model `I`,
716+ `Sum.inr : N → M ⊕ N` is a `C^n` immersion with complement `Unit` -/
717+ lemma sumInr {M' : Type *} [TopologicalSpace M'] [ChartedSpace H M'] [IsManifold I n M]
718+ [IsManifold I n M'] : IsImmersionOfComplement Unit I I n (@Sum.inr M M') := by
719+ intro x
720+ apply IsImmersionAtOfComplement.mk_of_continuousAt (equiv := (.prodUnique 𝕜 E _))
721+ (by fun_prop) _ _ (mem_chart_source H x) (mem_chart_source H (Sum.inr x))
722+ (IsManifold.chart_mem_maximalAtlas x) (IsManifold.chart_mem_maximalAtlas (Sum.inr x))
723+ intro y hy
724+ have : I ((chartAt H x) ((chartAt H x).symm (I.symm y))) = y := by
725+ rw [(chartAt H x).right_inv (by simp_all), I.right_inv (by simp_all)]
726+ simpa
727+
699728@ [deprecated (since := "2025-12-16" )] alias ofOpen := of_opens
700729
701730/-- A `C^n` immersion is `C^n`. -/
0 commit comments