Documentation

TauCeti.Topology.VectorBundle.Coordinates

Changing the coordinates of a bundle homomorphism #

ContinuousLinearMap.inCoordinates_eq_coordChangeL_comp changes both preferred trivializations used to read a continuous semilinear map between vector-bundle fibres. The source and target bundles may have different bases. This formula permits regularity proved in coordinates centred at a point to be transported to fixed trivializations. The corresponding range-transport theorem identifies the subspaces in different charts, as required for quotient-bundle coordinate changes. ContinuousLinearMap.inCoordinates_inverse reads the inverse of a fibre map in coordinates as the inverse of its coordinate expression, which reduces smoothness of fibrewise inverses to smoothness of inversion of continuous linear maps. ContinuousLinearMap.inCoordinates_eq_conjContinuousAlgEquiv reads an endomorphism of a fibre in coordinates as its conjugate by the fibre equivalence of the trivialization, an algebra isomorphism, so that coordinate expressions of algebraic expressions in fibre endomorphisms are the same algebraic expressions in their coordinate expressions. ContinuousLinearMap.isInvertible_inCoordinates_iff reads invertibility of a fibre map off its coordinate expression, ContinuousLinearMap.inCoordinates_comp reads a composite of fibre maps as the composite of their coordinate expressions, and ContinuousLinearMap.inCoordinates_id and ContinuousLinearMap.inCoordinates_smul read the identity map and scalar multiples in a compatible target vector-bundle structure, and ContinuousLinearMap.inCoordinates_finset_sum reads finite sums of fibre maps. ContinuousLinearMap.mem_ker_inCoordinates_iff, ContinuousLinearMap.mem_range_inCoordinates_iff and ContinuousLinearMap.finrank_range_inCoordinates read the kernel, the range and the rank of a fibre map off its coordinate expression, and ContinuousLinearMap.range_inCoordinates identifies the coordinate range with the trivialized range.

VectorBundleCore.localTriv_coordChangeL and VectorBundleCore.trivializationAt_coordChangeL identify transitions between actual trivializations with their core coordinate-change maps, and VectorBundleCore.coordChange_self_eq_id states the self-transition as an operator identity. The fibre instances VectorBundleCore.isTopologicalAddGroupFiber and VectorBundleCore.continuousSMulFiber make Mathlib's Hom bundle between two cores available. VectorBundleCore.inChartCoordinates expresses a fibre map between two cores in an arbitrary pair of source and target charts, not only the preferred charts of base points, and VectorBundleCore.inChartCoordinates_comp composes these expressions through any intermediate chart containing the base point. On the common domain of the two charts, VectorBundleCore.inChartCoordinates_eq_localTriv_comp reads the chart expression through the local trivializations of the two cores.

The construction follows Mathlib's ContinuousLinearMap.inCoordinates and Bundle.Trivialization.comp_continuousLinearEquivAt_eq_coord_change.

@[simp]
theorem VectorBundleCore.localTriv_coordChangeL {𝕜 : Type u_1} {B : Type u_2} {F : Type u_3} {κ : Type u_4} [NontriviallyNormedField 𝕜] [TopologicalSpace B] [NormedAddCommGroup F] [NormedSpace 𝕜 F] (Z : VectorBundleCore 𝕜 B F κ) {i j : κ} {x : B} (hx : x ∈ (Z.localTriv i).baseSet ∩ (Z.localTriv j).baseSet) :

A transition between core trivializations is the core coordinate-change map.

@[simp]
theorem VectorBundleCore.trivializationAt_coordChangeL {𝕜 : Type u_1} {B : Type u_2} {F : Type u_3} {κ : Type u_4} [NontriviallyNormedField 𝕜] [TopologicalSpace B] [NormedAddCommGroup F] [NormedSpace 𝕜 F] (Z : VectorBundleCore 𝕜 B F κ) {α β x : B} (hx : x ∈ (trivializationAt F Z.Fiber α).baseSet ∩ (trivializationAt F Z.Fiber β).baseSet) :

Preferred core trivializations use their selected core coordinate-change maps.

theorem VectorBundleCore.coordChange_self_eq_id {𝕜 : Type u_1} {B : Type u_2} {F : Type u_3} {κ : Type u_4} [NontriviallyNormedField 𝕜] [TopologicalSpace B] [NormedAddCommGroup F] [NormedSpace 𝕜 F] (Z : VectorBundleCore 𝕜 B F κ) {i : κ} {x : B} (hx : x ∈ Z.baseSet i) :

The transition from a chart to itself is the identity operator; the operator form of VectorBundleCore.coordChange_self.

instance VectorBundleCore.isTopologicalAddGroupFiber {𝕜 : Type u_1} {B : Type u_2} {F : Type u_3} {κ : Type u_4} [NontriviallyNormedField 𝕜] [TopologicalSpace B] [NormedAddCommGroup F] [NormedSpace 𝕜 F] (Z : VectorBundleCore 𝕜 B F κ) (x : B) :

The fibres of a vector bundle core are topological additive groups, as is the model fibre. This makes the Hom bundle between two cores available.

instance VectorBundleCore.continuousSMulFiber {𝕜 : Type u_1} {B : Type u_2} {F : Type u_3} {κ : Type u_4} [NontriviallyNormedField 𝕜] [TopologicalSpace B] [NormedAddCommGroup F] [NormedSpace 𝕜 F] (Z : VectorBundleCore 𝕜 B F κ) (x : B) :

Scalar multiplication on the fibres of a vector bundle core is continuous.

def VectorBundleCore.inChartCoordinates {𝕜 : Type u_1} {B : Type u_2} {F : Type u_3} {κ : Type u_4} [NontriviallyNormedField 𝕜] [TopologicalSpace B] [NormedAddCommGroup F] [NormedSpace 𝕜 F] {G : Type u_5} {ι : Type u_7} [NormedAddCommGroup G] [NormedSpace 𝕜 G] (Z : VectorBundleCore 𝕜 B F ι) (W : VectorBundleCore 𝕜 B G κ) (i : ι) (j : κ) (x : B) (ϕ : F →L[𝕜] G) :
F →L[𝕜] G

The expression of a fibre map ϕ over x in the source chart i and the target chart j. Unlike ContinuousLinearMap.inCoordinates, the charts need not be preferred charts of base points.

Instances For
    theorem VectorBundleCore.inChartCoordinates_def {𝕜 : Type u_1} {B : Type u_2} {F : Type u_3} {κ : Type u_4} [NontriviallyNormedField 𝕜] [TopologicalSpace B] [NormedAddCommGroup F] [NormedSpace 𝕜 F] {G : Type u_5} {ι : Type u_7} [NormedAddCommGroup G] [NormedSpace 𝕜 G] (Z : VectorBundleCore 𝕜 B F ι) (W : VectorBundleCore 𝕜 B G κ) (i : ι) (j : κ) (x : B) (ϕ : F →L[𝕜] G) :
    Z.inChartCoordinates W i j x ϕ = W.coordChange (W.indexAt x) j x ∘SL ϕ ∘SL Z.coordChange i (Z.indexAt x) x

    The chart expression of a fibre map is its composite with the transitions from the source chart and to the target chart.

    @[simp]
    theorem VectorBundleCore.inChartCoordinates_apply {𝕜 : Type u_1} {B : Type u_2} {F : Type u_3} {κ : Type u_4} [NontriviallyNormedField 𝕜] [TopologicalSpace B] [NormedAddCommGroup F] [NormedSpace 𝕜 F] {G : Type u_5} {ι : Type u_7} [NormedAddCommGroup G] [NormedSpace 𝕜 G] (Z : VectorBundleCore 𝕜 B F ι) (W : VectorBundleCore 𝕜 B G κ) (i : ι) (j : κ) (x : B) (ϕ : F →L[𝕜] G) (v : F) :
    (Z.inChartCoordinates W i j x ϕ) v = (W.coordChange (W.indexAt x) j x) (ϕ ((Z.coordChange i (Z.indexAt x) x) v))
    theorem VectorBundleCore.inChartCoordinates_eq_localTriv_comp {𝕜 : Type u_1} {B : Type u_2} {F : Type u_3} {κ : Type u_4} [NontriviallyNormedField 𝕜] [TopologicalSpace B] [NormedAddCommGroup F] [NormedSpace 𝕜 F] {G : Type u_5} {ι : Type u_7} [NormedAddCommGroup G] [NormedSpace 𝕜 G] {Z : VectorBundleCore 𝕜 B F ι} {W : VectorBundleCore 𝕜 B G κ} {i : ι} {j : κ} {x : B} (hi : x ∈ Z.baseSet i) (hj : x ∈ W.baseSet j) (f : F →L[𝕜] G) :

    On the common domain of a source chart and a target chart, reading a fibre map through the local trivializations of those charts gives its chart expression.

    @[simp]
    theorem VectorBundleCore.inChartCoordinates_indexAt {𝕜 : Type u_1} {B : Type u_2} {F : Type u_3} {κ : Type u_4} [NontriviallyNormedField 𝕜] [TopologicalSpace B] [NormedAddCommGroup F] [NormedSpace 𝕜 F] {G : Type u_5} {ι : Type u_7} [NormedAddCommGroup G] [NormedSpace 𝕜 G] (Z : VectorBundleCore 𝕜 B F ι) (W : VectorBundleCore 𝕜 B G κ) (x : B) (ϕ : F →L[𝕜] G) :
    Z.inChartCoordinates W (Z.indexAt x) (W.indexAt x) x ϕ = ϕ

    In the preferred charts the coordinate expression of a fibre map is the map itself.

    theorem VectorBundleCore.inChartCoordinates_comp {𝕜 : Type u_1} {B : Type u_2} {F : Type u_3} {κ : Type u_4} [NontriviallyNormedField 𝕜] [TopologicalSpace B] [NormedAddCommGroup F] [NormedSpace 𝕜 F] {G : Type u_5} {H : Type u_6} {ι : Type u_7} {ν : Type u_8} [NormedAddCommGroup G] [NormedSpace 𝕜 G] [NormedAddCommGroup H] [NormedSpace 𝕜 H] (Z : VectorBundleCore 𝕜 B F ι) (W : VectorBundleCore 𝕜 B G κ) (V : VectorBundleCore 𝕜 B H ν) (i : ι) {j : κ} (k : ν) {x : B} (hj : x ∈ W.baseSet j) (ψ : G →L[𝕜] H) (ϕ : F →L[𝕜] G) :
    Z.inChartCoordinates V i k x (ψ ∘SL ϕ) = W.inChartCoordinates V j k x ψ ∘SL Z.inChartCoordinates W i j x ϕ

    Coordinate expressions of a composite compose through any intermediate chart containing the base point.

    theorem ContinuousLinearMap.inCoordinates_eq_coordChangeL_comp {𝕜 : Type u_1} {𝕜' : Type u_2} [NontriviallyNormedField 𝕜] [NontriviallyNormedField 𝕜'] {σ : 𝕜 →+* 𝕜'} {B : Type u_3} [TopologicalSpace B] {B' : Type u_4} [TopologicalSpace B'] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {F' : Type u_6} [NormedAddCommGroup F'] [NormedSpace 𝕜' F'] {V : B → Type u_7} [(x : B) → AddCommMonoid (V x)] [(x : B) → Module 𝕜 (V x)] [(x : B) → TopologicalSpace (V x)] [TopologicalSpace (Bundle.TotalSpace F V)] [FiberBundle F V] [VectorBundle 𝕜 F V] {W : B' → Type u_8} [(x : B') → AddCommMonoid (W x)] [(x : B') → Module 𝕜' (W x)] [(x : B') → TopologicalSpace (W x)] [TopologicalSpace (Bundle.TotalSpace F' W)] [FiberBundle F' W] [VectorBundle 𝕜' F' W] {x₀ x₁ x : B} {y₀ y₁ y : B'} (ϕ : V x →SL[σ] W y) (hx₀ : x ∈ (trivializationAt F V x₀).baseSet) (hx₁ : x ∈ (trivializationAt F V x₁).baseSet) (hy₀ : y ∈ (trivializationAt F' W y₀).baseSet) (hy₁ : y ∈ (trivializationAt F' W y₁).baseSet) :
    inCoordinates F V F' W x₀ x y₀ y ϕ = ↑(Bundle.Trivialization.coordChangeL 𝕜' (trivializationAt F' W y₁) (trivializationAt F' W y₀) y) ∘SL inCoordinates F V F' W x₁ x y₁ y ϕ ∘SL ↑(Bundle.Trivialization.coordChangeL 𝕜 (trivializationAt F V x₀) (trivializationAt F V x₁) x)

    Changing the source and target trivializations pre- and post-composes the coordinate operator with the corresponding bundle transitions. All four trivializations must contain their respective fibre base points.

    theorem ContinuousLinearMap.map_range_inCoordinates_coordChangeL {𝕜 : Type u_1} {𝕜' : Type u_2} [NontriviallyNormedField 𝕜] [NontriviallyNormedField 𝕜'] {σ : 𝕜 →+* 𝕜'} {B : Type u_3} [TopologicalSpace B] {B' : Type u_4} [TopologicalSpace B'] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {F' : Type u_6} [NormedAddCommGroup F'] [NormedSpace 𝕜' F'] {V : B → Type u_7} [(x : B) → AddCommMonoid (V x)] [(x : B) → Module 𝕜 (V x)] [(x : B) → TopologicalSpace (V x)] [TopologicalSpace (Bundle.TotalSpace F V)] [FiberBundle F V] [VectorBundle 𝕜 F V] {W : B' → Type u_8} [(x : B') → AddCommMonoid (W x)] [(x : B') → Module 𝕜' (W x)] [(x : B') → TopologicalSpace (W x)] [TopologicalSpace (Bundle.TotalSpace F' W)] [FiberBundle F' W] [VectorBundle 𝕜' F' W] [RingHomSurjective σ] {x₀ x₁ x : B} {y₀ y₁ y : B'} (ϕ : V x →SL[σ] W y) (hx₀ : x ∈ (trivializationAt F V x₀).baseSet) (hx₁ : x ∈ (trivializationAt F V x₁).baseSet) (hy₀ : y ∈ (trivializationAt F' W y₀).baseSet) (hy₁ : y ∈ (trivializationAt F' W y₁).baseSet) :
    Submodule.map (↑↑(Bundle.Trivialization.coordChangeL 𝕜' (trivializationAt F' W y₀) (trivializationAt F' W y₁) y)) (↑(inCoordinates F V F' W x₀ x y₀ y ϕ)).range = (↑(inCoordinates F V F' W x₁ x y₁ y ϕ)).range

    Changing tangent or bundle coordinates transports an operator range by the target coordinate change. The source coordinate change is surjective and leaves the range unchanged.

    theorem ContinuousLinearMap.inCoordinates_id {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {B : Type u_3} [TopologicalSpace B] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : B → Type u_7} [(x : B) → AddCommMonoid (V x)] [(x : B) → Module 𝕜 (V x)] [(x : B) → TopologicalSpace (V x)] [TopologicalSpace (Bundle.TotalSpace F V)] [FiberBundle F V] [VectorBundle 𝕜 F V] {x₀ x : B} (hx : x ∈ (trivializationAt F V x₀).baseSet) :
    inCoordinates F V F V x₀ x x₀ x (ContinuousLinearMap.id 𝕜 (V x)) = ContinuousLinearMap.id 𝕜 F

    In a preferred trivialization whose base set contains x, the identity on V x reads as the identity on the model fibre F.

    theorem ContinuousLinearMap.inCoordinates_smul {𝕜 : Type u_1} {𝕜' : Type u_2} [NontriviallyNormedField 𝕜] [NontriviallyNormedField 𝕜'] {σ : 𝕜 →+* 𝕜'} {B : Type u_3} [TopologicalSpace B] {B' : Type u_4} [TopologicalSpace B'] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {F' : Type u_6} [NormedAddCommGroup F'] [NormedSpace 𝕜' F'] {V : B → Type u_7} [(x : B) → AddCommMonoid (V x)] [(x : B) → Module 𝕜 (V x)] [(x : B) → TopologicalSpace (V x)] [TopologicalSpace (Bundle.TotalSpace F V)] [FiberBundle F V] [VectorBundle 𝕜 F V] {W : B' → Type u_8} [(x : B') → AddCommMonoid (W x)] [(x : B') → Module 𝕜' (W x)] [(x : B') → TopologicalSpace (W x)] [TopologicalSpace (Bundle.TotalSpace F' W)] [FiberBundle F' W] [VectorBundle 𝕜' F' W] {𝕜'' : Type u_9} [NontriviallyNormedField 𝕜''] [NormedSpace 𝕜'' F'] [(y : B') → Module 𝕜'' (W y)] [VectorBundle 𝕜'' F' W] [SMulCommClass 𝕜' 𝕜'' F'] {x₀ x : B} {y₀ y : B'} [SMulCommClass 𝕜' 𝕜'' (W y)] [ContinuousConstSMul 𝕜'' (W y)] (c : 𝕜'') (ϕ : V x →SL[σ] W y) :
    inCoordinates F V F' W x₀ x y₀ y (c • ϕ) = c • inCoordinates F V F' W x₀ x y₀ y ϕ

    inCoordinates commutes with scalar multiplication by any c : 𝕜'' from a compatible VectorBundle 𝕜'' F' W structure. Both sides vanish when y is outside the base set of the target trivialization.

    theorem ContinuousLinearMap.inCoordinates_inverse {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {B : Type u_2} [TopologicalSpace B] {B' : Type u_3} [TopologicalSpace B'] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {F' : Type u_5} [NormedAddCommGroup F'] [NormedSpace 𝕜 F'] {V : B → Type u_6} [(x : B) → AddCommMonoid (V x)] [(x : B) → Module 𝕜 (V x)] [(x : B) → TopologicalSpace (V x)] [TopologicalSpace (Bundle.TotalSpace F V)] [FiberBundle F V] [VectorBundle 𝕜 F V] {W : B' → Type u_7} [(x : B') → AddCommMonoid (W x)] [(x : B') → Module 𝕜 (W x)] [(x : B') → TopologicalSpace (W x)] [TopologicalSpace (Bundle.TotalSpace F' W)] [FiberBundle F' W] [VectorBundle 𝕜 F' W] {x₀ x : B} {y₀ y : B'} (ϕ : V x →L[𝕜] W y) :
    inCoordinates F' W F V y₀ y x₀ x ϕ.inverse = (inCoordinates F V F' W x₀ x y₀ y ϕ).inverse

    The inverse of a continuous linear map between fibres reads as the inverse of its coordinate expression. No invertibility is assumed: both sides vanish when the map is not invertible, and also when x or y lies outside the base set of the respective trivialization.

    theorem ContinuousLinearMap.isInvertible_inCoordinates_iff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {B : Type u_2} [TopologicalSpace B] {B' : Type u_3} [TopologicalSpace B'] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {F' : Type u_5} [NormedAddCommGroup F'] [NormedSpace 𝕜 F'] {V : B → Type u_6} [(x : B) → AddCommMonoid (V x)] [(x : B) → Module 𝕜 (V x)] [(x : B) → TopologicalSpace (V x)] [TopologicalSpace (Bundle.TotalSpace F V)] [FiberBundle F V] [VectorBundle 𝕜 F V] {W : B' → Type u_7} [(x : B') → AddCommMonoid (W x)] [(x : B') → Module 𝕜 (W x)] [(x : B') → TopologicalSpace (W x)] [TopologicalSpace (Bundle.TotalSpace F' W)] [FiberBundle F' W] [VectorBundle 𝕜 F' W] {x₀ x : B} {y₀ y : B'} {ϕ : V x →L[𝕜] W y} (hx : x ∈ (trivializationAt F V x₀).baseSet) (hy : y ∈ (trivializationAt F' W y₀).baseSet) :
    (inCoordinates F V F' W x₀ x y₀ y ϕ).IsInvertible ↔ ϕ.IsInvertible

    In trivializations whose base sets contain the two fibre base points, a continuous linear map between fibres is invertible exactly when its coordinate expression is.

    theorem ContinuousLinearMap.inCoordinates_eq_conjContinuousAlgEquiv {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {B : Type u_2} [TopologicalSpace B] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : B → Type u_4} [(x : B) → AddCommGroup (V x)] [(x : B) → Module 𝕜 (V x)] [(x : B) → TopologicalSpace (V x)] [∀ (x : B), IsTopologicalAddGroup (V x)] [∀ (x : B), ContinuousConstSMul 𝕜 (V x)] [TopologicalSpace (Bundle.TotalSpace F V)] [FiberBundle F V] [VectorBundle 𝕜 F V] {x₀ x : B} (hx : x ∈ (trivializationAt F V x₀).baseSet) (A : V x →L[𝕜] V x) :

    In a preferred trivialization whose base set contains x, reading an endomorphism of V x in coordinates is conjugation by the fibre equivalence of the trivialization, an algebra isomorphism (V x →L[𝕜] V x) ≃A[𝕜] (F →L[𝕜] F).

    theorem ContinuousLinearMap.mem_ker_inCoordinates_iff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {B : Type u_2} [TopologicalSpace B] {B' : Type u_3} [TopologicalSpace B'] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {F' : Type u_5} [NormedAddCommGroup F'] [NormedSpace 𝕜 F'] {V : B → Type u_6} [(x : B) → AddCommGroup (V x)] [(x : B) → Module 𝕜 (V x)] [(x : B) → TopologicalSpace (V x)] [TopologicalSpace (Bundle.TotalSpace F V)] [FiberBundle F V] [VectorBundle 𝕜 F V] {W : B' → Type u_7} [(x : B') → AddCommGroup (W x)] [(x : B') → Module 𝕜 (W x)] [(x : B') → TopologicalSpace (W x)] [TopologicalSpace (Bundle.TotalSpace F' W)] [FiberBundle F' W] [VectorBundle 𝕜 F' W] {x₀ x : B} {y₀ y : B'} {ϕ : V x →L[𝕜] W y} (hx : x ∈ (trivializationAt F V x₀).baseSet) (hy : y ∈ (trivializationAt F' W y₀).baseSet) (v : F) :
    v ∈ (↑(inCoordinates F V F' W x₀ x y₀ y ϕ)).ker ↔ (trivializationAt F V x₀).symm x v ∈ (↑ϕ).ker

    In trivializations whose base sets contain the two fibre base points, a model vector lies in the kernel of the coordinate expression of a fibre map exactly when the corresponding fibre vector lies in the kernel of the map.

    theorem ContinuousLinearMap.mem_range_inCoordinates_iff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {B : Type u_2} [TopologicalSpace B] {B' : Type u_3} [TopologicalSpace B'] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {F' : Type u_5} [NormedAddCommGroup F'] [NormedSpace 𝕜 F'] {V : B → Type u_6} [(x : B) → AddCommGroup (V x)] [(x : B) → Module 𝕜 (V x)] [(x : B) → TopologicalSpace (V x)] [TopologicalSpace (Bundle.TotalSpace F V)] [FiberBundle F V] [VectorBundle 𝕜 F V] {W : B' → Type u_7} [(x : B') → AddCommGroup (W x)] [(x : B') → Module 𝕜 (W x)] [(x : B') → TopologicalSpace (W x)] [TopologicalSpace (Bundle.TotalSpace F' W)] [FiberBundle F' W] [VectorBundle 𝕜 F' W] {x₀ x : B} {y₀ y : B'} {ϕ : V x →L[𝕜] W y} (hx : x ∈ (trivializationAt F V x₀).baseSet) (hy : y ∈ (trivializationAt F' W y₀).baseSet) (w : F') :
    w ∈ (↑(inCoordinates F V F' W x₀ x y₀ y ϕ)).range ↔ (trivializationAt F' W y₀).symm y w ∈ (↑ϕ).range

    In trivializations whose base sets contain the two fibre base points, a model vector lies in the range of the coordinate expression of a fibre map exactly when the corresponding fibre vector lies in the range of the map.

    theorem ContinuousLinearMap.range_inCoordinates {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {B : Type u_2} [TopologicalSpace B] {B' : Type u_3} [TopologicalSpace B'] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {F' : Type u_5} [NormedAddCommGroup F'] [NormedSpace 𝕜 F'] {V : B → Type u_6} [(x : B) → AddCommGroup (V x)] [(x : B) → Module 𝕜 (V x)] [(x : B) → TopologicalSpace (V x)] [TopologicalSpace (Bundle.TotalSpace F V)] [FiberBundle F V] [VectorBundle 𝕜 F V] {W : B' → Type u_7} [(x : B') → AddCommGroup (W x)] [(x : B') → Module 𝕜 (W x)] [(x : B') → TopologicalSpace (W x)] [TopologicalSpace (Bundle.TotalSpace F' W)] [FiberBundle F' W] [VectorBundle 𝕜 F' W] {x₀ x : B} {y₀ y : B'} {ϕ : V x →L[𝕜] W y} (hx : x ∈ (trivializationAt F V x₀).baseSet) (hy : y ∈ (trivializationAt F' W y₀).baseSet) :
    (↑(inCoordinates F V F' W x₀ x y₀ y ϕ)).range = Submodule.map (↑↑(Bundle.Trivialization.continuousLinearEquivAt 𝕜 (trivializationAt F' W y₀) y hy)) (↑ϕ).range

    In trivializations whose base sets contain the two fibre base points, the range of the coordinate expression of a fibre map is the image of its range under the trivialization of the target bundle at the target base point.

    theorem ContinuousLinearMap.finrank_range_inCoordinates {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {B : Type u_2} [TopologicalSpace B] {B' : Type u_3} [TopologicalSpace B'] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {F' : Type u_5} [NormedAddCommGroup F'] [NormedSpace 𝕜 F'] {V : B → Type u_6} [(x : B) → AddCommGroup (V x)] [(x : B) → Module 𝕜 (V x)] [(x : B) → TopologicalSpace (V x)] [TopologicalSpace (Bundle.TotalSpace F V)] [FiberBundle F V] [VectorBundle 𝕜 F V] {W : B' → Type u_7} [(x : B') → AddCommGroup (W x)] [(x : B') → Module 𝕜 (W x)] [(x : B') → TopologicalSpace (W x)] [TopologicalSpace (Bundle.TotalSpace F' W)] [FiberBundle F' W] [VectorBundle 𝕜 F' W] {x₀ x : B} {y₀ y : B'} {ϕ : V x →L[𝕜] W y} (hx : x ∈ (trivializationAt F V x₀).baseSet) (hy : y ∈ (trivializationAt F' W y₀).baseSet) :
    Module.finrank 𝕜 ↥(↑(inCoordinates F V F' W x₀ x y₀ y ϕ)).range = Module.finrank 𝕜 ↥(↑ϕ).range

    In trivializations whose base sets contain the two fibre base points, the coordinate expression of a fibre map has the rank of the map.

    theorem ContinuousLinearMap.inCoordinates_comp {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {B : Type u_2} [TopologicalSpace B] {B' : Type u_3} [TopologicalSpace B'] {B'' : Type u_4} [TopologicalSpace B''] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {F' : Type u_6} [NormedAddCommGroup F'] [NormedSpace 𝕜 F'] {F'' : Type u_7} [NormedAddCommGroup F''] [NormedSpace 𝕜 F''] {V : B → Type u_8} [(x : B) → AddCommMonoid (V x)] [(x : B) → Module 𝕜 (V x)] [(x : B) → TopologicalSpace (V x)] [TopologicalSpace (Bundle.TotalSpace F V)] [FiberBundle F V] [VectorBundle 𝕜 F V] {W : B' → Type u_9} [(x : B') → AddCommMonoid (W x)] [(x : B') → Module 𝕜 (W x)] [(x : B') → TopologicalSpace (W x)] [TopologicalSpace (Bundle.TotalSpace F' W)] [FiberBundle F' W] [VectorBundle 𝕜 F' W] {U : B'' → Type u_10} [(x : B'') → AddCommMonoid (U x)] [(x : B'') → Module 𝕜 (U x)] [(x : B'') → TopologicalSpace (U x)] [TopologicalSpace (Bundle.TotalSpace F'' U)] [FiberBundle F'' U] [VectorBundle 𝕜 F'' U] {x₀ x : B} {y₀ y : B'} {z₀ z : B''} (ψ : W y →L[𝕜] U z) (ϕ : V x →L[𝕜] W y) (hy : y ∈ (trivializationAt F' W y₀).baseSet) :
    inCoordinates F V F'' U x₀ x z₀ z (ψ ∘SL ϕ) = inCoordinates F' W F'' U y₀ y z₀ z ψ ∘SL inCoordinates F V F' W x₀ x y₀ y ϕ

    The coordinate expression of a composite is the composite of the coordinate expressions, provided the trivialization of the middle bundle contains the middle fibre base point.

    theorem ContinuousLinearMap.inCoordinates_finset_sum {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {B : Type u_2} [TopologicalSpace B] {B' : Type u_3} [TopologicalSpace B'] {F : Type u_4} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {F' : Type u_5} [NormedAddCommGroup F'] [NormedSpace 𝕜 F'] {V : B → Type u_6} [(x : B) → AddCommMonoid (V x)] [(x : B) → Module 𝕜 (V x)] [(x : B) → TopologicalSpace (V x)] [TopologicalSpace (Bundle.TotalSpace F V)] [FiberBundle F V] [VectorBundle 𝕜 F V] {W : B' → Type u_7} [(x : B') → AddCommMonoid (W x)] [(x : B') → Module 𝕜 (W x)] [(x : B') → TopologicalSpace (W x)] [∀ (x : B'), ContinuousAdd (W x)] [TopologicalSpace (Bundle.TotalSpace F' W)] [FiberBundle F' W] [VectorBundle 𝕜 F' W] {ι : Type u_8} (s : Finset ι) {x₀ x : B} {y₀ y : B'} (ϕ : ι → V x →L[𝕜] W y) :
    inCoordinates F V F' W x₀ x y₀ y (∑ i ∈ s, ϕ i) = ∑ i ∈ s, inCoordinates F V F' W x₀ x y₀ y (ϕ i)

    The coordinate expression of a finite sum of fibre maps is the sum of their coordinate expressions.