Bundle #
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.TotalSpace F E
to be the type of pairs ⟨b, x⟩
, where b : B
and x : E b
.
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.TotalSpace
the total space of a bundle.Bundle.TotalSpace.proj
the projection from the total space to the base space.Bundle.TotalSpace.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.TotalSpace
has an unused argumentF
. The reason is that in some constructions (e.g.,Bundle.ContinuousLinearMap.vectorBundle
) 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)
Bundle.TotalSpace F E
is the total space of the bundle. It consists of pairs
(proj : B, snd : E proj)
.
- proj : B
Bundle.TotalSpace.proj
is the canonical projectionBundle.TotalSpace F E → B
from the total space to the base space. - snd : E self.proj
Instances For
Equations
- Bundle.instInhabitedTotalSpaceOfDefault E = { default := { proj := default, snd := default } }
Bundle.TotalSpace.proj
is the canonical projection Bundle.TotalSpace F E → B
from the
total space to the base space.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Bundle.TotalSpace.mk' F x y = { proj := x, snd := y }
Instances For
Equations
- Bundle.instCoeTCTotalSpace = { coe := Bundle.TotalSpace.mk x }
Notation for the direct sum of two bundles over the same base.
Equations
- Bundle.«term_×ᵇ_» = Lean.ParserDescr.trailingNode `Bundle.«term_×ᵇ_» 100 0 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ×ᵇ ") (Lean.ParserDescr.cat `term 0))
Instances For
Bundle.Trivial B F
is the trivial bundle over B
of fiber F
.
Equations
- Bundle.Trivial B F x✝ = F
Instances For
The trivial bundle, unlike other bundles, has a canonical projection on the fiber.
Equations
- Bundle.TotalSpace.trivialSnd B F = Bundle.TotalSpace.snd
Instances For
A trivial bundle is equivalent to the product B × F
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The pullback of a bundle E
over a base B
under a map f : B' → B
, denoted by
Bundle.Pullback f E
or f *ᵖ E
, is the bundle over B'
whose fiber over b'
is E (f b')
.
Instances For
The pullback of a bundle E
over a base B
under a map f : B' → B
, denoted by
Bundle.Pullback f E
or f *ᵖ E
, is the bundle over B'
whose fiber over b'
is E (f b')
.
Equations
- Bundle.«term_*ᵖ_» = Lean.ParserDescr.trailingNode `Bundle.«term_*ᵖ_» 1022 0 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " *ᵖ ") (Lean.ParserDescr.cat `term 1023))
Instances For
Natural embedding of the total space of f *ᵖ E
into B' × TotalSpace F E
.
Equations
- Bundle.pullbackTotalSpaceEmbedding f z = (z.proj, { proj := f z.proj, snd := z.snd })
Instances For
The base map f : B' → B
lifts to a canonical map on the total spaces.
Equations
- Bundle.Pullback.lift f z = { proj := f z.proj, snd := z.snd }