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 #
IsLocalFrameOn: a family of sectionss iofV → Mis called a C^k local frame on a setU ⊆ Miff each sections iisC^konU, and the section valuess i xform a basis for eachx ∈ U
Suppose {sᵢ} is a local frame on U, and hs : IsLocalFrameOn s U.
IsLocalFrameOn.toBasisAt hs: for eachx ∈ U, the vectorssᵢ xform a basis ofFIsLocalFrameOn.coeff hsdescribes the coefficient of sections ofVw.r.t.{sᵢ}.hs.coeff iis a family of fiberwise linear mapsΠ x, V x →ₗ[𝕜] 𝕜. The coefficient function of a sectiontis(LinearMap.piApply (hs.coeff i)) t.IsLocalFrameOn.eventually_eq_sum_coeff_smul hs: for a local frame{sᵢ}nearx, for each sectiontwe havet = ∑ i, (LinearMap.piApply (hs.coeff i) t) • sᵢnearx.IsLocalFrameOn.coeff_sum_eq hs t hxproves thatt x = ∑ i, hs.coeff i x (t x) • sᵢ x, provided thathx : x ∈ U.IsLocalFrameOn.coeff_congr hs: the coefficienths.coeff ioftin the local frame{sᵢ}only depends ontatx.IsLocalFrameOn.eq_iff_coeff hs: two sectionstandt'are equal atxif and only if their coefficients atxw.r.t.{sᵢ}agree.IsLocalFrameOn.contMDiffOn_of_coeff hs: a sectiontisC^konUif each coefficient(LinearMap.piApply (hs.coeff i) t)isC^konUIsLocalFrameOn.contMDiffAt_of_coeff hs: a sectiontisC^katx ∈ Uif all of its frame coefficients areIsLocalFrameOn.contMDiffOn_off_coeff hs: a sectiontisC^kon an open sett ⊆ Uff all of its frame coefficients areMDifferentiableversions of the previous three statements
In the following lemmas, let e be a compatible local trivialisation of V, and b a basis of
the model fiber F.
Bundle.Trivialization.basisAt e b: for eachx ∈ e.baseSet, return the basis ofV xinduced byeandbe.localFrame b: the local frame onVinduced byeandb. Usee.localFrame b ito access the i-th section in that frame.e.contMDiffOn_localFrame_baseSet: each sectione.localFrame b iis smooth one.baseSete.localFrame_coeff b idescribes thei-th coefficient of sections ofVw.r.t.e.localFrame b: it is a family of fiberwise linear mapsΠ x, V x →ₗ[𝕜] 𝕜, and the coefficient function of a sectionsis(LinearMap.piApply (e.localFrame_coeff b i)) s.e.eventually_eq_localFrame_sum_coeff_smul b: nearx, we haves = ∑ i, (LinearMap.piApply (e.localFrame_coeff b i) s) • e.localFrame b ie.localFrame_coeff_congr b: the coefficiente.localFrame_coeff b iofsin the local frame induced byeandbatxonly depends onsatx.e.contMDiffOn_localFrame_coeff: ifsis aC^ksection, each coefficient(LinearMap.piApply (e.localFrame_coeff b i) s)isC^kone.baseSete.contMDiffAt_iff_localFrame_coeff b: a sectionsisC^katx ∈ e.baseSetiff all of its frame coefficients aree.contMDiffOn_iff_localFrame_coeff b: a sectionsisC^kon an open sett ⊆ e.baseSetiff all of its frame coefficients are
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
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 xform a basis for eachx ∈ U, - each section
s iisC^konU.
- contMDiffOn (i : ι) : ContMDiffOn I (I.prod (modelWithCornersSelf 𝕜 F)) n (fun (x : M) => ⟨x, s i x⟩) u
Instances For
If s = s' on u and s i is a local frame on u, then so is s'.
Given a local frame {s i} on U ∋ x, returns the basis {s i} of V x
Equations
- hs.toBasisAt hx = Module.Basis.mk ⋯ ⋯
Instances For
If {sᵢ} is a local frame on a vector bundle, F being finite-dimensional implies the
indexing set being finite.
Equations
Instances For
Alias of IsLocalFrameOn.fintypeOfFiniteDimensional.
If {sᵢ} is a local frame on a vector bundle, F being finite-dimensional implies the
indexing set being finite.
Instances For
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.
Instances For
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.
The coefficients of t in a local frame at x only depend on t at x.
If s and s' are local frames which are equal at x,
a section t has equal frame coefficients in them.
Two sections s and t are equal at x if and only if their coefficients w.r.t. some local
frame at x agree.
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.
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.
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.
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.
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.
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.
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
- e.basisAt b hx = b.map (Bundle.Trivialization.linearEquivAt 𝕜 e x hx).symm
Instances For
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
- e.localFrame b i x = if hx : x ∈ e.baseSet then (e.basisAt b hx) i else 0
Instances For
Each local frame {sᵢ} ∈ Γ(E) of a C^k vector bundle, defined by a local trivialisation e,
is C^k on e.baseSet.
b.localFrame e i is indeed a local frame on e.baseSet
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
- Bundle.Trivialization.localFrame_coeff I e b i = ⋯.coeff i
Instances For
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.
The representation of s in a local frame at x only depends on s at x.
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).
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
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
If s is C^k on e.baseSet, so is its coefficient b.localFrame_coeff e i
in the local frame induced by e
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
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
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
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
If s is differentiable on t ⊆ e.baseSet, so is its coefficient b.localFrame_coeff e i
in the local frame induced by e
If s is differentiable on e.baseSet, so is its coefficient b.localFrame_coeff e i in the
local frame induced by e
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