mathlib documentation

topology.homotopy.product

Product of homotopies #

In this file, we introduce definitions for the product of homotopies. We show that the products of relative homotopies are still relative homotopies. Finally, we specialize to the case of path homotopies, and provide the definition for the product of path classes. We show various lemmas associated with these products, such as the fact that path products commute with path composition, and that projection is the inverse of products.

Definitions #

General homotopies #

Path products #

@[simp]
theorem continuous_map.homotopy.pi_apply {I : Type u_1} {A : Type u_2} {X : I → Type u_3} [Π (i : I), topological_space (X i)] [topological_space A] {f g : Π (i : I), C(A, X i)} (homotopies : Π (i : I), (f i).homotopy (g i)) (t : unit_interval × A) (i : I) :
(continuous_map.homotopy.pi homotopies) t i = (homotopies i) t
def continuous_map.homotopy.pi {I : Type u_1} {A : Type u_2} {X : I → Type u_3} [Π (i : I), topological_space (X i)] [topological_space A] {f g : Π (i : I), C(A, X i)} (homotopies : Π (i : I), (f i).homotopy (g i)) :

The product homotopy of homotopies between functions f and g

Equations
@[simp]
theorem continuous_map.homotopy_rel.pi_apply {I : Type u_1} {A : Type u_2} {X : I → Type u_3} [Π (i : I), topological_space (X i)] [topological_space A] {f g : Π (i : I), C(A, X i)} {S : set A} (homotopies : Π (i : I), (f i).homotopy_rel (g i) S) (t : unit_interval × A) (i : I) :
(continuous_map.homotopy_rel.pi homotopies) t i = (homotopies i) t
def continuous_map.homotopy_rel.pi {I : Type u_1} {A : Type u_2} {X : I → Type u_3} [Π (i : I), topological_space (X i)] [topological_space A] {f g : Π (i : I), C(A, X i)} {S : set A} (homotopies : Π (i : I), (f i).homotopy_rel (g i) S) :

The relative product homotopy of homotopies between functions f and g

Equations
@[simp]
theorem continuous_map.homotopy_rel.pi_to_homotopy {I : Type u_1} {A : Type u_2} {X : I → Type u_3} [Π (i : I), topological_space (X i)] [topological_space A] {f g : Π (i : I), C(A, X i)} {S : set A} (homotopies : Π (i : I), (f i).homotopy_rel (g i) S) :
def continuous_map.homotopy.prod {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {A : Type u_3} [topological_space A] {f₀ f₁ : C(A, α)} {g₀ g₁ : C(A, β)} (F : f₀.homotopy f₁) (G : g₀.homotopy g₁) :
(f₀.prod_mk g₀).homotopy (f₁.prod_mk g₁)

The product of homotopies F and G, where F takes f₀ to f₁ and G takes g₀ to g₁

Equations
@[simp]
theorem continuous_map.homotopy.prod_apply {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {A : Type u_3} [topological_space A] {f₀ f₁ : C(A, α)} {g₀ g₁ : C(A, β)} (F : f₀.homotopy f₁) (G : g₀.homotopy g₁) (t : unit_interval × A) :
(F.prod G) t = (F t, G t)
@[simp]
theorem continuous_map.homotopy_rel.prod_apply {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {A : Type u_3} [topological_space A] {f₀ f₁ : C(A, α)} {g₀ g₁ : C(A, β)} {S : set A} (F : f₀.homotopy_rel f₁ S) (G : g₀.homotopy_rel g₁ S) (t : unit_interval × A) :
(F.prod G) t = (F t, G t)
@[simp]
theorem continuous_map.homotopy_rel.prod_to_homotopy {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {A : Type u_3} [topological_space A] {f₀ f₁ : C(A, α)} {g₀ g₁ : C(A, β)} {S : set A} (F : f₀.homotopy_rel f₁ S) (G : g₀.homotopy_rel g₁ S) :
def continuous_map.homotopy_rel.prod {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {A : Type u_3} [topological_space A] {f₀ f₁ : C(A, α)} {g₀ g₁ : C(A, β)} {S : set A} (F : f₀.homotopy_rel f₁ S) (G : g₀.homotopy_rel g₁ S) :
(f₀.prod_mk g₀).homotopy_rel (f₁.prod_mk g₁) S

The relative product of homotopies F and G, where F takes f₀ to f₁ and G takes g₀ to g₁

Equations
def path.homotopic.pi_homotopy {ι : Type u_1} {X : ι → Type u_2} [Π (i : ι), topological_space (X i)] {as bs : Π (i : ι), X i} (γ₀ γ₁ : Π (i : ι), path (as i) (bs i)) (H : Π (i : ι), (γ₀ i).homotopy (γ₁ i)) :
(path.pi γ₀).homotopy (path.pi γ₁)

The product of a family of path homotopies. This is just a specialization of homotopy_rel

Equations
noncomputable def path.homotopic.pi {ι : Type u_1} {X : ι → Type u_2} [Π (i : ι), topological_space (X i)] {as bs : Π (i : ι), X i} (γ : Π (i : ι), path.homotopic.quotient (as i) (bs i)) :

The product of a family of path homotopy classes

Equations
theorem path.homotopic.pi_lift {ι : Type u_1} {X : ι → Type u_2} [Π (i : ι), topological_space (X i)] {as bs : Π (i : ι), X i} (γ : Π (i : ι), path (as i) (bs i)) :
path.homotopic.pi (λ (i : ι), γ i) = path.pi γ
theorem path.homotopic.comp_pi_eq_pi_comp {ι : Type u_1} {X : ι → Type u_2} [Π (i : ι), topological_space (X i)] {as bs cs : Π (i : ι), X i} (γ₀ : Π (i : ι), path.homotopic.quotient (as i) (bs i)) (γ₁ : Π (i : ι), path.homotopic.quotient (bs i) (cs i)) :
(path.homotopic.pi γ₀).comp (path.homotopic.pi γ₁) = path.homotopic.pi (λ (i : ι), (γ₀ i).comp (γ₁ i))

Composition and products commute. This is path.trans_pi_eq_pi_trans descended to path homotopy classes

@[reducible]
def path.homotopic.proj {ι : Type u_1} {X : ι → Type u_2} [Π (i : ι), topological_space (X i)] {as bs : Π (i : ι), X i} (i : ι) (p : path.homotopic.quotient as bs) :

Abbreviation for projection onto the ith coordinate

Equations
@[simp]
theorem path.homotopic.proj_pi {ι : Type u_1} {X : ι → Type u_2} [Π (i : ι), topological_space (X i)] {as bs : Π (i : ι), X i} (i : ι) (paths : Π (i : ι), path.homotopic.quotient (as i) (bs i)) :

Lemmas showing projection is the inverse of pi

@[simp]
theorem path.homotopic.pi_proj {ι : Type u_1} {X : ι → Type u_2} [Π (i : ι), topological_space (X i)] {as bs : Π (i : ι), X i} (p : path.homotopic.quotient as bs) :
def path.homotopic.prod_homotopy {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {a₁ a₂ : α} {b₁ b₂ : β} {p₁ p₁' : path a₁ a₂} {p₂ p₂' : path b₁ b₂} (h₁ : p₁.homotopy p₁') (h₂ : p₂.homotopy p₂') :
(p₁.prod p₂).homotopy (p₁'.prod p₂')

The product of homotopies h₁ and h₂. This is homotopy_rel.prod specialized for path homotopies.

Equations
def path.homotopic.prod {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {a₁ a₂ : α} {b₁ b₂ : β} (q₁ : path.homotopic.quotient a₁ a₂) (q₂ : path.homotopic.quotient b₁ b₂) :
path.homotopic.quotient (a₁, b₁) (a₂, b₂)

The product of path classes q₁ and q₂. This is path.prod descended to the quotient

Equations
theorem path.homotopic.prod_lift {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {a₁ a₂ : α} {b₁ b₂ : β} (p₁ : path a₁ a₂) (p₂ : path b₁ b₂) :
theorem path.homotopic.comp_prod_eq_prod_comp {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {a₁ a₂ a₃ : α} {b₁ b₂ b₃ : β} (q₁ : path.homotopic.quotient a₁ a₂) (q₂ : path.homotopic.quotient b₁ b₂) (r₁ : path.homotopic.quotient a₂ a₃) (r₂ : path.homotopic.quotient b₂ b₃) :
(path.homotopic.prod q₁ q₂).comp (path.homotopic.prod r₁ r₂) = path.homotopic.prod (q₁.comp r₁) (q₂.comp r₂)

Products commute with path composition. This is trans_prod_eq_prod_trans descended to the quotient.

@[reducible]
def path.homotopic.proj_left {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {c₁ c₂ : α × β} (p : path.homotopic.quotient c₁ c₂) :

Abbreviation for projection onto the left coordinate of a path class

Equations
@[reducible]
def path.homotopic.proj_right {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {c₁ c₂ : α × β} (p : path.homotopic.quotient c₁ c₂) :

Abbreviation for projection onto the right coordinate of a path class

Equations
@[simp]
theorem path.homotopic.proj_left_prod {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {a₁ a₂ : α} {b₁ b₂ : β} (q₁ : path.homotopic.quotient a₁ a₂) (q₂ : path.homotopic.quotient b₁ b₂) :

Lemmas showing projection is the inverse of product

@[simp]
theorem path.homotopic.proj_right_prod {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {a₁ a₂ : α} {b₁ b₂ : β} (q₁ : path.homotopic.quotient a₁ a₂) (q₂ : path.homotopic.quotient b₁ b₂) :
@[simp]
theorem path.homotopic.prod_proj_left_proj_right {α : Type u_1} {β : Type u_2} [topological_space α] [topological_space β] {a₁ a₂ : α} {b₁ b₂ : β} (p : path.homotopic.quotient (a₁, b₁) (a₂, b₂)) :