mathlib3 documentation

data.bundle

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 #

Implementation Notes #

References #

theorem bundle.total_space.ext {B : Type u_1} {F : Type u_4} {E : B Type u_5} (x y : bundle.total_space F E) (h : x.proj = y.proj) (h_1 : x.snd == y.snd) :
x = y
theorem bundle.total_space.ext_iff {B : Type u_1} {F : Type u_4} {E : B Type u_5} (x y : bundle.total_space F E) :
x = y x.proj = y.proj x.snd == y.snd
@[protected, instance]
Equations
theorem bundle.total_space.mk_cast {B : Type u_1} {F : Type u_2} {E : B Type u_3} {x x' : B} (h : x = x') (b : E x) :
{proj := x', snd := cast _ b} = {proj := x, snd := b}
@[protected, instance]
def bundle.total_space.has_coe_t {B : Type u_1} {F : Type u_2} {E : B Type u_3} {x : B} :
Equations
@[simp]
theorem bundle.total_space.coe_proj {B : Type u_1} {F : Type u_2} {E : B Type u_3} (x : B) (v : E x) :
@[simp]
theorem bundle.total_space.coe_snd {B : Type u_1} {F : Type u_2} {E : B Type u_3} {x : B} {y : E x} :
y.snd = y
theorem bundle.total_space.coe_eq_mk {B : Type u_1} {F : Type u_2} {E : B Type u_3} {x : B} (v : E x) :
v = {proj := x, snd := v}
theorem bundle.total_space.eta {B : Type u_1} {F : Type u_2} {E : B Type u_3} (z : bundle.total_space F E) :
{proj := z.proj, snd := z.snd} = z
@[nolint, reducible]
def bundle.trivial (B : Type u_1) (F : Type u_2) :
B Type u_2

bundle.trivial B F is the trivial bundle over B of fiber F.

Equations

The trivial bundle, unlike other bundles, has a canonical projection on the fiber.

Equations
def bundle.total_space.to_prod (B : Type u_1) (F : Type u_2) :
bundle.total_space F (λ (_x : B), F) B × F

A trivial bundle is equivalent to the product B × F.

Equations
@[simp]
theorem bundle.total_space.to_prod_symm_apply_proj (B : Type u_1) (F : Type u_2) (x : B × F) :
@[simp]
theorem bundle.total_space.to_prod_symm_apply_snd (B : Type u_1) (F : Type u_2) (x : B × F) :
@[simp]
theorem bundle.total_space.to_prod_apply (B : Type u_1) (F : Type u_2) (x : bundle.total_space F (λ (_x : B), F)) :
def bundle.pullback {B : Type u_1} {B' : Type u_4} (f : B' B) (E : B Type u_2) :
B' Type u_2

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').

Equations
  • f *ᵖ E = λ (x : B'), E (f x)
Instances for bundle.pullback
@[protected, instance]
def bundle.pullback.nonempty {B : Type u_1} {E : B Type u_3} {B' : Type u_4} {f : B' B} {x : B'} [nonempty (E (f x))] :
nonempty (f *ᵖ E x)
@[simp]
def bundle.pullback_total_space_embedding {B : Type u_1} {F : Type u_2} {E : B Type u_3} {B' : Type u_4} (f : B' B) :

Natural embedding of the total space of f *ᵖ E into B' × total_space E.

Equations
def bundle.pullback.lift {B : Type u_1} {F : Type u_2} {E : B Type u_3} {B' : Type u_4} (f : B' B) :

The base map f : B' → B lifts to a canonical map on the total spaces.

Equations
@[simp]
theorem bundle.pullback.lift_snd {B : Type u_1} {F : Type u_2} {E : B Type u_3} {B' : Type u_4} (f : B' B) (ᾰ : bundle.total_space F f *ᵖ E) :
@[simp]
theorem bundle.pullback.lift_proj {B : Type u_1} {F : Type u_2} {E : B Type u_3} {B' : Type u_4} (f : B' B) (ᾰ : bundle.total_space F f *ᵖ E) :
@[simp]
theorem bundle.pullback.lift_mk {B : Type u_1} {F : Type u_2} {E : B Type u_3} {B' : Type u_4} (f : B' B) (x : B') (y : E (f x)) :
bundle.pullback.lift f {proj := x, snd := y} = {proj := f x, snd := y}
@[simp]
theorem bundle.coe_snd_map_apply {B : Type u_1} {F : Type u_2} {E : B Type u_3} [Π (x : B), has_add (E x)] (x : B) (v w : E x) :
(v + w).snd = v.snd + w.snd
@[simp]
theorem bundle.coe_snd_map_smul {B : Type u_1} {F : Type u_2} {E : B Type u_3} {R : Type u_4} [Π (x : B), has_smul R (E x)] (x : B) (r : R) (v : E x) :
(r v).snd = r v.snd