Trivializations #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Main definitions #
Basic definitions #
-
trivialization F p
: structure extending local homeomorphisms, defining a local trivialization of a topological spaceZ
with projectionp
and fiberF
. -
pretrivialization F proj
: trivialization as a local equivalence, mainly used when the topology on the total space has not yet been defined.
Operations on bundles #
We provide the following operations on trivialization
s.
trivialization.comp_homeomorph
: given a local trivializatione
of a fiber bundlep : Z → B
and a homeomorphismh : Z' ≃ₜ Z
, returns a local trivialization of the fiber bundlep ∘ h
.
Implementation notes #
Previously, in mathlib, there was a structure topological_vector_bundle.trivialization
which
extended another structure topological_fiber_bundle.trivialization
by a linearity hypothesis. As
of PR #17359, we have changed this to a single structure trivialization
(no namespace), together
with a mixin class trivialization.is_linear
.
This permits all the data of a vector bundle to be held at the level of fiber bundles, so that the
same trivializations can underlie an object's structure as (say) a vector bundle over ℂ
and as a
vector bundle over ℝ
, as well as its structure simply as a fiber bundle.
This might be a little surprising, given the general trend of the library to ever-increased bundling. But in this case the typical motivation for more bundling does not apply: there is no algebraic or order structure on the whole type of linear (say) trivializations of a bundle. Indeed, since trivializations only have meaning on their base sets (taking junk values outside), the type of linear trivializations is not even particularly well-behaved.
- to_local_equiv : local_equiv Z (B × F)
- open_target : is_open self.to_local_equiv.target
- base_set : set B
- open_base_set : is_open self.base_set
- source_eq : self.to_local_equiv.source = proj ⁻¹' self.base_set
- target_eq : self.to_local_equiv.target = self.base_set ×ˢ set.univ
- proj_to_fun : ∀ (p : Z), p ∈ self.to_local_equiv.source → (self.to_local_equiv.to_fun p).fst = proj p
This structure contains the information left for a local trivialization (which is implemented
below as trivialization F proj
) if the total space has not been given a topology, but we
have a topology on both the fiber and the base space. Through the construction
topological_fiber_prebundle F proj
it will be possible to promote a
pretrivialization F proj
to a trivialization F proj
.
Instances for pretrivialization
- pretrivialization.has_sizeof_inst
- pretrivialization.has_coe_to_fun
- trivialization.pretrivialization.has_coe
Equations
- pretrivialization.has_coe_to_fun F = {coe := λ (e : pretrivialization F proj), e.to_local_equiv.to_fun}
Composition of inverse and coercion from the subtype of the target.
Equations
- e.set_symm = e.to_local_equiv.target.restrict ⇑(e.to_local_equiv.symm)
A fiberwise inverse to e
. This is the function F → E b
that induces a local inverse
B × F → total_space F E
of e
on e.base_set
. It is defined to be 0
outside e.base_set
.
- to_local_homeomorph : local_homeomorph Z (B × F)
- base_set : set B
- open_base_set : is_open self.base_set
- source_eq : self.to_local_homeomorph.to_local_equiv.source = proj ⁻¹' self.base_set
- target_eq : self.to_local_homeomorph.to_local_equiv.target = self.base_set ×ˢ set.univ
- proj_to_fun : ∀ (p : Z), p ∈ self.to_local_homeomorph.to_local_equiv.source → (⇑(self.to_local_homeomorph) p).fst = proj p
A structure extending local homeomorphisms, defining a local trivialization of a projection
proj : Z → B
with fiber F
, as a local homeomorphism between Z
and B × F
defined between two
sets of the form proj ⁻¹' base_set
and base_set × F
, acting trivially on the first coordinate.
Instances for trivialization
- trivialization.has_sizeof_inst
- trivialization.has_coe_to_fun
- trivialization.pretrivialization.has_coe
Natural identification as a pretrivialization
.
Equations
- e.to_pretrivialization = {to_local_equiv := e.to_local_homeomorph.to_local_equiv, open_target := _, base_set := e.base_set, open_base_set := _, source_eq := _, target_eq := _, proj_to_fun := _}
Instances for trivialization.to_pretrivialization
Equations
- trivialization.has_coe_to_fun = {coe := λ (e : trivialization F proj), e.to_local_homeomorph.to_local_equiv.to_fun}
Equations
The preimage of a subset of the base set is homeomorphic to the product with the fiber.
Equations
- e.preimage_homeomorph hb = (e.to_local_homeomorph.homeomorph_of_image_subset_source _ _).trans ((homeomorph.set.prod s set.univ).trans ((homeomorph.refl ↥s).prod_congr (homeomorph.set.univ F)))
The source is homeomorphic to the product of the base set with the fiber.
Equations
Each fiber of a trivialization is homeomorphic to the specified fiber.
Equations
- e.preimage_singleton_homeomorph hb = (e.preimage_homeomorph _).trans (((homeomorph.homeomorph_of_unique ↥{b} punit).prod_congr (homeomorph.refl F)).trans (homeomorph.punit_prod F))
In the domain of a bundle trivialization, the projection is continuous
Composition of a trivialization
and a homeomorph
.
Equations
- e.comp_homeomorph h = {to_local_homeomorph := h.to_local_homeomorph.trans e.to_local_homeomorph, base_set := e.base_set, open_base_set := _, source_eq := _, target_eq := _, proj_to_fun := _}
Read off the continuity of a function f : Z → X
at z : Z
by transferring via a
trivialization of Z
containing z
.
Read off the continuity of a function f : X → Z
at x : X
by transferring via a
trivialization of Z
containing f x
.
A fiberwise inverse to e'
. The function F → E x
that induces a local inverse
B × F → total_space F E
of e'
on e'.base_set
. It is defined to be 0
outside
e'.base_set
.
Equations
- e.symm b y = e.to_pretrivialization.symm b y
If e
is a trivialization
of proj : Z → B
with fiber F
and h
is a homeomorphism
F ≃ₜ F'
, then e.trans_fiber_homeomorph h
is the trivialization of proj
with the fiber F'
that sends p : Z
to ((e p).1, h (e p).2)
.
Equations
- e.trans_fiber_homeomorph h = {to_local_homeomorph := e.to_local_homeomorph.trans_homeomorph ((homeomorph.refl B).prod_congr h), base_set := e.base_set, open_base_set := _, source_eq := _, target_eq := _, proj_to_fun := _}
Coordinate transformation in the fiber induced by a pair of bundle trivializations. See also
trivialization.coord_change_homeomorph
for a version bundled as F ≃ₜ F
.
Equations
- e₁.coord_change e₂ b x = (⇑e₂ (⇑(e₁.to_local_homeomorph.symm) (b, x))).snd
Coordinate transformation in the fiber induced by a pair of bundle trivializations, as a homeomorphism.
Equations
- e₁.coord_change_homeomorph e₂ h₁ h₂ = {to_equiv := {to_fun := e₁.coord_change e₂ b, inv_fun := e₂.coord_change e₁ b, left_inv := _, right_inv := _}, continuous_to_fun := _, continuous_inv_fun := _}
Restrict a trivialization
to an open set in the base. `
Equations
- e.restr_open s hs = {to_local_homeomorph := (_.restr _).symm, base_set := e.base_set ∩ s, open_base_set := _, source_eq := _, target_eq := _, proj_to_fun := _}
Given two bundle trivializations e
, e'
of proj : Z → B
and a set s : set B
such that
the base sets of e
and e'
intersect frontier s
on the same set and e p = e' p
whenever
proj p ∈ e.base_set ∩ frontier s
, e.piecewise e' s Hs Heq
is the bundle trivialization over
set.ite s e.base_set e'.base_set
that is equal to e
on proj ⁻¹ s
and is equal to e'
otherwise.
Equations
- e.piecewise e' s Hs Heq = {to_local_homeomorph := e.to_local_homeomorph.piecewise e'.to_local_homeomorph (proj ⁻¹' s) (s ×ˢ set.univ) _ _ _ _, base_set := s.ite e.base_set e'.base_set, open_base_set := _, source_eq := _, target_eq := _, proj_to_fun := _}
Given two bundle trivializations e
, e'
of a topological fiber bundle proj : Z → B
over a linearly ordered base B
and a point a ∈ e.base_set ∩ e'.base_set
such that
e
equals e'
on proj ⁻¹' {a}
, e.piecewise_le_of_eq e' a He He' Heq
is the bundle
trivialization over set.ite (Iic a) e.base_set e'.base_set
that is equal to e
on points p
such that proj p ≤ a
and is equal to e'
otherwise.
Equations
- e.piecewise_le_of_eq e' a He He' Heq = e.piecewise e' (set.Iic a) _ _
Given two bundle trivializations e
, e'
of a topological fiber bundle proj : Z → B
over a
linearly ordered base B
and a point a ∈ e.base_set ∩ e'.base_set
, e.piecewise_le e' a He He'
is the bundle trivialization over set.ite (Iic a) e.base_set e'.base_set
that is equal to e
on
points p
such that proj p ≤ a
and is equal to ((e' p).1, h (e' p).2)
otherwise, where
h =
e'.coord_change_homeomorph e _ _is the homeomorphism of the fiber such that
h (e' p).2 = (e p).2whenever
e p = a`.
Equations
- e.piecewise_le e' a He He' = e.piecewise_le_of_eq (e'.trans_fiber_homeomorph (e'.coord_change_homeomorph e He' He)) a He He' _
Given two bundle trivializations e
, e'
over disjoint sets, e.disjoint_union e' H
is the
bundle trivialization over the union of the base sets that agrees with e
and e'
over their
base sets.
Equations
- e.disjoint_union e' H = {to_local_homeomorph := e.to_local_homeomorph.disjoint_union e'.to_local_homeomorph _ _, base_set := e.base_set ∪ e'.base_set, open_base_set := _, source_eq := _, target_eq := _, proj_to_fun := _}