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).

In future work, given a basis b for F and a local trivialisation e for V, we will 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 OrthonormalFrame.lean, 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.

TODO #

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) => Bundle.TotalSpace.mk' F x (s i x)) x
    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
      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) →ₗ[𝕜] M𝕜

      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
      • hs.coeff i = { toFun := fun (s_1 : (x : M) → V x) (x : M) => if hx : x u then ((hs.toBasisAt hx).repr (s_1 x)) i else 0, map_add' := , map_smul' := }
      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) (t : (x : M) → V x) (i : ι) :
        (hs.coeff i) t 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) 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) t x s i 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) 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 t) • (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) t x = (hs.coeff i) 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) t x = (hs'.coeff i) 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} [Fintype ι] (hs : IsLocalFrameOn I F n s u) (hx : x u) :
        t x = t' x ∀ (i : ι), (hs.coeff i) t x = (hs.coeff i) 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.coeff_apply_zero_at {𝕜 : 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) (ht : t x = 0) (i : ι) :
        (hs.coeff i) t x = 0
        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] [Fintype ι] (h : ∀ (i : ι), ContMDiffOn I (modelWithCornersSelf 𝕜 𝕜) n ((hs.coeff i) t) u) :
        ContMDiffOn I (I.prod (modelWithCornersSelf 𝕜 F)) n (fun (x : M) => Bundle.TotalSpace.mk' F 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] [Fintype ι] (h : ∀ (i : ι), ContMDiffAt I (modelWithCornersSelf 𝕜 𝕜) n ((hs.coeff i) t) x) (hu : u nhds x) :
        ContMDiffAt I (I.prod (modelWithCornersSelf 𝕜 F)) n (fun (x : M) => Bundle.TotalSpace.mk' F 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] [Fintype ι] (h : ∀ (i : ι), ContMDiffAt I (modelWithCornersSelf 𝕜 𝕜) n ((hs.coeff i) t) x) (hu : IsOpen u) (hx : x u) :
        ContMDiffAt I (I.prod (modelWithCornersSelf 𝕜 F)) n (fun (x : M) => Bundle.TotalSpace.mk' F 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) [Fintype ι] (h : ∀ (i : ι), MDifferentiableOn I (modelWithCornersSelf 𝕜 𝕜) ((hs.coeff i) t) u) :
        MDifferentiableOn I (I.prod (modelWithCornersSelf 𝕜 F)) (fun (x : M) => Bundle.TotalSpace.mk' F 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) [Fintype ι] (h : ∀ (i : ι), MDifferentiableAt I (modelWithCornersSelf 𝕜 𝕜) ((hs.coeff i) t) x) (hu : u nhds x) :
        MDifferentiableAt I (I.prod (modelWithCornersSelf 𝕜 F)) (fun (x : M) => Bundle.TotalSpace.mk' F x (t x)) 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) [Fintype ι] (h : ∀ (i : ι), MDifferentiableAt I (modelWithCornersSelf 𝕜 𝕜) ((hs.coeff i) t) x) (hu : IsOpen u) (hx : x u) :
        MDifferentiableAt I (I.prod (modelWithCornersSelf 𝕜 F)) (fun (x : M) => Bundle.TotalSpace.mk' F x (t x)) 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.