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.
- to_bundle_trivialization : bundle_trivialization F (bundle.proj E)
- linear : ∀ (x : B), x ∈ c.to_bundle_trivialization.base_set → is_linear_map R (λ (y : E x), (c.to_bundle_trivialization.to_local_homeomorph.to_local_equiv.to_fun ↑y).snd)
Local trivialization for vector bundles.
Equations
- topological_vector_bundle.trivialization.has_coe_to_fun R F E = {F := λ (_x : topological_vector_bundle.trivialization R F E), bundle.total_space E → B × F, coe := λ (e : topological_vector_bundle.trivialization R F E), ⇑(e.to_bundle_trivialization)}
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_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_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_bundle_trivialization R B F = {to_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 := _}