Tangent bundles #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines the tangent bundle as a smooth vector bundle.
Let M be a smooth manifold with corners with model I on (E, H). We define the tangent bundle
of M using the vector_bundle_core construction indexed by the charts of M with fibers E.
Given two charts i, j : local_homeomorph M H, the coordinate change between i and j at a point
x : M is the derivative of the composite
I.symm i.symm j I
E -----> H -----> M --> H --> E
within the set range I ⊆ E at I (i x) : E.
This defines a smooth vector bundle tangent_bundle with fibers tangent_space.
Main definitions #
-
tangent_space I M xis the fiber of the tangent bundle atx : M, which is defined to beE. -
tangent_bundle I Mis the total space oftangent_space I M, proven to be a smooth vector bundle.
Auxiliary lemma for tangent spaces: the derivative of a coordinate change between two charts is smooth on its source.
Let M be a smooth manifold with corners with model I on (E, H).
Then vector_bundle_core I M is the vector bundle core for the tangent bundle over M.
It is indexed by the atlas of M, with fiber E and its change of coordinates from the chart i
to the chart j at point x : M is the derivative of the composite
I.symm i.symm j I
E -----> H -----> M --> H --> E
within the set range I ⊆ E at I (i x) : E.
Equations
- tangent_bundle_core I M = {base_set := λ (i : ↥(charted_space.atlas H M)), i.val.to_local_equiv.source, is_open_base_set := _, index_at := achart H _inst_9, mem_base_set_at := _, coord_change := λ (i j : ↥(charted_space.atlas H M)) (x : M), fderiv_within 𝕜 (⇑(j.val.extend I) ∘ ⇑((i.val.extend I).symm)) (set.range ⇑I) (⇑(i.val.extend I) x), coord_change_self := _, continuous_on_coord_change := _, coord_change_comp := _}
Instances for tangent_bundle_core
The tangent space at a point of the manifold M. It is just E. We could use instead
(tangent_bundle_core I M).to_topological_vector_bundle_core.fiber x, but we use E to help the
kernel.
Equations
- tangent_space I x = E
Instances for tangent_space
- tangent_space.topological_space
- tangent_space.add_comm_group
- tangent_space.topological_add_group
- tangent_space.module
- tangent_space.inhabited
- tangent_space.has_continuous_add
- tangent_space.fiber_bundle
- tangent_space.vector_bundle
- tangent_bundle.smooth_vector_bundle
- tangent_space.path_connected_space
The tangent bundle to a smooth manifold, as a Sigma type. Defined in terms of
bundle.total_space to be able to put a suitable topology on it.
Equations
- tangent_bundle I M = bundle.total_space E (tangent_space I)
Equations
Equations
- tangent_space.inhabited I x = {default := 0}
Equations
Equations
The tangent bundle to the model space #
In the tangent bundle to the model space, the charts are just the canonical identification
between a product type and a sigma type, a.k.a. equiv.sigma_equiv_prod.
The canonical identification between the tangent bundle to the model space and the product, as a homeomorphism
Equations
- tangent_bundle_model_space_homeomorph H I = {to_equiv := {to_fun := (bundle.total_space.to_prod H E).to_fun, inv_fun := (bundle.total_space.to_prod H E).inv_fun, left_inv := _, right_inv := _}, continuous_to_fun := _, continuous_inv_fun := _}
The map in_coordinates for the tangent bundle is trivial on the model spaces
When ϕ x is a continuous linear map that changes vectors in charts around f x to vectors
in charts around g x, in_tangent_coordinates I I' f g ϕ x₀ x is a coordinate change of
this continuous linear map that makes sense from charts around f x₀ to charts around g x₀
by composing it with appropriate coordinate changes.
Note that the type of ϕ is more accurately
Π x : N, tangent_space I (f x) →L[𝕜] tangent_space I' (g x).
We are unfolding tangent_space in this type so that Lean recognizes that the type of ϕ doesn't
actually depend on f or g.
This is the underlying function of the trivializations of the hom of (pullbacks of) tangent spaces.
Equations
- in_tangent_coordinates I I' f g ϕ = λ (x₀ x : N), continuous_linear_map.in_coordinates E (tangent_space I) E' (tangent_space I') (f x₀) (f x) (g x₀) (g x) (ϕ x)