Bundle #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4. Basic data structure to implement fiber bundles, vector bundles (maybe fibrations?), etc. This file should contain all possible results that do not involve any topology.
We represent a bundle E
over a base space B
as a dependent type E : B → Type*
.
We define bundle.total_space F E
to be the type of pairs ⟨b, x⟩
, where b : B
and x : E x
.
This type is isomorphic to Σ x, E x
and uses an extra argument F
for reasons explained below. In
general, the constructions of fiber bundles we will make will be of this form.
Main Definitions #
bundle.total_space
the total space of a bundle.bundle.total_space.proj
the projection from the total space to the base space.bundle.total_space.mk
the constructor for the total space.
Implementation Notes #
-
We use a custom structure for the total space of a bundle instead of using a type synonym for the canonical disjoint union
Σ x, E x
because the total space usually has a different topology and Lean 4simp
fails to apply lemmas aboutΣ x, E x
to elements of the total space. -
The definition of
bundle.total_space
has an unused argumentF
. The reason is that in some constructions (e.g.,bundle.continuous_linear_map.vector_bundle
) we need access to the atlas of trivializations of original fiber bundles to construct the topology on the total space of the new fiber bundle.
References #
- https://en.wikipedia.org/wiki/Bundle_(mathematics)
- proj : B
- snd : E self.proj
bundle.total_space E
is the total space of the bundle. It consists of pairs
(proj : B, snd : E proj)
.
Instances for bundle.total_space
- bundle.total_space.has_sizeof_inst
- bundle.total_space.inhabited
- bundle.total_space.has_coe_t
- fiber_bundle_core.to_topological_space
- bundle.trivial.bundle.total_space.topological_space
- fiber_bundle.prod.topological_space
- pullback.total_space.topological_space
- vector_bundle_core.to_topological_space
- bundle.continuous_linear_map.topological_space_total_space
- fiber_bundle.charted_space
- fiber_bundle.charted_space'
- smooth_fiberwise_linear.has_groupoid
- bundle.total_space.smooth_manifold_with_corners
- tangent_bundle.topological_space
Equations
- bundle.total_space.inhabited E = {default := {proj := inhabited.default _inst_1, snd := inhabited.default _inst_2}}
Equations
bundle.trivial B F
is the trivial bundle over B
of fiber F
.
Equations
- bundle.trivial B F = λ (_x : B), F
The trivial bundle, unlike other bundles, has a canonical projection on the fiber.
Equations
A trivial bundle is equivalent to the product B × F
.
The pullback of a bundle E
over a base B
under a map f : B' → B
, denoted by pullback f E
or f *ᵖ E
, is the bundle over B'
whose fiber over b'
is E (f b')
.
Natural embedding of the total space of f *ᵖ E
into B' × total_space E
.
Equations
- bundle.pullback_total_space_embedding f = λ (z : bundle.total_space F f *ᵖ E), (z.proj, {proj := f z.proj, snd := z.snd})
The base map f : B' → B
lifts to a canonical map on the total spaces.
Equations
- bundle.pullback.lift f = λ (z : bundle.total_space F f *ᵖ E), {proj := f z.proj, snd := z.snd}