Documentation

TauCeti.AlgebraicTopology.Homotopy.Hurewicz.Relative

Surjectivity of the relative Hurewicz map, and the isomorphism for highly connected spaces #

Let A be a path-connected subspace of a space X and a₀ ∈ A. Suppose that every point of X is joined by a path to a point of A, and that the relative homotopy sets πₖ(X, A, a₀) are trivial for 0 < k < n, where n ≥ 2. This file proves that the relative Hurewicz map πₙ(X, A, a₀) → Hₙ(X, A; ℤ), [p] ↦ p_*[Iⁿ], is surjective (TauCeti.RelHomotopyGroup.surjective_hurewicz).

This is half of the relative Hurewicz theorem in degree n. Unlike injectivity, it needs no assumption on the fundamental group of A: under these hypotheses the relative Hurewicz map identifies Hₙ(X, A; ℤ) with the quotient of πₙ(X, A, a₀) by the action of π₁(A, a₀) (Hatcher, Theorem 4.37), which is trivial when A is simply connected.

The file then proves injectivity, and so the relative Hurewicz isomorphism in degree n, when A and X are both (n - 1)-connected (TauCeti.RelHomotopyGroup.bijective_hurewicz_of_subsingleton_homotopyGroup). In degree two this is the full relative Hurewicz theorem: if A and X are simply connected, then π₂(X, A, a₀), which is commutative (TauCeti.RelHomotopyGroup.mul_comm_of_subsingleton), is isomorphic to H₂(X, A; ℤ). The proof of injectivity is a diagram chase. As πₙ₋₁(A, a₀) is trivial, every relative class comes from πₙ(X, a₀); the relative Hurewicz map extends the absolute one (TauCeti.RelHomotopyGroup.hurewicz_ofHomotopyGroup), and the absolute Hurewicz theorem for A and X (HomotopyGroup.bijective_hurewicz), together with exactness of the homology sequence of the pair at Hₙ(X; ℤ), shows that a class in the kernel comes from πₙ(A, a₀), hence is trivial in πₙ(X, A, a₀). For n ≥ 3 the relative Hurewicz theorem only needs A to be simply connected; that case is not covered here.

Proof #

The proof is Eilenberg's deformation of singular chains, as for the vanishing of Hₖ(X, A) below degree n (TauCeti.isZero_singularHomology_ofSubset_of_relHomotopyGroup).

As the relative Hurewicz map is a homomorphism in degrees at least two (TauCeti.RelHomotopyGroup.hurewiczIntHom), its image is a subgroup, and it contains a set of generators of Hₙ(X, A; ℤ).

Main results #

References #

Cubes with boundary in the subspace #

The class of a cube with boundary in a path-connected subspace is a relative Hurewicz class. If B is path connected and b ∈ B, then for every singular (n + 1)-cube c sending the boundary of the cube into B, the image under c : (Iⁿ⁺¹, ∂Iⁿ⁺¹) ⟶ (Y, B) of the generator of Hₙ₊₁(Iⁿ⁺¹, ∂Iⁿ⁺¹; R) is the relative Hurewicz class of a relative cube at b.

Surjectivity of the relative Hurewicz map #

Over ℤ, if B is path connected and b ∈ B, then for every singular (n + 2)-cube c sending the boundary of the cube into B, the image of every class of Hₙ₊₂(Iⁿ⁺², ∂Iⁿ⁺²; ℤ) under c : (Iⁿ⁺², ∂Iⁿ⁺²) ⟶ (Y, B) is the relative Hurewicz image of a class of πₙ₊₂(Y, B, b).

Over ℤ, if B is path connected and b ∈ B, then the class of every singular (n + 2)-cube c sending the boundary of the cube into B, read in relative singular homology Hₙ₊₂(Y, B; ℤ), is the relative Hurewicz image of a class of πₙ₊₂(Y, B, b).

theorem TauCeti.RelHomotopyGroup.surjective_hurewicz {Y : TopCat} {B : Set ↑Y} (b : ↑B) {n : ℕ} (h₀ : ∀ (y : ↑Y), ∃ a ∈ B, Joined y a) (hB : IsPathConnected B) (h : ∀ (k : ℕ), k + 1 < n + 2 → Subsingleton (RelHomotopyGroup (Fin k) { pair := TopPair.ofSubset B, basepoint := b })) :
Function.Surjective fun (a : RelHomotopyGroup (Fin (n + 1)) { pair := TopPair.ofSubset B, basepoint := b }) => (ModuleCat.Hom.hom (hurewicz (↧ℤ) (n + 1) a)) 1

The relative Hurewicz map is surjective. Let B be a path-connected subset of Y and b ∈ B. If every point of Y is joined by a path to a point of B, and the relative homotopy set π_{k+1}(Y, B, b) is trivial for every k + 1 < n + 2, then the relative Hurewicz map πₙ₊₂(Y, B, b) → Hₙ₊₂(Y, B; ℤ), [p] ↦ p_*[Iⁿ⁺²], is surjective.

The relative Hurewicz isomorphism for highly connected pairs #

Injectivity of the relative Hurewicz map for highly connected spaces. If πₖ(A, a₀) and πₖ(X, a₀) are trivial for every k < n + 2, then the relative Hurewicz map πₙ₊₂(X, A, a₀) → Hₙ₊₂(X, A; ℤ), [p] ↦ p_*[Iⁿ⁺²], is injective. In degree two, that is for n = 0, the hypotheses say that A and X are simply connected.

theorem TauCeti.RelHomotopyGroup.bijective_hurewicz_of_subsingleton_homotopyGroup {Y : TopCat} {B : Set ↑Y} {n : ℕ} (b : ↑B) (hB : ∀ k < n + 2, Subsingleton (HomotopyGroup (Fin k) (↑B) b)) (hY : ∀ k < n + 2, Subsingleton (HomotopyGroup (Fin k) ↑Y ↑b)) :
Function.Bijective fun (a : RelHomotopyGroup (Fin (n + 1)) { pair := TopPair.ofSubset B, basepoint := b }) => (ModuleCat.Hom.hom (hurewicz (↧ℤ) (n + 1) a)) 1

The relative Hurewicz isomorphism for highly connected spaces. Let B be a subspace of Y and b ∈ B. If πₖ(B, b) and πₖ(Y, b) are trivial for every k < n + 2, then the relative Hurewicz map πₙ₊₂(Y, B, b) → Hₙ₊₂(Y, B; ℤ), [p] ↦ p_*[Iⁿ⁺²], is bijective. In degree two, that is for n = 0, the hypotheses say that B and Y are simply connected.

noncomputable def TauCeti.RelHomotopyGroup.hurewiczAddEquivOfSubsingletonHomotopyGroup {Y : TopCat} {B : Set ↑Y} {n : ℕ} (b : ↑B) (hB : ∀ k < n + 2, Subsingleton (HomotopyGroup (Fin k) (↑B) b)) (hY : ∀ k < n + 2, Subsingleton (HomotopyGroup (Fin k) ↑Y ↑b)) :
Additive (RelHomotopyGroup (Fin (n + 1)) { pair := TopPair.ofSubset B, basepoint := b }) ≃+ ↑((TopPair.ofSubset B).singularHomology (↧ℤ) (n + 2))

The relative Hurewicz isomorphism πₙ₊₂(Y, B, b) ≃ Hₙ₊₂(Y, B; ℤ), [p] ↦ p_*[Iⁿ⁺²], when πₖ(B, b) and πₖ(Y, b) are trivial for every k < n + 2. In degree two, where B and Y are simply connected, this identifies π₂(Y, B, b), which is then commutative (TauCeti.RelHomotopyGroup.mul_comm_of_subsingleton), with H₂(Y, B; ℤ).

Instances For
    @[simp]
    theorem TauCeti.RelHomotopyGroup.hurewiczAddEquivOfSubsingletonHomotopyGroup_apply {Y : TopCat} {B : Set ↑Y} {n : ℕ} (b : ↑B) (hB : ∀ k < n + 2, Subsingleton (HomotopyGroup (Fin k) (↑B) b)) (hY : ∀ k < n + 2, Subsingleton (HomotopyGroup (Fin k) ↑Y ↑b)) (a : Additive (RelHomotopyGroup (Fin (n + 1)) { pair := TopPair.ofSubset B, basepoint := b })) :