Documentation

Mathlib.Geometry.Manifold.VectorBundle.LocalFrame

Local frames in a vector bundle #

Let V → M be a finite rank smooth vector bundle with standard fiber F. A family of sections s i of V → M is called a C^k local frame on a set U ⊆ M iff each section s i is C^k on U, and the section values s i x form a basis for each x ∈ U. We define a predicate IsLocalFrame for a collection of sections to be a local frame on a set, and define basic notions (such as the coefficients of a section w.r.t. a local frame, and checking the smoothness of t via its coefficients in a local frame).

Given a basis b for F and a local trivialisation e for V, we construct a smooth local frame on V w.r.t. e and b, i.e. a collection of sections sᵢ of V which is smooth on e.baseSet such that {sᵢ x} is a basis of V x for each x ∈ e.baseSet. Any section s of e can be uniquely written as s = ∑ i, f^i sᵢ near x, and s is smooth at x iff the functions f^i are.

In this file, we prove the latter statement for finite-rank bundles (with coefficients in a complete field). In the planned file Mathlib/Geometry/Manifold/VectorBundle/OrthonormalFrame.lean (#26221), we will prove the same for real vector bundles of any rank which admit a C^n bundle metric. This includes bundles of finite rank, modelled on a Hilbert space or on a Banach space which has smooth partitions of unity.

We will use this to construct local extensions of a vector to a section which is smooth on the trivialisation domain.

Main definitions and results #

Suppose {sᵢ} is a local frame on U, and hs : IsLocalFrameOn s U.

In the following lemmas, let e be a compatible local trivialisation of V, and b a basis of the model fiber F.

Note #

This file proves smoothness criteria in terms of coefficients for local frames induced by a trivialization. A fully frame-intrinsic converse for IsLocalFrameOn will be added later.

Implementation notes #

Local frames use the junk value pattern: they are defined on all of M, but their value is only meaningful on the set on which they are a local frame.

Tags #

vector bundle, local frame, smoothness

structure IsLocalFrameOn {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] (I : ModelWithCorners 𝕜 E H) {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] (F : Type u_5) [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} (n : WithTop ℕ∞) (s : ι(x : M) → V x) (u : Set M) :

A family of sections s i of V → M is called a C^k local frame on a set U ⊆ M iff

  • the section values s i x form a basis for each x ∈ U,
  • each section s i is C^k on U.
Instances For
    theorem IsLocalFrameOn.congr {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s s' : ι(x : M) → V x} {u : Set M} {n : WithTop ℕ∞} (hs : IsLocalFrameOn I F n s u) (hs' : ∀ (i : ι), xu, s i x = s' i x) :
    IsLocalFrameOn I F n s' u

    If s = s' on u and s i is a local frame on u, then so is s'.

    theorem IsLocalFrameOn.mono {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u u' : Set M} {n : WithTop ℕ∞} (hs : IsLocalFrameOn I F n s u) (hu'u : u' u) :
    IsLocalFrameOn I F n s u'
    theorem IsLocalFrameOn.contMDiffAt {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {x : M} {n : WithTop ℕ∞} (hs : IsLocalFrameOn I F n s u) (hu : IsOpen u) (hx : x u) (i : ι) :
    ContMDiffAt I (I.prod (modelWithCornersSelf 𝕜 F)) n (fun (x : M) => x, s i x) x
    noncomputable def IsLocalFrameOn.toBasisAt {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {x : M} {n : WithTop ℕ∞} (hs : IsLocalFrameOn I F n s u) (hx : x u) :
    Module.Basis ι 𝕜 (V x)

    Given a local frame {s i} on U ∋ x, returns the basis {s i} of V x

    Equations
    Instances For
      @[simp]
      theorem IsLocalFrameOn.toBasisAt_coe {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {x : M} {n : WithTop ℕ∞} (hs : IsLocalFrameOn I F n s u) (hx : x u) (i : ι) :
      (hs.toBasisAt hx) i = s i x
      @[implicit_reducible]
      noncomputable def IsLocalFrameOn.fintypeOfFiniteDimensional {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {x : M} {n : WithTop ℕ∞} [VectorBundle 𝕜 F V] [FiniteDimensional 𝕜 F] (hs : IsLocalFrameOn I F n s u) (hx : x u) :

      If {sᵢ} is a local frame on a vector bundle, F being finite-dimensional implies the indexing set being finite.

      Equations
      Instances For
        @[deprecated IsLocalFrameOn.fintypeOfFiniteDimensional (since := "2025-12-19")]
        def IsLocalFrameOn.fintype_of_finiteDimensional {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {x : M} {n : WithTop ℕ∞} [VectorBundle 𝕜 F V] [FiniteDimensional 𝕜 F] (hs : IsLocalFrameOn I F n s u) (hx : x u) :

        Alias of IsLocalFrameOn.fintypeOfFiniteDimensional.


        If {sᵢ} is a local frame on a vector bundle, F being finite-dimensional implies the indexing set being finite.

        Equations
        Instances For
          noncomputable def IsLocalFrameOn.coeff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {n : WithTop ℕ∞} (hs : IsLocalFrameOn I F n s u) (i : ι) (x : M) :
          V x →ₗ[𝕜] 𝕜

          Coefficients of a section s of V w.r.t. a local frame {s i} on u. Outside of u, this returns the junk value 0.

          Equations
          Instances For
            @[simp]
            theorem IsLocalFrameOn.coeff_apply_of_notMem {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {n : WithTop ℕ∞} {x : M} (hs : IsLocalFrameOn I F n s u) (hx : xu) (i : ι) :
            hs.coeff i x = 0
            @[simp]
            theorem IsLocalFrameOn.coeff_apply_of_mem {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {n : WithTop ℕ∞} {x : M} (hs : IsLocalFrameOn I F n s u) (hx : x u) (t : (x : M) → V x) (i : ι) :
            (hs.coeff i x) (t x) = ((hs.toBasisAt hx).repr (t x)) i
            theorem IsLocalFrameOn.coeff_sum_eq {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {n : WithTop ℕ∞} {x : M} [Fintype ι] (hs : IsLocalFrameOn I F n s u) (t : (x : M) → V x) (hx : x u) :
            t x = i : ι, (hs.coeff i x) (t x) s i x
            theorem IsLocalFrameOn.eq_of_coeff_eq {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {n : WithTop ℕ∞} {x : M} [Finite ι] (hs : IsLocalFrameOn I F n s u) (hx : x u) {t t' : (x : M) → V x} (h : ∀ (i : ι), (hs.coeff i x) (t x) = (hs.coeff i x) (t' x)) :
            t x = t' x
            theorem IsLocalFrameOn.eventually_eq_sum_coeff_smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {n : WithTop ℕ∞} {x : M} [Fintype ι] (hs : IsLocalFrameOn I F n s u) (t : (x : M) → V x) (hu'' : u nhds x) :
            ∀ᶠ (x' : M) in nhds x, t x' = i : ι, (hs.coeff i x') (t x') s i x'

            A local frame locally spans the space of sections for V: for each local frame s i on an open set u around x, we have t = ∑ i, hs.coeff i x (t x) • (s i x) near x.

            theorem IsLocalFrameOn.coeff_congr {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {n : WithTop ℕ∞} {x : M} {t t' : (x : M) → V x} (hs : IsLocalFrameOn I F n s u) (htt' : t x = t' x) (i : ι) :
            (hs.coeff i x) (t x) = (hs.coeff i x) (t' x)

            The coefficients of t in a local frame at x only depend on t at x.

            theorem IsLocalFrameOn.coeff_eq_of_eq {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s s' : ι(x : M) → V x} {u : Set M} {n : WithTop ℕ∞} {x : M} (hs : IsLocalFrameOn I F n s u) (hs' : IsLocalFrameOn I F n s' u) (hss' : ∀ (i : ι), s i x = s' i x) {t : (x : M) → V x} (i : ι) :
            (hs.coeff i x) (t x) = (hs'.coeff i x) (t x)

            If s and s' are local frames which are equal at x, a section t has equal frame coefficients in them.

            theorem IsLocalFrameOn.eq_iff_coeff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {n : WithTop ℕ∞} {x : M} {t t' : (x : M) → V x} [VectorBundle 𝕜 F V] [FiniteDimensional 𝕜 F] (hs : IsLocalFrameOn I F n s u) (hx : x u) :
            t x = t' x ∀ (i : ι), (hs.coeff i x) (t x) = (hs.coeff i x) (t' x)

            Two sections s and t are equal at x if and only if their coefficients w.r.t. some local frame at x agree.

            theorem IsLocalFrameOn.contMDiffOn_of_coeff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {n : WithTop ℕ∞} {t : (x : M) → V x} (hs : IsLocalFrameOn I F n s u) [VectorBundle 𝕜 F V] [FiniteDimensional 𝕜 F] (h : ∀ (i : ι), ContMDiffOn I (modelWithCornersSelf 𝕜 𝕜) n ((LinearMap.piApply (hs.coeff i)) t) u) :
            ContMDiffOn I (I.prod (modelWithCornersSelf 𝕜 F)) n (fun (x : M) => x, t x) u

            Given a local frame s i on u, if a section t has C^k coefficients on u w.r.t. s i, then t is C^n on u.

            theorem IsLocalFrameOn.contMDiffAt_of_coeff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {n : WithTop ℕ∞} {x : M} {t : (x : M) → V x} (hs : IsLocalFrameOn I F n s u) [VectorBundle 𝕜 F V] [FiniteDimensional 𝕜 F] (h : ∀ (i : ι), ContMDiffAt I (modelWithCornersSelf 𝕜 𝕜) n ((LinearMap.piApply (hs.coeff i)) t) x) (hu : u nhds x) :
            ContMDiffAt I (I.prod (modelWithCornersSelf 𝕜 F)) n (fun (x : M) => x, t x) x

            Given a local frame s i on a neighbourhood u of x, if a section t has C^k coefficients at x w.r.t. s i, then t is C^n at x.

            theorem IsLocalFrameOn.contMDiffAt_of_coeff_aux {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {n : WithTop ℕ∞} {x : M} {t : (x : M) → V x} (hs : IsLocalFrameOn I F n s u) [VectorBundle 𝕜 F V] [FiniteDimensional 𝕜 F] (h : ∀ (i : ι), ContMDiffAt I (modelWithCornersSelf 𝕜 𝕜) n ((LinearMap.piApply (hs.coeff i)) t) x) (hu : IsOpen u) (hx : x u) :
            ContMDiffAt I (I.prod (modelWithCornersSelf 𝕜 F)) n (fun (x : M) => x, t x) x

            Given a local frame s i on an open set u containing x, if a section t has C^k coefficients at x ∈ u w.r.t. s i, then t is C^n at x.

            theorem IsLocalFrameOn.mdifferentiableOn_of_coeff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {t : (x : M) → V x} [VectorBundle 𝕜 F V] (hs : IsLocalFrameOn I F 1 s u) [FiniteDimensional 𝕜 F] (h : ∀ (i : ι), MDifferentiableOn I (modelWithCornersSelf 𝕜 𝕜) ((LinearMap.piApply (hs.coeff i)) t) u) :
            MDifferentiableOn I (I.prod (modelWithCornersSelf 𝕜 F)) (fun (x : M) => x, t x) u

            Given a local frame s i on u, if a section t has differentiable coefficients on u w.r.t. s i, then t is differentiable on u.

            theorem IsLocalFrameOn.mdifferentiableAt_of_coeff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {x : M} {t : (x : M) → V x} [VectorBundle 𝕜 F V] (hs : IsLocalFrameOn I F 1 s u) [FiniteDimensional 𝕜 F] (h : ∀ (i : ι), MDiffAt ((LinearMap.piApply (hs.coeff i)) t) x) (hu : u nhds x) :
            MDiffAt (T% t) x

            Given a local frame s i on a neighbourhood u of x, if a section t has differentiable coefficients at x w.r.t. s i, then t is differentiable at x.

            theorem IsLocalFrameOn.mdifferentiableAt_of_coeff_aux {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] {ι : Type u_7} {s : ι(x : M) → V x} {u : Set M} {x : M} {t : (x : M) → V x} [VectorBundle 𝕜 F V] (hs : IsLocalFrameOn I F 1 s u) [FiniteDimensional 𝕜 F] (h : ∀ (i : ι), MDiffAt ((LinearMap.piApply (hs.coeff i)) t) x) (hu : IsOpen u) (hx : x u) :
            MDiffAt (T% t) x

            Given a local frame s i on open set u containing x, if a section t has differentiable coefficients at x ∈ u w.r.t. s i, then t is differentiable at x.

            noncomputable def Bundle.Trivialization.basisAt {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {M : Type u_4} [TopologicalSpace M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] {ι : Type u_7} {x : M} (e : Trivialization F TotalSpace.proj) [MemTrivializationAtlas e] (b : Module.Basis ι 𝕜 F) (hx : x e.baseSet) :
            Module.Basis ι 𝕜 (V x)

            Given a compatible local trivialisation e of V and a basis b of the model fiber F, return the corresponding basis of V x.

            Equations
            Instances For
              noncomputable def Bundle.Trivialization.localFrame {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {M : Type u_4} [TopologicalSpace M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] {ι : Type u_7} (e : Trivialization F TotalSpace.proj) [MemTrivializationAtlas e] (b : Module.Basis ι 𝕜 F) :
              ι(x : M) → V x

              The local frame on V induced by a compatible local trivialization e of V and a basis b of the model fiber F. Use e.localFrame b i to access the i-th section in that frame.

              If x is outside of e.baseSet, this returns the junk value 0.

              Equations
              Instances For
                @[simp]
                theorem Bundle.Trivialization.localFrame_apply_of_mem_baseSet {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {M : Type u_4} [TopologicalSpace M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] {ι : Type u_7} {x : M} (e : Trivialization F TotalSpace.proj) [MemTrivializationAtlas e] (b : Module.Basis ι 𝕜 F) {i : ι} (hx : x e.baseSet) :
                e.localFrame b i x = (e.basisAt b hx) i
                theorem Bundle.Trivialization.localFrame_apply_of_notMem {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {M : Type u_4} [TopologicalSpace M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] {ι : Type u_7} {x : M} (e : Trivialization F TotalSpace.proj) [MemTrivializationAtlas e] (b : Module.Basis ι 𝕜 F) {i : ι} (hx : xe.baseSet) :
                e.localFrame b i x = 0
                theorem Bundle.Trivialization.contMDiffOn_localFrame_baseSet {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] (n : WithTop ℕ∞) {V : MType u_6} [TopologicalSpace (TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] [ContMDiffVectorBundle n F V I] {ι : Type u_7} (e : Trivialization F TotalSpace.proj) [MemTrivializationAtlas e] (b : Module.Basis ι 𝕜 F) (i : ι) :
                ContMDiffOn I (I.prod (modelWithCornersSelf 𝕜 F)) n (fun (x : M) => x, e.localFrame b i x) e.baseSet

                Each local frame {sᵢ} ∈ Γ(E) of a C^k vector bundle, defined by a local trivialisation e, is C^k on e.baseSet.

                theorem Bundle.Trivialization.isLocalFrameOn_localFrame_baseSet {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] (I : ModelWithCorners 𝕜 E H) {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] (n : WithTop ℕ∞) {V : MType u_6} [TopologicalSpace (TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] [ContMDiffVectorBundle n F V I] {ι : Type u_7} (e : Trivialization F TotalSpace.proj) [MemTrivializationAtlas e] (b : Module.Basis ι 𝕜 F) :

                b.localFrame e i is indeed a local frame on e.baseSet

                theorem contMDiffAt_localFrame_of_mem {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] (n : WithTop ℕ∞) {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] [ContMDiffVectorBundle n F V I] {ι : Type u_7} {x : M} (e : Bundle.Trivialization F Bundle.TotalSpace.proj) [MemTrivializationAtlas e] (b : Module.Basis ι 𝕜 F) (i : ι) (hx : x e.baseSet) :
                ContMDiffAt I (I.prod (modelWithCornersSelf 𝕜 F)) n (fun (x : M) => x, e.localFrame b i x) x
                noncomputable def Bundle.Trivialization.localFrame_coeff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] (I : ModelWithCorners 𝕜 E H) {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] {ι : Type u_7} (e : Trivialization F TotalSpace.proj) [MemTrivializationAtlas e] (b : Module.Basis ι 𝕜 F) [ContMDiffVectorBundle 1 F V I] (i : ι) (x : M) :
                V x →ₗ[𝕜] 𝕜

                Coefficients of a section s of V w.r.t. the local frame b.localFrame e i.

                If x is outside of e.baseSet, this returns the junk value 0.

                Equations
                Instances For
                  @[simp]
                  theorem Bundle.Trivialization.localFrame_coeff_apply_of_notMem_baseSet {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] {ι : Type u_7} (e : Trivialization F TotalSpace.proj) [MemTrivializationAtlas e] (b : Module.Basis ι 𝕜 F) [ContMDiffVectorBundle 1 F V I] {x : M} (hx : xe.baseSet) (i : ι) :
                  localFrame_coeff I e b i x = 0
                  @[simp]
                  theorem Bundle.Trivialization.localFrame_coeff_apply_of_mem_baseSet {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] {ι : Type u_7} (e : Trivialization F TotalSpace.proj) [MemTrivializationAtlas e] (b : Module.Basis ι 𝕜 F) [ContMDiffVectorBundle 1 F V I] {x : M} (hx : x e.baseSet) (s : (x : M) → V x) (i : ι) :
                  (localFrame_coeff I e b i x) (s x) = ((e.basisAt b hx).repr (s x)) i
                  theorem Bundle.Trivialization.eq_sum_localFrame_coeff_smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] {ι : Type u_7} {e : Trivialization F TotalSpace.proj} [MemTrivializationAtlas e] {b : Module.Basis ι 𝕜 F} [ContMDiffVectorBundle 1 F V I] {x' : M} {s : (x : M) → V x} [Fintype ι] (hx : x' e.baseSet) :
                  s x' = i : ι, (localFrame_coeff I e b i x') (s x') e.localFrame b i x'
                  theorem Bundle.Trivialization.eventually_eq_localFrame_sum_coeff_smul {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] {ι : Type u_7} (e : Trivialization F TotalSpace.proj) [MemTrivializationAtlas e] (b : Module.Basis ι 𝕜 F) [ContMDiffVectorBundle 1 F V I] {x : M} {s : (x : M) → V x} [Fintype ι] (hxe : x e.baseSet) :
                  ∀ᶠ (x' : M) in nhds x, s x' = i : ι, (localFrame_coeff I e b i x') (s x') e.localFrame b i x'

                  A local frame locally spans the space of sections for V: for each local trivialisation e of V around x, we have s = ∑ i, (LinearMap.piApply (b.localFrame_coeff e i) s) • b.localFrame e i near x.

                  theorem Bundle.Trivialization.localFrame_coeff_congr {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] {ι : Type u_7} (e : Trivialization F TotalSpace.proj) [MemTrivializationAtlas e] (b : Module.Basis ι 𝕜 F) [ContMDiffVectorBundle 1 F V I] {x : M} {s s' : (x : M) → V x} {i : ι} (hss' : s x = s' x) :
                  (localFrame_coeff I e b i x) (s x) = (localFrame_coeff I e b i x) (s' x)

                  The representation of s in a local frame at x only depends on s at x.

                  theorem Bundle.Trivialization.localFrame_coeff_eq_coeff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] {ι : Type u_7} (e : Trivialization F TotalSpace.proj) [MemTrivializationAtlas e] {b : Module.Basis ι 𝕜 F} [ContMDiffVectorBundle 1 F V I] {x : M} {s : (x : M) → V x} (hxe : x e.baseSet) {i : ι} :
                  (localFrame_coeff I e b i x) (s x) = (b.repr (e ((fun (x : M) => x, s x) x)).2) i

                  Suppose e is a compatible trivialisation around x ∈ M, and s a bundle section. Then the coefficient of s w.r.t. the local frame induced by b and e equals the cofficient of "s x read in the trivialisation e" for b i.

                  Determining smoothness of a section via its local frame coefficients #

                  We show that for finite rank bundles over a complete field, a section is smooth iff its coefficients in a local frame induced by a local trivialisation are. In many contexts, this statement holds for any local frame (e.g., for all real bundles which admit a continuous bundle metric, as is proven in OrthonormalFrame.lean).

                  theorem contMDiffAt_localFrame_coeff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] [ContMDiffVectorBundle 1 F V I] {e : Bundle.Trivialization F Bundle.TotalSpace.proj} [MemTrivializationAtlas e] {ι : Type u_7} (b : Module.Basis ι 𝕜 F) {s : (x : M) → V x} {k : WithTop ℕ∞} {x : M} [FiniteDimensional 𝕜 F] [CompleteSpace 𝕜] [ContMDiffVectorBundle k F V I] (hxe : x e.baseSet) (hs : ContMDiffAt I (I.prod (modelWithCornersSelf 𝕜 F)) k (fun (x : M) => x, s x) x) (i : ι) :

                  If s is C^k at x, so is its coefficient b.localFrame_coeff e i in the local frame near x induced by e and b

                  theorem contMDiffOn_localFrame_coeff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] [ContMDiffVectorBundle 1 F V I] {e : Bundle.Trivialization F Bundle.TotalSpace.proj} [MemTrivializationAtlas e] {ι : Type u_7} (b : Module.Basis ι 𝕜 F) {s : (x : M) → V x} {t : Set M} {k : WithTop ℕ∞} [FiniteDimensional 𝕜 F] [CompleteSpace 𝕜] [ContMDiffVectorBundle k F V I] (ht : IsOpen t) (ht' : t e.baseSet) (hs : ContMDiffOn I (I.prod (modelWithCornersSelf 𝕜 F)) k (fun (x : M) => x, s x) t) (i : ι) :

                  If s is C^k on t ⊆ e.baseSet, so is its coefficient b.localFrame_coeff e i in the local frame induced by e

                  theorem contMDiffOn_baseSet_localFrame_coeff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] [ContMDiffVectorBundle 1 F V I] {e : Bundle.Trivialization F Bundle.TotalSpace.proj} [MemTrivializationAtlas e] {ι : Type u_7} (b : Module.Basis ι 𝕜 F) {s : (x : M) → V x} {k : WithTop ℕ∞} [FiniteDimensional 𝕜 F] [CompleteSpace 𝕜] [ContMDiffVectorBundle k F V I] (hs : ContMDiffOn I (I.prod (modelWithCornersSelf 𝕜 F)) k (fun (x : M) => x, s x) e.baseSet) (i : ι) :

                  If s is C^k on e.baseSet, so is its coefficient b.localFrame_coeff e i in the local frame induced by e

                  theorem contMDiffAt_iff_localFrame_coeff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] [ContMDiffVectorBundle 1 F V I] {e : Bundle.Trivialization F Bundle.TotalSpace.proj} [MemTrivializationAtlas e] {ι : Type u_7} (b : Module.Basis ι 𝕜 F) {s : (x : M) → V x} {k : WithTop ℕ∞} {x' : M} [FiniteDimensional 𝕜 F] [CompleteSpace 𝕜] [ContMDiffVectorBundle k F V I] (hx : x' e.baseSet) :
                  ContMDiffAt I (I.prod (modelWithCornersSelf 𝕜 F)) k (fun (x : M) => x, s x) x' ∀ (i : ι), ContMDiffAt I (modelWithCornersSelf 𝕜 𝕜) k ((LinearMap.piApply (Bundle.Trivialization.localFrame_coeff I e b i)) s) x'

                  A section s of V is C^k at x ∈ e.baseSet iff each of its coefficients (LinearMap.piApply (b.localFrame_coeff e i) s) in a local frame near x is

                  theorem contMDiffOn_iff_localFrame_coeff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] [ContMDiffVectorBundle 1 F V I] {e : Bundle.Trivialization F Bundle.TotalSpace.proj} [MemTrivializationAtlas e] {ι : Type u_7} (b : Module.Basis ι 𝕜 F) {s : (x : M) → V x} {t : Set M} {k : WithTop ℕ∞} [FiniteDimensional 𝕜 F] [CompleteSpace 𝕜] [ContMDiffVectorBundle k F V I] (ht : IsOpen t) (ht' : t e.baseSet) :
                  ContMDiffOn I (I.prod (modelWithCornersSelf 𝕜 F)) k (fun (x : M) => x, s x) t ∀ (i : ι), ContMDiffOn I (modelWithCornersSelf 𝕜 𝕜) k ((LinearMap.piApply (Bundle.Trivialization.localFrame_coeff I e b i)) s) t

                  A section s of V is C^k on t ⊆ e.baseSet iff each of its coefficients (LinearMap.piApply (b.localFrame_coeff e i) s) in a local frame near x is

                  theorem contMDiffOn_baseSet_iff_localFrame_coeff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] [ContMDiffVectorBundle 1 F V I] {e : Bundle.Trivialization F Bundle.TotalSpace.proj} [MemTrivializationAtlas e] {ι : Type u_7} (b : Module.Basis ι 𝕜 F) {s : (x : M) → V x} {k : WithTop ℕ∞} [FiniteDimensional 𝕜 F] [CompleteSpace 𝕜] [ContMDiffVectorBundle k F V I] :
                  ContMDiffOn I (I.prod (modelWithCornersSelf 𝕜 F)) k (fun (x : M) => x, s x) e.baseSet ∀ (i : ι), ContMDiffOn I (modelWithCornersSelf 𝕜 𝕜) k ((LinearMap.piApply (Bundle.Trivialization.localFrame_coeff I e b i)) s) e.baseSet

                  A section s of V is C^k on a trivialisation domain e.baseSet iff each of its coefficients (LinearMap.piApply (b.localFrame_coeff e i) s) in a local frame near x is

                  theorem mdifferentiableAt_localFrame_coeff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] [ContMDiffVectorBundle 1 F V I] {e : Bundle.Trivialization F Bundle.TotalSpace.proj} [MemTrivializationAtlas e] {ι : Type u_7} (b : Module.Basis ι 𝕜 F) {s : (x : M) → V x} {x : M} [FiniteDimensional 𝕜 F] [CompleteSpace 𝕜] (hxe : x e.baseSet) (hs : MDiffAt (T% s) x) (i : ι) :

                  If s is diffentiable at x, so is its coefficient b.localFrame_coeff e i in the local frame near x induced by e and b

                  theorem mdifferentiableOn_localFrame_coeff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] [ContMDiffVectorBundle 1 F V I] {e : Bundle.Trivialization F Bundle.TotalSpace.proj} [MemTrivializationAtlas e] {ι : Type u_7} (b : Module.Basis ι 𝕜 F) {s : (x : M) → V x} {t : Set M} [FiniteDimensional 𝕜 F] [CompleteSpace 𝕜] (ht : IsOpen t) (ht' : t e.baseSet) (hs : MDifferentiableOn I (I.prod (modelWithCornersSelf 𝕜 F)) (fun (x : M) => x, s x) t) (i : ι) :

                  If s is differentiable on t ⊆ e.baseSet, so is its coefficient b.localFrame_coeff e i in the local frame induced by e

                  theorem mdifferentiableOn_baseSet_localFrame_coeff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] [ContMDiffVectorBundle 1 F V I] {e : Bundle.Trivialization F Bundle.TotalSpace.proj} [MemTrivializationAtlas e] {ι : Type u_7} (b : Module.Basis ι 𝕜 F) {s : (x : M) → V x} [FiniteDimensional 𝕜 F] [CompleteSpace 𝕜] (hs : MDifferentiableOn I (I.prod (modelWithCornersSelf 𝕜 F)) (fun (x : M) => x, s x) e.baseSet) (i : ι) :

                  If s is differentiable on e.baseSet, so is its coefficient b.localFrame_coeff e i in the local frame induced by e

                  theorem mdifferentiableAt_iff_localFrame_coeff {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {F : Type u_5} [NormedAddCommGroup F] [NormedSpace 𝕜 F] {V : MType u_6} [TopologicalSpace (Bundle.TotalSpace F V)] [(x : M) → AddCommGroup (V x)] [(x : M) → Module 𝕜 (V x)] [(x : M) → TopologicalSpace (V x)] [FiberBundle F V] [VectorBundle 𝕜 F V] [ContMDiffVectorBundle 1 F V I] {e : Bundle.Trivialization F Bundle.TotalSpace.proj} [MemTrivializationAtlas e] {ι : Type u_7} (b : Module.Basis ι 𝕜 F) {s : (x : M) → V x} {x' : M} [FiniteDimensional 𝕜 F] [CompleteSpace 𝕜] (hx : x' e.baseSet) :
                  MDiffAt (T% s) x' ∀ (i : ι), MDiffAt ((LinearMap.piApply (Bundle.Trivialization.localFrame_coeff I e b i)) s) x'

                  A section s of V is differentiable at x ∈ e.baseSet iff each of its coefficients (LinearMap.piApply (b.localFrame_coeff e i) s) in a local frame near x is