Topological vector bundles #
In this file we define topological vector bundles.
Let B
be the base space. In our formalism, a topological vector bundle is by definition the type
bundle.total_space E
where E : B → Type*
is a function associating to
x : B
the fiber over x
. This type bundle.total_space E
is just a type synonym for
Σ (x : B), E x
, with the interest that one can put another topology than on Σ (x : B), E x
which has the disjoint union topology.
To have a topological vector bundle structure on bundle.total_space E
,
one should addtionally have the following data:
F
should be a topological space and a module over a semiringR
;- There should be a topology on
bundle.total_space E
, for which the projection toB
is a topological fiber bundle with fiberF
(in particular, each fiberE x
is homeomorphic toF
); - For each
x
, the fiberE x
should be a topological vector space overR
, and the injection fromE x
tobundle.total_space F E
should be an embedding; - The most important condition: around each point, there should be a bundle trivialization which is a continuous linear equiv in the fibers.
If all these conditions are satisfied, we register the typeclass
topological_vector_bundle R F E
. We emphasize that the data is provided by other classes, and
that the topological_vector_bundle
class is Prop
-valued.
The point of this formalism is that it is unbundled in the sense that the total space of the bundle
is a type with a topology, with which one can work or put further structure, and still one can
perform operations on topological vector bundles (which are yet to be formalized). For instance,
assume that E₁ : B → Type*
and E₂ : B → Type*
define two topological vector bundles over R
with fiber models F₁
and F₂
which are normed spaces. Then one can construct the vector bundle of
continuous linear maps from E₁ x
to E₂ x
with fiber E x := (E₁ x →L[R] E₂ x)
(and with the
topology inherited from the norm-topology on F₁ →L[R] F₂
, without the need to define the strong
topology on continuous linear maps between general topological vector spaces). Let
vector_bundle_continuous_linear_map R F₁ E₁ F₂ E₂ (x : B)
be a type synonym for E₁ x →L[R] E₂ x
.
Then one can endow
bundle.total_space (vector_bundle_continuous_linear_map R F₁ E₁ F₂ E₂)
with a topology and a topological vector bundle structure.
Similar constructions can be done for tensor products of topological vector bundles, exterior algebras, and so on, where the topology can be defined using a norm on the fiber model if this helps.
Tags #
Vector bundle
- to_fiber_bundle_trivialization : topological_fiber_bundle.trivialization F (bundle.proj E)
- linear : ∀ (x : B), x ∈ self.to_fiber_bundle_trivialization.base_set → is_linear_map R (λ (y : E x), (self.to_fiber_bundle_trivialization.to_local_homeomorph.to_local_equiv.to_fun ↑y).snd)
Local trivialization for vector bundles.
Equations
Equations
- inducing : ∀ (b : B), inducing (λ (x : E b), id ⟨b, x⟩)
- locally_trivial : ∀ (b : B), ∃ (e : topological_vector_bundle.trivialization R F E), b ∈ e.to_fiber_bundle_trivialization.base_set
The space total_space E
(for E : B → Type*
such that each E x
is a topological vector
space) has a topological vector space structure with fiber F
(denoted with
topological_vector_bundle R F E
) if around every point there is a fiber bundle trivialization
which is linear in the fibers.
trivialization_at R F E b
is some choice of trivialization of a vector bundle whose base set
contains a given point b
.
Equations
- topological_vector_bundle.trivialization_at R F E = λ (b : B), classical.some _
In a topological vector bundle, a trivialization in the fiber (which is a priori only linear) is in fact a continuous linear equiv between the fibers and the model fiber.
Equations
- e.continuous_linear_equiv_at b hb = {to_linear_equiv := {to_fun := λ (y : E b), (⇑e ⟨b, y⟩).snd, map_add' := _, map_smul' := _, inv_fun := λ (z : F), cast _ (⇑(e.to_fiber_bundle_trivialization.to_local_homeomorph.symm) (b, z)).snd, left_inv := _, right_inv := _}, continuous_to_fun := _, continuous_inv_fun := _}
Equations
Equations
Equations
- topological_vector_bundle.bundle.trivial.module b = _inst_12
Local trivialization for trivial bundle.
Equations
- topological_vector_bundle.trivial_topological_vector_bundle.trivialization R B F = {to_fiber_bundle_trivialization := {to_local_homeomorph := {to_local_equiv := {to_fun := λ (x : bundle.total_space (bundle.trivial B F)), (x.fst, x.snd), inv_fun := λ (y : B × F), ⟨y.fst, y.snd⟩, source := set.univ (bundle.total_space (bundle.trivial B F)), target := set.univ (B × F), map_source' := _, map_target' := _, left_inv' := _, right_inv' := _}, open_source := _, open_target := _, continuous_to_fun := _, continuous_inv_fun := _}, base_set := set.univ B, open_base_set := _, source_eq := _, target_eq := _, proj_to_fun := _}, linear := _}
Constructing topological vector bundles #
- base_set : ι → set B
- is_open_base_set : ∀ (i : ι), is_open (self.base_set i)
- index_at : B → ι
- mem_base_set_at : ∀ (x : B), x ∈ self.base_set (self.index_at x)
- coord_change : ι → ι → B → (F →ₗ[R] F)
- coord_change_self : ∀ (i : ι) (x : B), x ∈ self.base_set i → ∀ (v : F), ⇑(self.coord_change i i x) v = v
- coord_change_continuous : ∀ (i j : ι), continuous_on (λ (p : B × F), ⇑(self.coord_change i j p.fst) p.snd) ((self.base_set i ∩ self.base_set j) ×ˢ set.univ)
- coord_change_comp : ∀ (i j k : ι) (x : B), x ∈ self.base_set i ∩ self.base_set j ∩ self.base_set k → ∀ (v : F), ⇑(self.coord_change j k x) (⇑(self.coord_change i j x) v) = ⇑(self.coord_change i k x) v
Analogous construction of topological_fiber_bundle_core
for vector bundles. This
construction gives a way to construct vector bundles from a structure registering how
trivialization changes act on fibers.
Natural identification to a topological_fiber_bundle_core
.
Equations
- Z.to_topological_vector_bundle_core = {base_set := Z.base_set, is_open_base_set := _, index_at := Z.index_at, mem_base_set_at := _, coord_change := λ (i j : ι) (b : B), ⇑(Z.coord_change i j b), coord_change_self := _, coord_change_continuous := _, coord_change_comp := _}
The index set of a topological vector bundle core, as a convenience function for dot notation
The base space of a topological vector bundle core, as a convenience function for dot notation
The fiber of a topological vector bundle core, as a convenience function for dot notation and typeclass inference
Equations
- Z.topological_space_fiber x = _inst_4
Equations
- Z.add_comm_monoid_fiber = λ (x : B), _inst_5
Equations
- Z.module_fiber = λ (x : B), _inst_6
The projection from the total space of a topological fiber bundle core, on its base.
Equations
- Z.proj = bundle.proj Z.fiber
Local homeomorphism version of the trivialization change.
Equations
- Z.triv_change i j = ↑Z.triv_change i j
Topological structure on the total space of a topological bundle created from core, designed so that all the local trivialization are continuous.
Extended version of the local trivialization of a fiber bundle constructed from core, registering additionally in its type that it is a local bundle trivialization.
Equations
- Z.local_triv i = {to_fiber_bundle_trivialization := {to_local_homeomorph := (↑Z.local_triv i).to_local_homeomorph, base_set := (↑Z.local_triv i).base_set, open_base_set := _, source_eq := _, target_eq := _, proj_to_fun := _}, linear := _}
Preferred local trivialization of a vector bundle constructed from core, at a given point, as a bundle trivialization
Equations
- Z.local_triv_at b = Z.local_triv (Z.index_at b)
The projection on the base of a topological vector bundle created from core is continuous
The projection on the base of a topological vector bundle created from core is an open map