Riemannian vector bundles #
Given a real vector bundle over a topological space whose fibers are all endowed with an inner product, we say that this bundle is Riemannian if the inner product depends continuously on the base point.
We introduce a typeclass [IsContinuousRiemannianBundle F E]
registering this property.
Under this assumption, we show that the inner product of two continuous maps into the same fibers
of the bundle is a continuous function.
If one wants to endow an existing vector bundle with a Riemannian metric, there is a subtlety:
the inner product space structure on the fibers should give rise to a topology on the fibers
which is defeq to the original one, to avoid diamonds. To do this, we introduce a
class [RiemannianBundle E]
containing the data of an inner
product on the fibers defining the same topology as the original one. Given this class, we can
construct NormedAddCommGroup
and InnerProductSpace
instances on the fibers, compatible in a
defeq way with the initial topology. If the data used to register the instance RiemannianBundle E
depends continuously on the base point, we register automatically an instance of
[IsContinuousRiemannianBundle F E]
(and similarly if the data is smooth).
The general theory should be built assuming [IsContinuousRiemannianBundle F E]
, while the
[RiemannianBundle E]
mechanism is only to build data in specific situations.
Keywords #
Vector bundle, Riemannian metric
Consider a real vector bundle in which each fiber is endowed with an inner product.
We say that the bundle is Riemannian if the inner product depends continuously on the base point.
This assumption is spelled IsContinuousRiemannianBundle F E
where F
is the model fiber,
and E : B → Type*
is the bundle.
Instances
A trivial vector bundle, in which the model fiber has a inner product, is a Riemannian bundle.
Given two continuous maps into the same fibers of a continuous Riemannian bundle,
their inner product is continuous. Version with ContinuousWithinAt
.
Given two continuous maps into the same fibers of a continuous Riemannian bundle,
their inner product is continuous. Version with ContinuousAt
.
Given two continuous maps into the same fibers of a continuous Riemannian bundle,
their inner product is continuous. Version with ContinuousOn
.
Given two continuous maps into the same fibers of a continuous Riemannian bundle, their inner product is continuous.
A family of inner product space structures on the fibers of a fiber bundle, defining the same
topology as the already existing one. This family is not assumed to be continuous or smooth: to
guarantee continuity, resp. smoothness, of the inner product as a function of the base point,
use ContinuousRiemannianMetric
or ContMDiffRiemannianMetric
.
This structure is used through RiemannianBundle
for typeclass inference, to register the inner
product space structure on the fibers without creating diamonds.
The inner product along the fibers of the bundle.
- continuousAt (b : B) : ContinuousAt (fun (v : E b) => ((self.inner b) v) v) 0
The continuity at
0
is automatic whenE b
is isomorphic to a normed space, but since we are not making this assumption here we have to include it.
Instances For
`Core structure associated to a family of inner products on the fibers of a fiber bundle. This is an auxiliary construction to endow the fibers with an inner product space structure without creating diamonds.
Warning: Do not use this Core
structure if the space you are interested in already has a norm
instance defined on it, otherwise this will create a second non-defeq norm instance!
Equations
Instances For
Class used to create an inner product structure space on the fibers of a fiber bundle, without creating diamonds. Use as follows:
instance : RiemannianBundle E := ⟨g⟩
whereg : RiemannianMetric E
registers the inner product space on the fibers;instance : RiemannianBundle E := ⟨g.toRiemannianMetric⟩
whereg : ContinuousRiemannianMetric F E
registers the inner product space on the fibers, and the fact that it varies continuously (i.e., a[IsContinuousRiemannianBundle]
instance).instance : RiemannianBundle E := ⟨g.toRiemannianMetric⟩
whereg : ContMDiffRiemannianMetric IB n F E
registers the inner product space on the fibers, and the fact that it varies smoothly (and continuously), i.e.,[IsContMDiffRiemannianBundle]
and[IsContinuousRiemannianBundle]
instances.
- g : RiemannianMetric E
The family of inner products on the fibers
Instances
A family of inner product space structures on the fibers of a fiber bundle, defining the same
topology as the already existing one, and varying continuously with the base point. See also
ContMDiffRiemannianMetric
for a smooth version.
This structure is used through RiemannianBundle
for typeclass inference, to register the inner
product space structure on the fibers without creating diamonds.
The inner product along the fibers of the bundle.
- continuous : Continuous fun (b : B) => TotalSpace.mk' (F →L[ℝ] F →L[ℝ] ℝ) b (self.inner b)
Instances For
A continuous Riemannian metric is in particular a Riemannian metric.
Equations
- g.toRiemannianMetric = { inner := g.inner, symm := ⋯, pos := ⋯, continuousAt := ⋯, isVonNBounded := ⋯ }
Instances For
If a Riemannian bundle structure is defined using g.toRiemannianMetric
where g
is
a ContinuousRiemannianMetric
, then we make sure typeclass inference can infer automatically
that the the bundle is a continuous Riemannian bundle.