Documentation

Mathlib.Geometry.Manifold.VectorBundle.Hom

Homs of smooth vector bundles over the same base space #

Here we show that Bundle.ContinuousLinearMap is a smooth vector bundle.

Note that we only do this for bundles of linear maps, not for bundles of arbitrary semilinear maps. To do it for semilinear maps, we would need to generalize ContinuousLinearMap.contMDiff (and ContinuousLinearMap.contDiff) to semilinear maps.

theorem smoothOn_continuousLinearMapCoordChange {๐•œ : Type u_1} {B : Type u_2} {Fโ‚ : Type u_3} {Fโ‚‚ : Type u_4} {Eโ‚ : B โ†’ Type u_6} {Eโ‚‚ : B โ†’ Type u_7} [NontriviallyNormedField ๐•œ] [(x : B) โ†’ AddCommGroup (Eโ‚ x)] [(x : B) โ†’ Module ๐•œ (Eโ‚ x)] [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] [TopologicalSpace (Bundle.TotalSpace Fโ‚ Eโ‚)] [(x : B) โ†’ TopologicalSpace (Eโ‚ x)] [(x : B) โ†’ AddCommGroup (Eโ‚‚ x)] [(x : B) โ†’ Module ๐•œ (Eโ‚‚ x)] [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] [TopologicalSpace (Bundle.TotalSpace Fโ‚‚ Eโ‚‚)] [(x : B) โ†’ TopologicalSpace (Eโ‚‚ x)] {EB : Type u_8} [NormedAddCommGroup EB] [NormedSpace ๐•œ EB] {HB : Type u_9} [TopologicalSpace HB] {IB : ModelWithCorners ๐•œ EB HB} [TopologicalSpace B] [ChartedSpace HB B] [FiberBundle Fโ‚ Eโ‚] [VectorBundle ๐•œ Fโ‚ Eโ‚] [FiberBundle Fโ‚‚ Eโ‚‚] [VectorBundle ๐•œ Fโ‚‚ Eโ‚‚] {eโ‚ eโ‚' : Trivialization Fโ‚ Bundle.TotalSpace.proj} {eโ‚‚ eโ‚‚' : Trivialization Fโ‚‚ Bundle.TotalSpace.proj} [SmoothVectorBundle Fโ‚ Eโ‚ IB] [SmoothVectorBundle Fโ‚‚ Eโ‚‚ IB] [MemTrivializationAtlas eโ‚] [MemTrivializationAtlas eโ‚'] [MemTrivializationAtlas eโ‚‚] [MemTrivializationAtlas eโ‚‚'] :
SmoothOn IB (modelWithCornersSelf ๐•œ ((Fโ‚ โ†’L[๐•œ] Fโ‚‚) โ†’L[๐•œ] Fโ‚ โ†’L[๐•œ] Fโ‚‚)) (Pretrivialization.continuousLinearMapCoordChange (RingHom.id ๐•œ) eโ‚ eโ‚' eโ‚‚ eโ‚‚') (eโ‚.baseSet โˆฉ eโ‚‚.baseSet โˆฉ (eโ‚'.baseSet โˆฉ eโ‚‚'.baseSet))
theorem hom_chart {๐•œ : Type u_1} {B : Type u_2} {Fโ‚ : Type u_3} {Fโ‚‚ : Type u_4} {Eโ‚ : B โ†’ Type u_6} {Eโ‚‚ : B โ†’ Type u_7} [NontriviallyNormedField ๐•œ] [(x : B) โ†’ AddCommGroup (Eโ‚ x)] [(x : B) โ†’ Module ๐•œ (Eโ‚ x)] [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] [TopologicalSpace (Bundle.TotalSpace Fโ‚ Eโ‚)] [(x : B) โ†’ TopologicalSpace (Eโ‚ x)] [(x : B) โ†’ AddCommGroup (Eโ‚‚ x)] [(x : B) โ†’ Module ๐•œ (Eโ‚‚ x)] [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] [TopologicalSpace (Bundle.TotalSpace Fโ‚‚ Eโ‚‚)] [(x : B) โ†’ TopologicalSpace (Eโ‚‚ x)] {HB : Type u_9} [TopologicalSpace HB] [TopologicalSpace B] [ChartedSpace HB B] [FiberBundle Fโ‚ Eโ‚] [VectorBundle ๐•œ Fโ‚ Eโ‚] [FiberBundle Fโ‚‚ Eโ‚‚] [VectorBundle ๐•œ Fโ‚‚ Eโ‚‚] [โˆ€ (x : B), TopologicalAddGroup (Eโ‚‚ x)] [โˆ€ (x : B), ContinuousSMul ๐•œ (Eโ‚‚ x)] (yโ‚€ y : Bundle.TotalSpace (Fโ‚ โ†’L[๐•œ] Fโ‚‚) (Bundle.ContinuousLinearMap (RingHom.id ๐•œ) Eโ‚ Eโ‚‚)) :
โ†‘(chartAt (ModelProd HB (Fโ‚ โ†’L[๐•œ] Fโ‚‚)) yโ‚€) y = (โ†‘(chartAt HB yโ‚€.proj) y.proj, ContinuousLinearMap.inCoordinates Fโ‚ Eโ‚ Fโ‚‚ Eโ‚‚ yโ‚€.proj y.proj yโ‚€.proj y.proj y.snd)
theorem contMDiffAt_hom_bundle {๐•œ : Type u_1} {B : Type u_2} {Fโ‚ : Type u_3} {Fโ‚‚ : Type u_4} {M : Type u_5} {Eโ‚ : B โ†’ Type u_6} {Eโ‚‚ : B โ†’ Type u_7} [NontriviallyNormedField ๐•œ] [(x : B) โ†’ AddCommGroup (Eโ‚ x)] [(x : B) โ†’ Module ๐•œ (Eโ‚ x)] [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] [TopologicalSpace (Bundle.TotalSpace Fโ‚ Eโ‚)] [(x : B) โ†’ TopologicalSpace (Eโ‚ x)] [(x : B) โ†’ AddCommGroup (Eโ‚‚ x)] [(x : B) โ†’ Module ๐•œ (Eโ‚‚ x)] [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] [TopologicalSpace (Bundle.TotalSpace Fโ‚‚ Eโ‚‚)] [(x : B) โ†’ TopologicalSpace (Eโ‚‚ x)] {EB : Type u_8} [NormedAddCommGroup EB] [NormedSpace ๐•œ EB] {HB : Type u_9} [TopologicalSpace HB] {IB : ModelWithCorners ๐•œ EB HB} [TopologicalSpace B] [ChartedSpace HB B] {EM : Type u_10} [NormedAddCommGroup EM] [NormedSpace ๐•œ EM] {HM : Type u_11} [TopologicalSpace HM] {IM : ModelWithCorners ๐•œ EM HM} [TopologicalSpace M] [ChartedSpace HM M] [FiberBundle Fโ‚ Eโ‚] [VectorBundle ๐•œ Fโ‚ Eโ‚] [FiberBundle Fโ‚‚ Eโ‚‚] [VectorBundle ๐•œ Fโ‚‚ Eโ‚‚] [โˆ€ (x : B), TopologicalAddGroup (Eโ‚‚ x)] [โˆ€ (x : B), ContinuousSMul ๐•œ (Eโ‚‚ x)] (f : M โ†’ Bundle.TotalSpace (Fโ‚ โ†’L[๐•œ] Fโ‚‚) (Bundle.ContinuousLinearMap (RingHom.id ๐•œ) Eโ‚ Eโ‚‚)) {xโ‚€ : M} {n : โ„•โˆž} :
ContMDiffAt IM (IB.prod (modelWithCornersSelf ๐•œ (Fโ‚ โ†’L[๐•œ] Fโ‚‚))) n f xโ‚€ โ†” ContMDiffAt IM IB n (fun (x : M) => (f x).proj) xโ‚€ โˆง ContMDiffAt IM (modelWithCornersSelf ๐•œ (Fโ‚ โ†’L[๐•œ] Fโ‚‚)) n (fun (x : M) => ContinuousLinearMap.inCoordinates Fโ‚ Eโ‚ Fโ‚‚ Eโ‚‚ (f xโ‚€).proj (f x).proj (f xโ‚€).proj (f x).proj (f x).snd) xโ‚€
theorem smoothAt_hom_bundle {๐•œ : Type u_1} {B : Type u_2} {Fโ‚ : Type u_3} {Fโ‚‚ : Type u_4} {M : Type u_5} {Eโ‚ : B โ†’ Type u_6} {Eโ‚‚ : B โ†’ Type u_7} [NontriviallyNormedField ๐•œ] [(x : B) โ†’ AddCommGroup (Eโ‚ x)] [(x : B) โ†’ Module ๐•œ (Eโ‚ x)] [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] [TopologicalSpace (Bundle.TotalSpace Fโ‚ Eโ‚)] [(x : B) โ†’ TopologicalSpace (Eโ‚ x)] [(x : B) โ†’ AddCommGroup (Eโ‚‚ x)] [(x : B) โ†’ Module ๐•œ (Eโ‚‚ x)] [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] [TopologicalSpace (Bundle.TotalSpace Fโ‚‚ Eโ‚‚)] [(x : B) โ†’ TopologicalSpace (Eโ‚‚ x)] {EB : Type u_8} [NormedAddCommGroup EB] [NormedSpace ๐•œ EB] {HB : Type u_9} [TopologicalSpace HB] {IB : ModelWithCorners ๐•œ EB HB} [TopologicalSpace B] [ChartedSpace HB B] {EM : Type u_10} [NormedAddCommGroup EM] [NormedSpace ๐•œ EM] {HM : Type u_11} [TopologicalSpace HM] {IM : ModelWithCorners ๐•œ EM HM} [TopologicalSpace M] [ChartedSpace HM M] [FiberBundle Fโ‚ Eโ‚] [VectorBundle ๐•œ Fโ‚ Eโ‚] [FiberBundle Fโ‚‚ Eโ‚‚] [VectorBundle ๐•œ Fโ‚‚ Eโ‚‚] [โˆ€ (x : B), TopologicalAddGroup (Eโ‚‚ x)] [โˆ€ (x : B), ContinuousSMul ๐•œ (Eโ‚‚ x)] (f : M โ†’ Bundle.TotalSpace (Fโ‚ โ†’L[๐•œ] Fโ‚‚) (Bundle.ContinuousLinearMap (RingHom.id ๐•œ) Eโ‚ Eโ‚‚)) {xโ‚€ : M} :
SmoothAt IM (IB.prod (modelWithCornersSelf ๐•œ (Fโ‚ โ†’L[๐•œ] Fโ‚‚))) f xโ‚€ โ†” SmoothAt IM IB (fun (x : M) => (f x).proj) xโ‚€ โˆง SmoothAt IM (modelWithCornersSelf ๐•œ (Fโ‚ โ†’L[๐•œ] Fโ‚‚)) (fun (x : M) => ContinuousLinearMap.inCoordinates Fโ‚ Eโ‚ Fโ‚‚ Eโ‚‚ (f xโ‚€).proj (f x).proj (f xโ‚€).proj (f x).proj (f x).snd) xโ‚€
instance Bundle.ContinuousLinearMap.vectorPrebundle.isSmooth {๐•œ : Type u_1} {B : Type u_2} {Fโ‚ : Type u_3} {Fโ‚‚ : Type u_4} {Eโ‚ : B โ†’ Type u_6} {Eโ‚‚ : B โ†’ Type u_7} [NontriviallyNormedField ๐•œ] [(x : B) โ†’ AddCommGroup (Eโ‚ x)] [(x : B) โ†’ Module ๐•œ (Eโ‚ x)] [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] [TopologicalSpace (Bundle.TotalSpace Fโ‚ Eโ‚)] [(x : B) โ†’ TopologicalSpace (Eโ‚ x)] [(x : B) โ†’ AddCommGroup (Eโ‚‚ x)] [(x : B) โ†’ Module ๐•œ (Eโ‚‚ x)] [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] [TopologicalSpace (Bundle.TotalSpace Fโ‚‚ Eโ‚‚)] [(x : B) โ†’ TopologicalSpace (Eโ‚‚ x)] {EB : Type u_8} [NormedAddCommGroup EB] [NormedSpace ๐•œ EB] {HB : Type u_9} [TopologicalSpace HB] {IB : ModelWithCorners ๐•œ EB HB} [TopologicalSpace B] [ChartedSpace HB B] [FiberBundle Fโ‚ Eโ‚] [VectorBundle ๐•œ Fโ‚ Eโ‚] [FiberBundle Fโ‚‚ Eโ‚‚] [VectorBundle ๐•œ Fโ‚‚ Eโ‚‚] [โˆ€ (x : B), TopologicalAddGroup (Eโ‚‚ x)] [โˆ€ (x : B), ContinuousSMul ๐•œ (Eโ‚‚ x)] [SmoothVectorBundle Fโ‚ Eโ‚ IB] [SmoothVectorBundle Fโ‚‚ Eโ‚‚ IB] :
VectorPrebundle.IsSmooth IB (Bundle.ContinuousLinearMap.vectorPrebundle (RingHom.id ๐•œ) Fโ‚ Eโ‚ Fโ‚‚ Eโ‚‚)
Equations
  • โ‹ฏ = โ‹ฏ
instance SmoothVectorBundle.continuousLinearMap {๐•œ : Type u_1} {B : Type u_2} {Fโ‚ : Type u_3} {Fโ‚‚ : Type u_4} {Eโ‚ : B โ†’ Type u_6} {Eโ‚‚ : B โ†’ Type u_7} [NontriviallyNormedField ๐•œ] [(x : B) โ†’ AddCommGroup (Eโ‚ x)] [(x : B) โ†’ Module ๐•œ (Eโ‚ x)] [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] [TopologicalSpace (Bundle.TotalSpace Fโ‚ Eโ‚)] [(x : B) โ†’ TopologicalSpace (Eโ‚ x)] [(x : B) โ†’ AddCommGroup (Eโ‚‚ x)] [(x : B) โ†’ Module ๐•œ (Eโ‚‚ x)] [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] [TopologicalSpace (Bundle.TotalSpace Fโ‚‚ Eโ‚‚)] [(x : B) โ†’ TopologicalSpace (Eโ‚‚ x)] {EB : Type u_8} [NormedAddCommGroup EB] [NormedSpace ๐•œ EB] {HB : Type u_9} [TopologicalSpace HB] {IB : ModelWithCorners ๐•œ EB HB} [TopologicalSpace B] [ChartedSpace HB B] [FiberBundle Fโ‚ Eโ‚] [VectorBundle ๐•œ Fโ‚ Eโ‚] [FiberBundle Fโ‚‚ Eโ‚‚] [VectorBundle ๐•œ Fโ‚‚ Eโ‚‚] [โˆ€ (x : B), TopologicalAddGroup (Eโ‚‚ x)] [โˆ€ (x : B), ContinuousSMul ๐•œ (Eโ‚‚ x)] [SmoothVectorBundle Fโ‚ Eโ‚ IB] [SmoothVectorBundle Fโ‚‚ Eโ‚‚ IB] :
SmoothVectorBundle (Fโ‚ โ†’L[๐•œ] Fโ‚‚) (Bundle.ContinuousLinearMap (RingHom.id ๐•œ) Eโ‚ Eโ‚‚) IB
Equations
  • โ‹ฏ = โ‹ฏ
theorem ContMDiffWithinAt.clm_apply_of_inCoordinates {๐•œ : Type u_1} {Fโ‚ : Type u_2} {Fโ‚‚ : Type u_3} {Bโ‚ : Type u_4} {Bโ‚‚ : Type u_5} {M : Type u_6} {Eโ‚ : Bโ‚ โ†’ Type u_7} {Eโ‚‚ : Bโ‚‚ โ†’ Type u_8} [NontriviallyNormedField ๐•œ] [(x : Bโ‚) โ†’ AddCommGroup (Eโ‚ x)] [(x : Bโ‚) โ†’ Module ๐•œ (Eโ‚ x)] [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] [TopologicalSpace (Bundle.TotalSpace Fโ‚ Eโ‚)] [(x : Bโ‚) โ†’ TopologicalSpace (Eโ‚ x)] [(x : Bโ‚‚) โ†’ AddCommGroup (Eโ‚‚ x)] [(x : Bโ‚‚) โ†’ Module ๐•œ (Eโ‚‚ x)] [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] [TopologicalSpace (Bundle.TotalSpace Fโ‚‚ Eโ‚‚)] [(x : Bโ‚‚) โ†’ TopologicalSpace (Eโ‚‚ x)] {EBโ‚ : Type u_9} [NormedAddCommGroup EBโ‚] [NormedSpace ๐•œ EBโ‚] {HBโ‚ : Type u_10} [TopologicalSpace HBโ‚] {IBโ‚ : ModelWithCorners ๐•œ EBโ‚ HBโ‚} [TopologicalSpace Bโ‚] [ChartedSpace HBโ‚ Bโ‚] {EBโ‚‚ : Type u_11} [NormedAddCommGroup EBโ‚‚] [NormedSpace ๐•œ EBโ‚‚] {HBโ‚‚ : Type u_12} [TopologicalSpace HBโ‚‚] {IBโ‚‚ : ModelWithCorners ๐•œ EBโ‚‚ HBโ‚‚} [TopologicalSpace Bโ‚‚] [ChartedSpace HBโ‚‚ Bโ‚‚] {EM : Type u_13} [NormedAddCommGroup EM] [NormedSpace ๐•œ EM] {HM : Type u_14} [TopologicalSpace HM] {IM : ModelWithCorners ๐•œ EM HM} [TopologicalSpace M] [ChartedSpace HM M] {n : โ„•โˆž} [FiberBundle Fโ‚ Eโ‚] [VectorBundle ๐•œ Fโ‚ Eโ‚] [FiberBundle Fโ‚‚ Eโ‚‚] [VectorBundle ๐•œ Fโ‚‚ Eโ‚‚] {bโ‚ : M โ†’ Bโ‚} {bโ‚‚ : M โ†’ Bโ‚‚} {mโ‚€ : M} {ฯ• : (m : M) โ†’ Eโ‚ (bโ‚ m) โ†’L[๐•œ] Eโ‚‚ (bโ‚‚ m)} {v : (m : M) โ†’ Eโ‚ (bโ‚ m)} {s : Set M} (hฯ• : ContMDiffWithinAt IM (modelWithCornersSelf ๐•œ (Fโ‚ โ†’L[๐•œ] Fโ‚‚)) n (fun (m : M) => ContinuousLinearMap.inCoordinates Fโ‚ Eโ‚ Fโ‚‚ Eโ‚‚ (bโ‚ mโ‚€) (bโ‚ m) (bโ‚‚ mโ‚€) (bโ‚‚ m) (ฯ• m)) s mโ‚€) (hv : ContMDiffWithinAt IM (IBโ‚.prod (modelWithCornersSelf ๐•œ Fโ‚)) n (fun (m : M) => { proj := bโ‚ m, snd := v m }) s mโ‚€) (hbโ‚‚ : ContMDiffWithinAt IM IBโ‚‚ n bโ‚‚ s mโ‚€) :
ContMDiffWithinAt IM (IBโ‚‚.prod (modelWithCornersSelf ๐•œ Fโ‚‚)) n (fun (m : M) => { proj := bโ‚‚ m, snd := (ฯ• m) (v m) }) s mโ‚€

Consider a smooth map v : M โ†’ Eโ‚ to a vector bundle, over a basemap bโ‚ : M โ†’ Bโ‚, and another basemap bโ‚‚ : M โ†’ Bโ‚‚. Given linear maps ฯ• m : Eโ‚ (bโ‚ m) โ†’ Eโ‚‚ (bโ‚‚ m) depending smoothly on m, one can apply ฯ• m to g m, and the resulting map is smooth.

Note that the smoothness of ฯ• can not be always be stated as smoothness of a map into a manifold, as the pullback bundles bโ‚ *แต– Eโ‚ and bโ‚‚ *แต– Eโ‚‚ only make sense when bโ‚ and bโ‚‚ are globally smooth, but we want to apply this lemma with only local information. Therefore, we formulate it using smoothness of ฯ• read in coordinates.

Version for ContMDiffWithinAt. We also give a version for ContMDiffAt, but no version for ContMDiffOn or ContMDiff as our assumption, written in coordinates, only makes sense around a point.

theorem ContMDiffAt.clm_apply_of_inCoordinates {๐•œ : Type u_1} {Fโ‚ : Type u_2} {Fโ‚‚ : Type u_3} {Bโ‚ : Type u_4} {Bโ‚‚ : Type u_5} {M : Type u_6} {Eโ‚ : Bโ‚ โ†’ Type u_7} {Eโ‚‚ : Bโ‚‚ โ†’ Type u_8} [NontriviallyNormedField ๐•œ] [(x : Bโ‚) โ†’ AddCommGroup (Eโ‚ x)] [(x : Bโ‚) โ†’ Module ๐•œ (Eโ‚ x)] [NormedAddCommGroup Fโ‚] [NormedSpace ๐•œ Fโ‚] [TopologicalSpace (Bundle.TotalSpace Fโ‚ Eโ‚)] [(x : Bโ‚) โ†’ TopologicalSpace (Eโ‚ x)] [(x : Bโ‚‚) โ†’ AddCommGroup (Eโ‚‚ x)] [(x : Bโ‚‚) โ†’ Module ๐•œ (Eโ‚‚ x)] [NormedAddCommGroup Fโ‚‚] [NormedSpace ๐•œ Fโ‚‚] [TopologicalSpace (Bundle.TotalSpace Fโ‚‚ Eโ‚‚)] [(x : Bโ‚‚) โ†’ TopologicalSpace (Eโ‚‚ x)] {EBโ‚ : Type u_9} [NormedAddCommGroup EBโ‚] [NormedSpace ๐•œ EBโ‚] {HBโ‚ : Type u_10} [TopologicalSpace HBโ‚] {IBโ‚ : ModelWithCorners ๐•œ EBโ‚ HBโ‚} [TopologicalSpace Bโ‚] [ChartedSpace HBโ‚ Bโ‚] {EBโ‚‚ : Type u_11} [NormedAddCommGroup EBโ‚‚] [NormedSpace ๐•œ EBโ‚‚] {HBโ‚‚ : Type u_12} [TopologicalSpace HBโ‚‚] {IBโ‚‚ : ModelWithCorners ๐•œ EBโ‚‚ HBโ‚‚} [TopologicalSpace Bโ‚‚] [ChartedSpace HBโ‚‚ Bโ‚‚] {EM : Type u_13} [NormedAddCommGroup EM] [NormedSpace ๐•œ EM] {HM : Type u_14} [TopologicalSpace HM] {IM : ModelWithCorners ๐•œ EM HM} [TopologicalSpace M] [ChartedSpace HM M] {n : โ„•โˆž} [FiberBundle Fโ‚ Eโ‚] [VectorBundle ๐•œ Fโ‚ Eโ‚] [FiberBundle Fโ‚‚ Eโ‚‚] [VectorBundle ๐•œ Fโ‚‚ Eโ‚‚] {bโ‚ : M โ†’ Bโ‚} {bโ‚‚ : M โ†’ Bโ‚‚} {mโ‚€ : M} {ฯ• : (m : M) โ†’ Eโ‚ (bโ‚ m) โ†’L[๐•œ] Eโ‚‚ (bโ‚‚ m)} {v : (m : M) โ†’ Eโ‚ (bโ‚ m)} (hฯ• : ContMDiffAt IM (modelWithCornersSelf ๐•œ (Fโ‚ โ†’L[๐•œ] Fโ‚‚)) n (fun (m : M) => ContinuousLinearMap.inCoordinates Fโ‚ Eโ‚ Fโ‚‚ Eโ‚‚ (bโ‚ mโ‚€) (bโ‚ m) (bโ‚‚ mโ‚€) (bโ‚‚ m) (ฯ• m)) mโ‚€) (hv : ContMDiffAt IM (IBโ‚.prod (modelWithCornersSelf ๐•œ Fโ‚)) n (fun (m : M) => { proj := bโ‚ m, snd := v m }) mโ‚€) (hbโ‚‚ : ContMDiffAt IM IBโ‚‚ n bโ‚‚ mโ‚€) :
ContMDiffAt IM (IBโ‚‚.prod (modelWithCornersSelf ๐•œ Fโ‚‚)) n (fun (m : M) => { proj := bโ‚‚ m, snd := (ฯ• m) (v m) }) mโ‚€

Consider a smooth map v : M โ†’ Eโ‚ to a vector bundle, over a basemap bโ‚ : M โ†’ Bโ‚, and another basemap bโ‚‚ : M โ†’ Bโ‚‚. Given linear maps ฯ• m : Eโ‚ (bโ‚ m) โ†’ Eโ‚‚ (bโ‚‚ m) depending smoothly on m, one can apply ฯ• m to g m, and the resulting map is smooth.

Note that the smoothness of ฯ• can not be always be stated as smoothness of a map into a manifold, as the pullback bundles bโ‚ *แต– Eโ‚ and bโ‚‚ *แต– Eโ‚‚ only make sense when bโ‚ and bโ‚‚ are globally smooth, but we want to apply this lemma with only local information. Therefore, we formulate it using smoothness of ฯ• read in coordinates.

Version for ContMDiffAt. We also give a version for ContMDiffWithinAt, but no version for ContMDiffOn or ContMDiff as our assumption, written in coordinates, only makes sense around a point.