LeanPool.WhiteheadTheorem.RelHomotopyGroup.Defs #
Imported Lean Pool material for LeanPool.WhiteheadTheorem.RelHomotopyGroup.Defs.
relative generalized loops
Equations
- RelGenLoop n X A a = {f : C(Fin n → ↑unitInterval, X) | (∀ y ∈ Cube.boundary (Fin n), f y ∈ A) ∧ ∀ y ∈ Cube.boundaryJar n, f y = ↑a}
Instances For
The constant RelGenLoop at a.
Equations
- RelGenLoop.const = ⟨ContinuousMap.const (Fin n → ↑unitInterval) ↑a, ⋯⟩
Instances For
Equations
- RelGenLoop.inhabited = { default := RelGenLoop.const }
A homotopy between two relative generalized loops.
The intermediate maps of the homotopy always send ∂I^n into A ⊆ X and ⊔I^n to a ∈ A.
Equations
- RelGenLoop.Homotopic f g = (↑f).HomotopicWith ↑g fun (f : C(Fin n → ↑unitInterval, X)) => f ∈ RelGenLoop n X A a
Instances For
For a continuous function f to be a RelGenLoop,
it suffices to show that f send the top face into A ⊆ X and ⊔I^n to a ∈ A.
Note: this lemma does not work in dimension 0.
RelGenLoop.Homotopic is an equivalence relationship.
Equations
- RelGenLoop.Homotopic.setoid n X A a = { r := RelGenLoop.Homotopic, iseqv := ⋯ }
The 0-dimensional relative generalized loops based at a are in bijection with
the 0-dimensional generalized loops based at a.
Equations
Instances For
We have defined relative homotopy "groups" as mere sets. The group structure is not needed for the Whitehead theorem.
Equations
- RelHomotopyGroup n X A a = Quotient (RelGenLoop.Homotopic.setoid n X A a)
Instances For
Equations
- Topology.termπ_rel = Lean.ParserDescr.node `Topology.termπ_rel 1024 (Lean.ParserDescr.symbol "π_rel")
Instances For
Equations
The 0-th relative homotopy "group" π₀(X, A, a) is in bijection with
the 0-th homotopy "group" π₀(X, a).
Equations
- RelHomotopyGroup.equivPi0 X A a = Quotient.congr (RelGenLoop.equivGenLoop X A a) ⋯
Instances For
Equations
- RelHomotopyGroup.iStar' n X A a f = ⟦⟨{ toFun := Subtype.val ∘ ⇑↑f, continuous_toFun := ⋯ }, ⋯⟩⟧
Instances For
The inclusion map $i_*$ (of pointed sets) from πₙ(A, a) to πₙ(X, a)
Equations
- RelHomotopyGroup.iStar n X A a = Quotient.lift (RelHomotopyGroup.iStar' n X A a) ⋯
Instances For
Instances For
The inclusion map $j_*$ (of pointed sets) from πₙ(A, a) to πₙ(X, A, a)
Equations
- RelHomotopyGroup.jStar n X A a = Quotient.lift (RelHomotopyGroup.jStar' n X A a) ⋯
Instances For
Restrict f : C(I^ Fin (n + 1), X) to the top face
(where the last coordinate equals 1).
Equations
- RelHomotopyGroup.bd' n X A a f = ⟦⟨{ toFun := fun (y : Fin n → ↑unitInterval) => ⟨(⇑↑f ∘ ⇑Cube.inclToTop) y, ⋯⟩, continuous_toFun := ⋯ }, ⋯⟩⟧
Instances For
The boundary map $∂$ (of pointed sets) from πₙ₊₁(X, A, a) to πₙ(A, a)
Equations
- RelHomotopyGroup.bd n X A a = Quotient.lift (RelHomotopyGroup.bd' n X A a) ⋯
Instances For
The induced maps iStar, jStar, and bd preserve the distinguished point,
i.e., they map (the homotopy class of) the constant loop to the constant loop.
Some useful lemmas for the compression_criterion
Let g be a continuous function from I^ Fin n to X.
If g is homotopic rel ∂I^n to some f : RelGenLoop n X A a,
then g itself can be regarded as a RelGenLoop.
Equations
- RelGenLoop.ofHomotopyRel f g H = ⟨g, ⋯⟩