Documentation

TauCeti.Geometry.Manifold.VectorBundle.MaximalAtlas

The maximal atlas of compatible trivializations of a C^n vector bundle #

Mathlib makes the total space of a vector bundle E with fibre F over B a charted space modelled on B ร— F, whose charts are the trivializations of the bundle's atlas, and shows that for a C^n vector bundle these charts are compatible for the groupoid contMDiffFiberwiseLinear B F IB n of bi-C^n fiberwise linear maps. The maximal atlas of that groupoid is the set of all trivializations compatible with the bundle's C^n structure. Over ๐“˜(โ„‚, EB) and for positive regularity n โ‰  0 it is the maximal atlas of holomorphic trivializations of a holomorphic vector bundle; for n = 0 it only records continuity.

This file characterizes that maximal atlas by gauges. For two linear trivializations e and e', the coordinate change e.symm โ‰ซโ‚• e' lies in the groupoid exactly when the fibrewise coordinate changes e.coordChangeL ๐•œ e' and e'.coordChangeL ๐•œ e are C^n on the overlap of the base sets. Hence a linear trivialization lies in the maximal atlas exactly when its coordinate changes with every trivialization of the bundle's atlas are C^n gauges, and the coordinate changes between any two members of the maximal atlas are C^n.

Changes of frame are gauge transforms. Bundle.Trivialization.transFiberwiseLinear modifies a trivialization e by a family ฯ† : B โ†’ F โ‰ƒL[๐•œ] F, and a gauge transform of a member of the maximal atlas is again a member exactly when ฯ† and its fibrewise inverse are C^n on the base set. Finally, the smoothness criteria for maps into the total space and for sections, which Mathlib states for trivializations of the bundle's atlas, hold verbatim for every member of the maximal atlas.

Main results #

Provenance #

No formal source is vendored. The proofs follow Mathlib's Mathlib/Geometry/Manifold/VectorBundle/Basic.lean and Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean, by Floris van Doorn and Heather Macbeth: the proof of ContMDiffFiberwiseLinear.hasGroupoid and the characterization mem_contMDiffFiberwiseLinear_iff drive the groupoid criterion, the gauge transform is built from FiberwiseLinear.openPartialHomeomorph, and the section criteria extend Bundle.Trivialization.contMDiffWithinAt_iff and Bundle.Trivialization.contMDiffAt_section_iff from trivializations of the bundle's atlas to the maximal atlas.

References #

Gauge transforms of trivializations #

def Bundle.Trivialization.transFiberwiseLinear {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {Z : Type u_4} [TopologicalSpace Z] {proj : Z โ†’ B} (e : Trivialization F proj) (ฯ† : B โ†’ F โ‰ƒL[๐•œ] F) (hฯ† : ContinuousOn (fun (x : B) => โ†‘(ฯ† x)) e.baseSet) (h2ฯ† : ContinuousOn (fun (x : B) => โ†‘(ฯ† x).symm) e.baseSet) :

The gauge transform of a trivialization e by a family ฯ† of continuous linear automorphisms of the fibre, continuous with continuous inverse on e.baseSet: it sends p to ((e p).1, ฯ† (e p).1 (e p).2), and has the same base set as e.

Instances For
    @[simp]
    theorem Bundle.Trivialization.transFiberwiseLinear_apply {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {Z : Type u_4} [TopologicalSpace Z] {proj : Z โ†’ B} (e : Trivialization F proj) (ฯ† : B โ†’ F โ‰ƒL[๐•œ] F) (hฯ† : ContinuousOn (fun (x : B) => โ†‘(ฯ† x)) e.baseSet) (h2ฯ† : ContinuousOn (fun (x : B) => โ†‘(ฯ† x).symm) e.baseSet) (p : Z) :
    โ†‘(e.transFiberwiseLinear ฯ† hฯ† h2ฯ†) p = ((โ†‘e p).1, (ฯ† (โ†‘e p).1) (โ†‘e p).2)
    @[simp]
    theorem Bundle.Trivialization.transFiberwiseLinear_symm_apply {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {Z : Type u_4} [TopologicalSpace Z] {proj : Z โ†’ B} (e : Trivialization F proj) (ฯ† : B โ†’ F โ‰ƒL[๐•œ] F) (hฯ† : ContinuousOn (fun (x : B) => โ†‘(ฯ† x)) e.baseSet) (h2ฯ† : ContinuousOn (fun (x : B) => โ†‘(ฯ† x).symm) e.baseSet) (x : B ร— F) :
    โ†‘(e.transFiberwiseLinear ฯ† hฯ† h2ฯ†).symm x = โ†‘e.symm (x.1, (ฯ† x.1).symm x.2)
    @[simp]
    theorem Bundle.Trivialization.baseSet_transFiberwiseLinear {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {Z : Type u_4} [TopologicalSpace Z] {proj : Z โ†’ B} (e : Trivialization F proj) (ฯ† : B โ†’ F โ‰ƒL[๐•œ] F) (hฯ† : ContinuousOn (fun (x : B) => โ†‘(ฯ† x)) e.baseSet) (h2ฯ† : ContinuousOn (fun (x : B) => โ†‘(ฯ† x).symm) e.baseSet) :
    (e.transFiberwiseLinear ฯ† hฯ† h2ฯ†).baseSet = e.baseSet
    instance Bundle.Trivialization.isLinear_transFiberwiseLinear {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {E : B โ†’ Type u_4} [TopologicalSpace (TotalSpace F E)] [(x : B) โ†’ AddCommMonoid (E x)] [(x : B) โ†’ Module ๐•œ (E x)] (e : Trivialization F TotalSpace.proj) (ฯ† : B โ†’ F โ‰ƒL[๐•œ] F) (hฯ† : ContinuousOn (fun (x : B) => โ†‘(ฯ† x)) e.baseSet) (h2ฯ† : ContinuousOn (fun (x : B) => โ†‘(ฯ† x).symm) e.baseSet) [Trivialization.IsLinear ๐•œ e] :
    Trivialization.IsLinear ๐•œ (e.transFiberwiseLinear ฯ† hฯ† h2ฯ†)

    A gauge transform of a linear trivialization is linear.

    theorem Bundle.Trivialization.coordChangeL_transFiberwiseLinear_left {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {E : B โ†’ Type u_4} [TopologicalSpace (TotalSpace F E)] [(x : B) โ†’ AddCommMonoid (E x)] [(x : B) โ†’ Module ๐•œ (E x)] (e : Trivialization F TotalSpace.proj) (ฯ† : B โ†’ F โ‰ƒL[๐•œ] F) (hฯ† : ContinuousOn (fun (x : B) => โ†‘(ฯ† x)) e.baseSet) (h2ฯ† : ContinuousOn (fun (x : B) => โ†‘(ฯ† x).symm) e.baseSet) (e' : Trivialization F TotalSpace.proj) [Trivialization.IsLinear ๐•œ e] [Trivialization.IsLinear ๐•œ e'] {b : B} (hb : b โˆˆ e.baseSet โˆฉ e'.baseSet) :
    coordChangeL ๐•œ (e.transFiberwiseLinear ฯ† hฯ† h2ฯ†) e' b = (ฯ† b).symm.trans (coordChangeL ๐•œ e e' b)

    The coordinate change out of a gauge transform first undoes the gauge.

    theorem Bundle.Trivialization.coordChangeL_transFiberwiseLinear_right {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {E : B โ†’ Type u_4} [TopologicalSpace (TotalSpace F E)] [(x : B) โ†’ AddCommMonoid (E x)] [(x : B) โ†’ Module ๐•œ (E x)] (e : Trivialization F TotalSpace.proj) (ฯ† : B โ†’ F โ‰ƒL[๐•œ] F) (hฯ† : ContinuousOn (fun (x : B) => โ†‘(ฯ† x)) e.baseSet) (h2ฯ† : ContinuousOn (fun (x : B) => โ†‘(ฯ† x).symm) e.baseSet) (e' : Trivialization F TotalSpace.proj) [Trivialization.IsLinear ๐•œ e] [Trivialization.IsLinear ๐•œ e'] {b : B} (hb : b โˆˆ e'.baseSet โˆฉ e.baseSet) :
    coordChangeL ๐•œ e' (e.transFiberwiseLinear ฯ† hฯ† h2ฯ†) b = (coordChangeL ๐•œ e' e b).trans (ฯ† b)

    The coordinate change into a gauge transform applies the gauge last.

    Membership in the groupoid of fiberwise linear maps #

    theorem Bundle.Trivialization.symm_trans_mem_contMDiffFiberwiseLinear_iff {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {E : B โ†’ Type u_4} [TopologicalSpace (TotalSpace F E)] [(x : B) โ†’ AddCommMonoid (E x)] [(x : B) โ†’ Module ๐•œ (E x)] {EB : Type u_5} {HB : Type u_6} [NormedAddCommGroup EB] [NormedSpace ๐•œ EB] [TopologicalSpace HB] [ChartedSpace HB B] {IB : ModelWithCorners ๐•œ EB HB} {n : WithTop โ„•โˆž} (e e' : Trivialization F TotalSpace.proj) [Trivialization.IsLinear ๐•œ e] [Trivialization.IsLinear ๐•œ e'] :
    e.symm.trans e'.toOpenPartialHomeomorph โˆˆ contMDiffFiberwiseLinear B F IB n โ†” ContMDiffOn IB (modelWithCornersSelf ๐•œ (F โ†’L[๐•œ] F)) n (fun (b : B) => โ†‘(coordChangeL ๐•œ e e' b)) (e.baseSet โˆฉ e'.baseSet) โˆง ContMDiffOn IB (modelWithCornersSelf ๐•œ (F โ†’L[๐•œ] F)) n (fun (b : B) => โ†‘(coordChangeL ๐•œ e' e b)) (e.baseSet โˆฉ e'.baseSet)

    The coordinate change e.symm โ‰ซโ‚• e' between two linear trivializations is a bi-C^n fiberwise linear map exactly when the fibrewise coordinate changes in both directions are C^n on the overlap of the base sets.

    The maximal atlas #

    theorem Bundle.Trivialization.contMDiffOn_coordChangeL_of_mem_maximalAtlas {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {E : B โ†’ Type u_4} [TopologicalSpace (TotalSpace F E)] [(x : B) โ†’ AddCommMonoid (E x)] [(x : B) โ†’ Module ๐•œ (E x)] {EB : Type u_5} {HB : Type u_6} [NormedAddCommGroup EB] [NormedSpace ๐•œ EB] [TopologicalSpace HB] [ChartedSpace HB B] {IB : ModelWithCorners ๐•œ EB HB} {n : WithTop โ„•โˆž} [(x : B) โ†’ TopologicalSpace (E x)] [FiberBundle F E] {e e' : Trivialization F TotalSpace.proj} [Trivialization.IsLinear ๐•œ e] [Trivialization.IsLinear ๐•œ e'] (he : e.toOpenPartialHomeomorph โˆˆ StructureGroupoid.maximalAtlas (TotalSpace F E) (contMDiffFiberwiseLinear B F IB n)) (he' : e'.toOpenPartialHomeomorph โˆˆ StructureGroupoid.maximalAtlas (TotalSpace F E) (contMDiffFiberwiseLinear B F IB n)) :
    ContMDiffOn IB (modelWithCornersSelf ๐•œ (F โ†’L[๐•œ] F)) n (fun (b : B) => โ†‘(coordChangeL ๐•œ e e' b)) (e.baseSet โˆฉ e'.baseSet)

    The fibrewise coordinate change between two members of the maximal atlas of C^n trivializations is C^n on the overlap of their base sets.

    theorem Bundle.Trivialization.contMDiffAt_coordChangeL_of_mem_maximalAtlas {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {E : B โ†’ Type u_4} [TopologicalSpace (TotalSpace F E)] [(x : B) โ†’ AddCommMonoid (E x)] [(x : B) โ†’ Module ๐•œ (E x)] {EB : Type u_5} {HB : Type u_6} [NormedAddCommGroup EB] [NormedSpace ๐•œ EB] [TopologicalSpace HB] [ChartedSpace HB B] {IB : ModelWithCorners ๐•œ EB HB} {n : WithTop โ„•โˆž} [(x : B) โ†’ TopologicalSpace (E x)] [FiberBundle F E] {e e' : Trivialization F TotalSpace.proj} [Trivialization.IsLinear ๐•œ e] [Trivialization.IsLinear ๐•œ e'] (he : e.toOpenPartialHomeomorph โˆˆ StructureGroupoid.maximalAtlas (TotalSpace F E) (contMDiffFiberwiseLinear B F IB n)) (he' : e'.toOpenPartialHomeomorph โˆˆ StructureGroupoid.maximalAtlas (TotalSpace F E) (contMDiffFiberwiseLinear B F IB n)) {b : B} (hb : b โˆˆ e.baseSet) (hb' : b โˆˆ e'.baseSet) :
    ContMDiffAt IB (modelWithCornersSelf ๐•œ (F โ†’L[๐•œ] F)) n (fun (b : B) => โ†‘(coordChangeL ๐•œ e e' b)) b

    The fibrewise coordinate change between two members of the maximal atlas of C^n trivializations is C^n at every point of the overlap of their base sets.

    theorem ContMDiffWithinAt.change_section_trivialization_of_mem_maximalAtlas {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {E : B โ†’ Type u_4} [TopologicalSpace (Bundle.TotalSpace F E)] [(x : B) โ†’ AddCommMonoid (E x)] [(x : B) โ†’ Module ๐•œ (E x)] {EB : Type u_5} {HB : Type u_6} [NormedAddCommGroup EB] [NormedSpace ๐•œ EB] [TopologicalSpace HB] [ChartedSpace HB B] {IB : ModelWithCorners ๐•œ EB HB} {n : WithTop โ„•โˆž} [(x : B) โ†’ TopologicalSpace (E x)] [FiberBundle F E] {e e' : Bundle.Trivialization F Bundle.TotalSpace.proj} [Bundle.Trivialization.IsLinear ๐•œ e] [Bundle.Trivialization.IsLinear ๐•œ e'] {EM : Type u_7} {HM : Type u_8} [NormedAddCommGroup EM] [NormedSpace ๐•œ EM] [TopologicalSpace HM] {IM : ModelWithCorners ๐•œ EM HM} {M : Type u_9} [TopologicalSpace M] [ChartedSpace HM M] {f : M โ†’ Bundle.TotalSpace F E} {s : Set M} {xโ‚€ : M} (he : e.toOpenPartialHomeomorph โˆˆ StructureGroupoid.maximalAtlas (Bundle.TotalSpace F E) (contMDiffFiberwiseLinear B F IB n)) (he' : e'.toOpenPartialHomeomorph โˆˆ StructureGroupoid.maximalAtlas (Bundle.TotalSpace F E) (contMDiffFiberwiseLinear B F IB n)) (hp : ContMDiffWithinAt IM IB n (Bundle.TotalSpace.proj โˆ˜ f) s xโ‚€) (hf : ContMDiffWithinAt IM (modelWithCornersSelf ๐•œ F) n (fun (y : M) => (โ†‘e (f y)).2) s xโ‚€) (hx : f xโ‚€ โˆˆ e.source) (hx' : f xโ‚€ โˆˆ e'.source) :
    ContMDiffWithinAt IM (modelWithCornersSelf ๐•œ F) n (fun (y : M) => (โ†‘e' (f y)).2) s xโ‚€

    A map into the total space whose base map is C^n and whose fibre coordinate in one member of the maximal atlas of C^n trivializations is C^n has C^n fibre coordinate in every other member whose source contains the point.

    theorem Bundle.Trivialization.mem_maximalAtlas_contMDiffFiberwiseLinear_iff {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {E : B โ†’ Type u_4} [TopologicalSpace (TotalSpace F E)] [(x : B) โ†’ AddCommMonoid (E x)] [(x : B) โ†’ Module ๐•œ (E x)] {EB : Type u_5} {HB : Type u_6} [NormedAddCommGroup EB] [NormedSpace ๐•œ EB] [TopologicalSpace HB] [ChartedSpace HB B] (IB : ModelWithCorners ๐•œ EB HB) (n : WithTop โ„•โˆž) [(x : B) โ†’ TopologicalSpace (E x)] [FiberBundle F E] [VectorBundle ๐•œ F E] (e : Trivialization F TotalSpace.proj) [Trivialization.IsLinear ๐•œ e] :
    e.toOpenPartialHomeomorph โˆˆ StructureGroupoid.maximalAtlas (TotalSpace F E) (contMDiffFiberwiseLinear B F IB n) โ†” โˆ€ (e' : Trivialization F TotalSpace.proj) [inst : MemTrivializationAtlas e'], ContMDiffOn IB (modelWithCornersSelf ๐•œ (F โ†’L[๐•œ] F)) n (fun (b : B) => โ†‘(coordChangeL ๐•œ e e' b)) (e.baseSet โˆฉ e'.baseSet) โˆง ContMDiffOn IB (modelWithCornersSelf ๐•œ (F โ†’L[๐•œ] F)) n (fun (b : B) => โ†‘(coordChangeL ๐•œ e' e b)) (e.baseSet โˆฉ e'.baseSet)

    A linear trivialization lies in the maximal atlas of C^n trivializations exactly when its fibrewise coordinate changes with every trivialization of the bundle's atlas, in both directions, are C^n on the overlaps of the base sets.

    theorem Bundle.Trivialization.mem_maximalAtlas_of_memTrivializationAtlas {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {E : B โ†’ Type u_4} [TopologicalSpace (TotalSpace F E)] [(x : B) โ†’ AddCommMonoid (E x)] [(x : B) โ†’ Module ๐•œ (E x)] {EB : Type u_5} {HB : Type u_6} [NormedAddCommGroup EB] [NormedSpace ๐•œ EB] [TopologicalSpace HB] [ChartedSpace HB B] (IB : ModelWithCorners ๐•œ EB HB) (n : WithTop โ„•โˆž) [(x : B) โ†’ TopologicalSpace (E x)] [FiberBundle F E] [VectorBundle ๐•œ F E] [ContMDiffVectorBundle n F E IB] (e : Trivialization F TotalSpace.proj) [MemTrivializationAtlas e] :

    Every trivialization of the atlas of a C^n vector bundle lies in the maximal atlas of C^n trivializations. Unlike StructureGroupoid.subset_maximalAtlas, this needs no manifold structure on the base.

    theorem Bundle.Trivialization.transFiberwiseLinear_mem_maximalAtlas_iff {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {E : B โ†’ Type u_4} [TopologicalSpace (TotalSpace F E)] [(x : B) โ†’ AddCommMonoid (E x)] [(x : B) โ†’ Module ๐•œ (E x)] {EB : Type u_5} {HB : Type u_6} [NormedAddCommGroup EB] [NormedSpace ๐•œ EB] [TopologicalSpace HB] [ChartedSpace HB B] {IB : ModelWithCorners ๐•œ EB HB} {n : WithTop โ„•โˆž} [(x : B) โ†’ TopologicalSpace (E x)] [FiberBundle F E] {e : Trivialization F TotalSpace.proj} [Trivialization.IsLinear ๐•œ e] [VectorBundle ๐•œ F E] (he : e.toOpenPartialHomeomorph โˆˆ StructureGroupoid.maximalAtlas (TotalSpace F E) (contMDiffFiberwiseLinear B F IB n)) (ฯ† : B โ†’ F โ‰ƒL[๐•œ] F) (hฯ† : ContinuousOn (fun (x : B) => โ†‘(ฯ† x)) e.baseSet) (h2ฯ† : ContinuousOn (fun (x : B) => โ†‘(ฯ† x).symm) e.baseSet) :
    (e.transFiberwiseLinear ฯ† hฯ† h2ฯ†).toOpenPartialHomeomorph โˆˆ StructureGroupoid.maximalAtlas (TotalSpace F E) (contMDiffFiberwiseLinear B F IB n) โ†” ContMDiffOn IB (modelWithCornersSelf ๐•œ (F โ†’L[๐•œ] F)) n (fun (x : B) => โ†‘(ฯ† x)) e.baseSet โˆง ContMDiffOn IB (modelWithCornersSelf ๐•œ (F โ†’L[๐•œ] F)) n (fun (x : B) => โ†‘(ฯ† x).symm) e.baseSet

    A gauge transform of a member of the maximal atlas of C^n trivializations is again a member exactly when the gauge and its fibrewise inverse are C^n on the base set.

    Smoothness read in a member of the maximal atlas #

    theorem Bundle.Trivialization.contMDiffWithinAt_iff_of_mem_maximalAtlas {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {E : B โ†’ Type u_4} [TopologicalSpace (TotalSpace F E)] [(x : B) โ†’ AddCommMonoid (E x)] [(x : B) โ†’ Module ๐•œ (E x)] {EB : Type u_5} {HB : Type u_6} [NormedAddCommGroup EB] [NormedSpace ๐•œ EB] [TopologicalSpace HB] [ChartedSpace HB B] {IB : ModelWithCorners ๐•œ EB HB} {n : WithTop โ„•โˆž} [(x : B) โ†’ TopologicalSpace (E x)] [FiberBundle F E] {e : Trivialization F TotalSpace.proj} [Trivialization.IsLinear ๐•œ e] {EM : Type u_7} {HM : Type u_8} [NormedAddCommGroup EM] [NormedSpace ๐•œ EM] [TopologicalSpace HM] {IM : ModelWithCorners ๐•œ EM HM} {M : Type u_9} [TopologicalSpace M] [ChartedSpace HM M] {f : M โ†’ TotalSpace F E} {s : Set M} {xโ‚€ : M} [VectorBundle ๐•œ F E] [ContMDiffVectorBundle n F E IB] (he : e.toOpenPartialHomeomorph โˆˆ StructureGroupoid.maximalAtlas (TotalSpace F E) (contMDiffFiberwiseLinear B F IB n)) (hx : f xโ‚€ โˆˆ e.source) :
    ContMDiffWithinAt IM (IB.prod (modelWithCornersSelf ๐•œ F)) n f s xโ‚€ โ†” ContMDiffWithinAt IM IB n (fun (x : M) => (f x).proj) s xโ‚€ โˆง ContMDiffWithinAt IM (modelWithCornersSelf ๐•œ F) n (fun (x : M) => (โ†‘e (f x)).2) s xโ‚€

    A map into the total space of a C^n vector bundle is C^n within a set at a point exactly when its base map and its fibre coordinate in a member of the maximal atlas of C^n trivializations, whose source contains the point, are.

    theorem Bundle.Trivialization.contMDiffAt_iff_of_mem_maximalAtlas {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {E : B โ†’ Type u_4} [TopologicalSpace (TotalSpace F E)] [(x : B) โ†’ AddCommMonoid (E x)] [(x : B) โ†’ Module ๐•œ (E x)] {EB : Type u_5} {HB : Type u_6} [NormedAddCommGroup EB] [NormedSpace ๐•œ EB] [TopologicalSpace HB] [ChartedSpace HB B] {IB : ModelWithCorners ๐•œ EB HB} {n : WithTop โ„•โˆž} [(x : B) โ†’ TopologicalSpace (E x)] [FiberBundle F E] {e : Trivialization F TotalSpace.proj} [Trivialization.IsLinear ๐•œ e] {EM : Type u_7} {HM : Type u_8} [NormedAddCommGroup EM] [NormedSpace ๐•œ EM] [TopologicalSpace HM] {IM : ModelWithCorners ๐•œ EM HM} {M : Type u_9} [TopologicalSpace M] [ChartedSpace HM M] {f : M โ†’ TotalSpace F E} {xโ‚€ : M} [VectorBundle ๐•œ F E] [ContMDiffVectorBundle n F E IB] (he : e.toOpenPartialHomeomorph โˆˆ StructureGroupoid.maximalAtlas (TotalSpace F E) (contMDiffFiberwiseLinear B F IB n)) (hx : f xโ‚€ โˆˆ e.source) :
    ContMDiffAt IM (IB.prod (modelWithCornersSelf ๐•œ F)) n f xโ‚€ โ†” ContMDiffAt IM IB n (fun (x : M) => (f x).proj) xโ‚€ โˆง ContMDiffAt IM (modelWithCornersSelf ๐•œ F) n (fun (x : M) => (โ†‘e (f x)).2) xโ‚€

    A map into the total space of a C^n vector bundle is C^n at a point exactly when its base map and its fibre coordinate in a member of the maximal atlas of C^n trivializations, whose source contains the point, are.

    theorem Bundle.Trivialization.contMDiffWithinAt_section_iff_of_mem_maximalAtlas {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {E : B โ†’ Type u_4} [TopologicalSpace (TotalSpace F E)] [(x : B) โ†’ AddCommMonoid (E x)] [(x : B) โ†’ Module ๐•œ (E x)] {EB : Type u_5} {HB : Type u_6} [NormedAddCommGroup EB] [NormedSpace ๐•œ EB] [TopologicalSpace HB] [ChartedSpace HB B] {IB : ModelWithCorners ๐•œ EB HB} {n : WithTop โ„•โˆž} [(x : B) โ†’ TopologicalSpace (E x)] [FiberBundle F E] {e : Trivialization F TotalSpace.proj} [Trivialization.IsLinear ๐•œ e] [VectorBundle ๐•œ F E] [ContMDiffVectorBundle n F E IB] (he : e.toOpenPartialHomeomorph โˆˆ StructureGroupoid.maximalAtlas (TotalSpace F E) (contMDiffFiberwiseLinear B F IB n)) {ฯƒ : (x : B) โ†’ E x} {a : Set B} {bโ‚€ : B} (hbโ‚€ : bโ‚€ โˆˆ e.baseSet) :
    ContMDiffWithinAt IB (IB.prod (modelWithCornersSelf ๐•œ F)) n (fun (x : B) => โŸจx, ฯƒ xโŸฉ) a bโ‚€ โ†” ContMDiffWithinAt IB (modelWithCornersSelf ๐•œ F) n (fun (x : B) => (โ†‘e โŸจx, ฯƒ xโŸฉ).2) a bโ‚€

    A section of a C^n vector bundle is C^n within a set at a point of the base set of a member of the maximal atlas of C^n trivializations exactly when its coordinate in that member is.

    theorem Bundle.Trivialization.contMDiffAt_section_iff_of_mem_maximalAtlas {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {E : B โ†’ Type u_4} [TopologicalSpace (TotalSpace F E)] [(x : B) โ†’ AddCommMonoid (E x)] [(x : B) โ†’ Module ๐•œ (E x)] {EB : Type u_5} {HB : Type u_6} [NormedAddCommGroup EB] [NormedSpace ๐•œ EB] [TopologicalSpace HB] [ChartedSpace HB B] {IB : ModelWithCorners ๐•œ EB HB} {n : WithTop โ„•โˆž} [(x : B) โ†’ TopologicalSpace (E x)] [FiberBundle F E] {e : Trivialization F TotalSpace.proj} [Trivialization.IsLinear ๐•œ e] [VectorBundle ๐•œ F E] [ContMDiffVectorBundle n F E IB] (he : e.toOpenPartialHomeomorph โˆˆ StructureGroupoid.maximalAtlas (TotalSpace F E) (contMDiffFiberwiseLinear B F IB n)) {ฯƒ : (x : B) โ†’ E x} {bโ‚€ : B} (hbโ‚€ : bโ‚€ โˆˆ e.baseSet) :
    ContMDiffAt IB (IB.prod (modelWithCornersSelf ๐•œ F)) n (fun (x : B) => โŸจx, ฯƒ xโŸฉ) bโ‚€ โ†” ContMDiffAt IB (modelWithCornersSelf ๐•œ F) n (fun (x : B) => (โ†‘e โŸจx, ฯƒ xโŸฉ).2) bโ‚€

    A section of a C^n vector bundle is C^n at a point of the base set of a member of the maximal atlas of C^n trivializations exactly when its coordinate in that member is.

    theorem Bundle.Trivialization.contMDiffOn_section_iff_of_mem_maximalAtlas {๐•œ : Type u_1} {B : Type u_2} {F : Type u_3} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup F] [NormedSpace ๐•œ F] [TopologicalSpace B] {E : B โ†’ Type u_4} [TopologicalSpace (TotalSpace F E)] [(x : B) โ†’ AddCommMonoid (E x)] [(x : B) โ†’ Module ๐•œ (E x)] {EB : Type u_5} {HB : Type u_6} [NormedAddCommGroup EB] [NormedSpace ๐•œ EB] [TopologicalSpace HB] [ChartedSpace HB B] {IB : ModelWithCorners ๐•œ EB HB} {n : WithTop โ„•โˆž} [(x : B) โ†’ TopologicalSpace (E x)] [FiberBundle F E] {e : Trivialization F TotalSpace.proj} [Trivialization.IsLinear ๐•œ e] [VectorBundle ๐•œ F E] [ContMDiffVectorBundle n F E IB] (he : e.toOpenPartialHomeomorph โˆˆ StructureGroupoid.maximalAtlas (TotalSpace F E) (contMDiffFiberwiseLinear B F IB n)) {ฯƒ : (x : B) โ†’ E x} {a : Set B} (ha : a โІ e.baseSet) :
    ContMDiffOn IB (IB.prod (modelWithCornersSelf ๐•œ F)) n (fun (x : B) => โŸจx, ฯƒ xโŸฉ) a โ†” ContMDiffOn IB (modelWithCornersSelf ๐•œ F) n (fun (x : B) => (โ†‘e โŸจx, ฯƒ xโŸฉ).2) a

    A section of a C^n vector bundle is C^n on a subset of the base set of a member of the maximal atlas of C^n trivializations exactly when its coordinate in that member is.