Covariant derivatives #
This file defines covariant derivatives (aka Koszul connections) on vector bundles over manifolds.
There are versions of the story: a local unbundled one and a global bundled one. The local version is used by the global version but also (in other files) when seeing a global object in a local trivialization.
In the whole file M is a manifold over any nontrivially normed field π and V is
a vector bundle over M with model fiber F.
Main definitions and constructions #
IsCovariantDerivativeOn: A function from sections of a vector bundleVover a manifoldMto sections of $Hom(TM, V)$ is a covariant derivative on a setsinMif it is additive and satisfies the Leibniz rule when applied to sections that are differentiable at a point ofs.ContMDiffCovariantDerivativeOn: A covariant derivative β on some set is called of classC^kiff, wheneverXis aC^ksection andΟaC^{k+1}section, the resultβ_X Οis aC^ksection. This is a class so typeclass inference can deduce this automatically.IsCovariantDerivativeOn.add_one_form: Adding a one-form taking values in the endomorphisms of the vector bundle to a covariant derivative on a set gives a covariant derivative on that set.IsCovariantDerivativeOn.difference: The difference of two covariant derivatives on a set, as a one-form taking values in the endomorphism bundle.CovariantDerivative: a globally defined covariant derivative on a vector bundle, as a bundled object.ContMDiffCovariantDerivative: A covariant derivative β is called of classC^kiff, wheneverXis aC^ksection andΟaC^{k+1}section, the resultβ_X Οis aC^ksection. This is a class so typeclass inference can deduce this automatically.CovariantDerivative.addOneForm: Adding a one-form taking values in the endomorphisms of the vector bundle to a covariant derivative gives a covariant derivative.CovariantDerivative.difference: The difference of two covariant derivatives, as a one-form taking values in the endomorphism bundle.
Implementation notes #
On paper there are several equivalent ways to define covariant derivatives on a vector bundle
V β M. The most common one starts with a function β taking as input a global smooth vector field
X and a global smooth section Ο and giving as output a global smooth section β_X Ο, before
proving the result that (β_X Ο) x at a point x only depends on the value of the vector field at
that point and the 1-jet of the section at that point.
Here we ask for a map sending a global section Ο of V to a global section β Ο of Hom(TM, V).
So the fact that (β_X Ο) x depends only on X x is baked into the definition.
Note also that we donβt put any differentiability restriction on Ο and X, the type of
the covariant derivative map is simply (Ξ x : M, V x) β (Ξ x : M, TangentSpace I x βL[π] V x)).
But the conditions on this map involve differentiability, see the definition of
IsCovariantDerivativeOn.
This file proves that (β_X Ο) x depends only on the germ of Ο at x, but not the stronger
statement that it depends only the 1-jet of Ο at x. This will be proved in a later file.
Local unbundled theory #
A function from sections of a vector bundle V on a manifold M to sections of $Hom(TM, E)$
is a covariant derivative over a set s in M if it is additive and satisfies the Leibniz rule
when applied to sections that are differentiable at a point of s.
Caution, the argument order is nonstandard: cov Ο x (X x) corresponds to β_X Ο x on paper.
Instances For
A covariant derivative β is called of class C^k iff, whenever X is a C^k section and Ο a
C^{k+1} section, the result β_X Ο is a C^k section. This is a class so typeclass inference can
deduce this automatically. We will prove in a later file that any C^(k+1) covariant derivative
is C^k.
- contMDiff {Ο : (x : M) β V x} : ContMDiffOn I (I.prod (modelWithCornersSelf π F)) (k + 1) (fun (x : M) => β¨x, Ο xβ©) u β ContMDiffOn I (I.prod (modelWithCornersSelf π (E βL[π] F))) k (fun (x : M) => β¨x, cov Ο xβ©) u
Instances
Changing set #
In this section, we change s in IsCovariantDerivativeOn F cov s, proving the condition is
monotone and local.
Given a covariant derivative cov on a neighborhood s of a point x, if sections Ο and
Ο' agree on s and are differentiable at x, then cov Ο x = cov Ο x'.
Given a covariant derivative cov on a neighborhood s of a point x, if sections Ο and
Ο' agree near x and are differentiable at x, then cov Ο x = cov Ο x'.
Computational properties #
Operations #
In this section we prove that:
- affine combinations of covariant derivatives are covariant derivatives
- adding a one-form taking values in the endomorphisms of the vector bundle to a covariant
derivative gives a covariant derivative. See
IsCovariantDerivativeOn.add_one_form. - subtracting two covariant derivatives on some set gives a one-form taking values in
the endomorphisms of the vector bundle. See
IsCovariantDerivativeOn.difference.
Note: morally this means covariant derivatives form an affine space over the vector space of one-forms taking values in the endomorphisms of the bundle, but we donβt package it that way yet.
An affine combination of covariant derivatives is a covariant derivative.
An affine combination of two C^k connections is a C^k connection.
A finite affine combination of covariant derivatives is a covariant derivative.
An affine combination of finitely many C^k connections on u is a C^k connection on u.
Adding a one-form taking values in the endomorphisms of the vector bundle to a covariant derivative gives a covariant derivative.
The difference of two covariant derivatives, as a one-form taking values in the
endomorphisms of V.
Equations
- hcov.difference hcov' x = if hxs : x β s then TensorialAt.mkHom (fun (x_1 : (x : M) β V x) => IsCovariantDerivativeOn.differenceAuxβ cov cov' x_1 x) x β― else 0
Instances For
Bundled global covariant derivatives #
Bundled global covariant derivative on a vector bundle.
Caution, the argument order is nonstandard: cov Ο x (X x) corresponds to β_X Ο x on paper.
- toFun : ((x : M) β V x) β (x : M) β TangentSpace I x βL[π] V x
The covariant derivative as a function.
- isCovariantDerivativeOnUniv : IsCovariantDerivativeOn F βself
Instances For
Coercion of a CovariantDerivative to function
Equations
- CovariantDerivative.instCoeFunForallForallForallContinuousLinearMapIdTangentSpace = { coe := fun (e : CovariantDerivative I F V) => βe }
If cov is a covariant derivative on each set in an open cover, it is a covariant derivative.
Equations
- CovariantDerivative.of_isCovariantDerivativeOn_of_open_cover hcov hs = { toFun := cov, isCovariantDerivativeOnUniv := β― }
Instances For
A covariant derivative β is called of class C^k iff, whenever X is a C^k section and Ο a
C^{k+1} section, the result β_X Ο is a C^k section.
This is a class so typeclass inference can deduce this automatically.
We will prove in a later file that any C^(k+1) covariant derivative is C^k.
- contMDiff : ContMDiffCovariantDerivativeOn F k (βcov) Set.univ
Instances
Operations #
In this section we prove that:
- affine combinations of covariant derivatives are covariant derivatives
- adding a one-form taking values in the endomorphisms of the vector bundle to a covariant
derivative gives a covariant derivative. See
CovariantDerivative.addOneForm. - subtracting two covariant derivatives on some set gives a one-form taking values in the
endomorphisms of the vector bundle. See
CovariantDerivative.difference.
Note: morally this means covariant derivatives form an affine space over the vector space of one-forms taking values in the endomorphisms of the bundle, but we donβt package it that way yet.
An affine combination of covariant derivatives as a covariant derivative.
Equations
Instances For
A finite affine combination of covariant derivatives as a covariant derivative.
Equations
- CovariantDerivative.finite_affine_combination cov hf = { toFun := fun (t : (x : M) β V x) (x : M) => β i β s, f i x β’ β(cov i) t x, isCovariantDerivativeOnUniv := β― }
Instances For
An affine combination of two C^k connections is a C^k connection.
An affine combination of finitely many C^k connections is a C^k connection.
Adding a one-form taking values in the endomorphisms of the vector bundle to a covariant derivative gives a covariant derivative.
Equations
- cov.addOneForm A = { toFun := fun (Ο : (x : M) β V x) (x : M) => βcov Ο x + (A x) (Ο x), isCovariantDerivativeOnUniv := β― }
Instances For
The difference of two covariant derivatives, as a one-form taking values in the
endomorphisms of V.
Equations
- cov.difference cov' = β―.difference β―