Documentation

TauCeti.AlgebraicTopology.UniversalCover.Classification.Pointed

Pointed connected covers are determined by the subgroup they recover #

A pointed cover of (X, x) is a covering map p : E → X together with a lift e₀ of x. It recovers the subgroup p_* π₁(E, e₀) ≤ π₁(X, x), and IsCoveringMap.stabilizer_eq_range identifies that subgroup with the stabiliser of e₀ for the monodromy action. This file proves that, for path-connected and locally path-connected total spaces, the recovered subgroup determines the pointed cover:

This is the faithful-and-full half of the correspondence between pointed connected covers of (X, x) and subgroups of π₁(X, x); the remaining half is the construction, from a subgroup H, of a cover recovering H, which is a separate milestone. Nothing here needs X itself to be path-connected, locally path-connected or semilocally simply connected: those hypotheses are what make the correspondence onto, not what makes it injective.

The existence direction is Mathlib's lifting criterion IsCoveringMap.existsUnique_continuousMap_lifts_of_range_le, applied with the total space E as the source; the only work is the basepoint bookkeeping needed to state it symmetrically in the two covers, since a pointed cover recovers a subgroup of π₁(X, x) rather than of π₁(X, p e₀). The containment direction is elementary functoriality. Turning the two resulting maps into a homeomorphism uses Mathlib's uniqueness of lifts on a preconnected space, IsCoveringMap.eq_of_comp_eq, and no further covering-space input.

Specialising to simply connected total spaces gives the uniqueness of the universal cover: any two simply connected covers of X are isomorphic over X, by a homeomorphism matching chosen lifts of a basepoint. (Their universal property is already Mathlib's IsCoveringMap.existsUnique_continuousMap_lifts, which lifts any map from a simply connected, locally path-connected space.)

Main declarations #

References #

It consumes the lifting criterion in TauCeti.Topology.Homotopy.Covering and the recovered-subgroup API of TauCeti.Topology.Homotopy.Monodromy.Basic. The lifting criterion IsCoveringMap.existsUnique_continuousMap_lifts_of_range_le is Junyan Xu's, in Mathlib.Topology.Homotopy.Lifting, while the uniqueness of lifts IsCoveringMap.eq_of_comp_eq is Thomas Browning's, in Mathlib.Topology.Covering.Basic, where it is recorded as Proposition 1.34 of [hatcher02].

theorem IsCoveringMap.existsUnique_continuousMap_comp_eq_of_range_le {E : Type u_1} {F : Type u_2} {X : Type u_3} [TopologicalSpace E] [TopologicalSpace F] [TopologicalSpace X] {p : E → X} {q : F → X} {x : X} {e₀ : E} {f₀ : F} [PathConnectedSpace E] [LocallyPathConnectedSpace E] (hq : IsCoveringMap q) (hp : Continuous p) (hpe : p e₀ = x) (hqf : q f₀ = x) (hle : (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := hp } hpe).range ≤ (FundamentalGroup.mapOfEq { toFun := q, continuous_toFun := ⋯ } hqf).range) :
∃! g : C(E, F), g e₀ = f₀ ∧ q ∘ ⇑g = p

The lifting criterion for pointed covers: if the subgroup recovered by (p, e₀) is contained in the subgroup recovered by the covering (q, f₀), then there is a unique continuous map E → F over X carrying e₀ to f₀.

Only continuity is required of p; the covering hypothesis is needed for the target q.

theorem IsCoveringMap.exists_continuousMap_comp_eq_iff_range_le {E : Type u_1} {F : Type u_2} {X : Type u_3} [TopologicalSpace E] [TopologicalSpace F] [TopologicalSpace X] {p : E → X} {q : F → X} {x : X} {e₀ : E} {f₀ : F} [PathConnectedSpace E] [LocallyPathConnectedSpace E] (hq : IsCoveringMap q) (hp : Continuous p) (hpe : p e₀ = x) (hqf : q f₀ = x) :
(∃ (g : C(E, F)), g e₀ = f₀ ∧ q ∘ ⇑g = p) ↔ (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := hp } hpe).range ≤ (FundamentalGroup.mapOfEq { toFun := q, continuous_toFun := ⋯ } hqf).range

A map of pointed covers over X exists exactly when the subgroup recovered by the source is contained in the subgroup recovered by the target.

The forward implication is functoriality of π₁ and needs no hypothesis on p or q beyond continuity; the reverse implication is the lifting criterion.

theorem IsCoveringMap.exists_homeomorph_comp_eq_of_range_eq {E : Type u_1} {F : Type u_2} {X : Type u_3} [TopologicalSpace E] [TopologicalSpace F] [TopologicalSpace X] {p : E → X} {q : F → X} {x : X} {e₀ : E} {f₀ : F} [PathConnectedSpace E] [LocallyPathConnectedSpace E] [PathConnectedSpace F] [LocallyPathConnectedSpace F] (hp : IsCoveringMap p) (hq : IsCoveringMap q) (hpe : p e₀ = x) (hqf : q f₀ = x) (hrange : (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } hpe).range = (FundamentalGroup.mapOfEq { toFun := q, continuous_toFun := ⋯ } hqf).range) :
∃ (h : E ≃ₜ F), h e₀ = f₀ ∧ q ∘ ⇑h = p

Two pointed covers of (X, x) with path-connected, locally path-connected total spaces which recover the same subgroup of π₁(X, x) are isomorphic over X, by a homeomorphism matching the chosen lifts.

theorem IsCoveringMap.exists_homeomorph_comp_eq_iff_range_eq {E : Type u_1} {F : Type u_2} {X : Type u_3} [TopologicalSpace E] [TopologicalSpace F] [TopologicalSpace X] {p : E → X} {q : F → X} {x : X} {e₀ : E} {f₀ : F} [PathConnectedSpace E] [LocallyPathConnectedSpace E] [PathConnectedSpace F] [LocallyPathConnectedSpace F] (hp : IsCoveringMap p) (hq : IsCoveringMap q) (hpe : p e₀ = x) (hqf : q f₀ = x) :
(∃ (h : E ≃ₜ F), h e₀ = f₀ ∧ q ∘ ⇑h = p) ↔ (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } hpe).range = (FundamentalGroup.mapOfEq { toFun := q, continuous_toFun := ⋯ } hqf).range

Pointed connected covers are classified by the subgroup they recover. Two pointed covers with path-connected, locally path-connected total spaces are isomorphic over X, by a homeomorphism matching the chosen lifts, exactly when they recover the same subgroup of π₁(X, x).

noncomputable def IsCoveringMap.totalSpaceHomeomorphOfRangeEq {E : Type u_1} {F : Type u_2} {X : Type u_3} [TopologicalSpace E] [TopologicalSpace F] [TopologicalSpace X] {p : E → X} {q : F → X} {x : X} {e₀ : E} {f₀ : F} [PathConnectedSpace E] [LocallyPathConnectedSpace E] [PathConnectedSpace F] [LocallyPathConnectedSpace F] (hp : IsCoveringMap p) (hq : IsCoveringMap q) (hpe : p e₀ = x) (hqf : q f₀ = x) (hrange : (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } hpe).range = (FundamentalGroup.mapOfEq { toFun := q, continuous_toFun := ⋯ } hqf).range) :
E ≃ₜ F

The homeomorphism over X between two pointed covers recovering the same subgroup of π₁(X, x), matching the chosen lifts of x.

Equations
Instances For
    @[simp]
    theorem IsCoveringMap.totalSpaceHomeomorphOfRangeEq_apply_basepoint {E : Type u_1} {F : Type u_2} {X : Type u_3} [TopologicalSpace E] [TopologicalSpace F] [TopologicalSpace X] {p : E → X} {q : F → X} {x : X} {e₀ : E} {f₀ : F} [PathConnectedSpace E] [LocallyPathConnectedSpace E] [PathConnectedSpace F] [LocallyPathConnectedSpace F] (hp : IsCoveringMap p) (hq : IsCoveringMap q) (hpe : p e₀ = x) (hqf : q f₀ = x) (hrange : (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } hpe).range = (FundamentalGroup.mapOfEq { toFun := q, continuous_toFun := ⋯ } hqf).range) :
    (hp.totalSpaceHomeomorphOfRangeEq hq hpe hqf hrange) e₀ = f₀

    The comparison homeomorphism carries the chosen lift of x in E to the chosen lift in F.

    @[simp]
    theorem IsCoveringMap.comp_totalSpaceHomeomorphOfRangeEq {E : Type u_1} {F : Type u_2} {X : Type u_3} [TopologicalSpace E] [TopologicalSpace F] [TopologicalSpace X] {p : E → X} {q : F → X} {x : X} {e₀ : E} {f₀ : F} [PathConnectedSpace E] [LocallyPathConnectedSpace E] [PathConnectedSpace F] [LocallyPathConnectedSpace F] (hp : IsCoveringMap p) (hq : IsCoveringMap q) (hpe : p e₀ = x) (hqf : q f₀ = x) (hrange : (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } hpe).range = (FundamentalGroup.mapOfEq { toFun := q, continuous_toFun := ⋯ } hqf).range) :
    q ∘ ⇑(hp.totalSpaceHomeomorphOfRangeEq hq hpe hqf hrange) = p

    The comparison homeomorphism lies over the base.

    theorem IsCoveringMap.comp_totalSpaceHomeomorphOfRangeEq_apply {E : Type u_1} {F : Type u_2} {X : Type u_3} [TopologicalSpace E] [TopologicalSpace F] [TopologicalSpace X] {p : E → X} {q : F → X} {x : X} {e₀ : E} {f₀ : F} [PathConnectedSpace E] [LocallyPathConnectedSpace E] [PathConnectedSpace F] [LocallyPathConnectedSpace F] (hp : IsCoveringMap p) (hq : IsCoveringMap q) (hpe : p e₀ = x) (hqf : q f₀ = x) (hrange : (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } hpe).range = (FundamentalGroup.mapOfEq { toFun := q, continuous_toFun := ⋯ } hqf).range) (e : E) :
    q ((hp.totalSpaceHomeomorphOfRangeEq hq hpe hqf hrange) e) = p e

    The comparison homeomorphism lies over the base, pointwise.

    Not a simp lemma: its left-hand side q (h e) has the variable q as head symbol, so Lean rejects it as a global simp lemma.

    theorem IsCoveringMap.eq_totalSpaceHomeomorphOfRangeEq {E : Type u_1} {F : Type u_2} {X : Type u_3} [TopologicalSpace E] [TopologicalSpace F] [TopologicalSpace X] {p : E → X} {q : F → X} {x : X} {e₀ : E} {f₀ : F} [PathConnectedSpace E] [LocallyPathConnectedSpace E] [PathConnectedSpace F] [LocallyPathConnectedSpace F] (hp : IsCoveringMap p) (hq : IsCoveringMap q) (hpe : p e₀ = x) (hqf : q f₀ = x) (hrange : (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } hpe).range = (FundamentalGroup.mapOfEq { toFun := q, continuous_toFun := ⋯ } hqf).range) {g : C(E, F)} (hg₀ : g e₀ = f₀) (hgc : q ∘ ⇑g = p) :
    g = ↑(hp.totalSpaceHomeomorphOfRangeEq hq hpe hqf hrange)

    The comparison homeomorphism is characterised by the two properties defining it: it is the only continuous map E → F over X carrying the chosen lift of x in E to the chosen lift in F.

    @[simp]
    theorem IsCoveringMap.totalSpaceHomeomorphOfRangeEq_symm_apply_basepoint {E : Type u_1} {F : Type u_2} {X : Type u_3} [TopologicalSpace E] [TopologicalSpace F] [TopologicalSpace X] {p : E → X} {q : F → X} {x : X} {e₀ : E} {f₀ : F} [PathConnectedSpace E] [LocallyPathConnectedSpace E] [PathConnectedSpace F] [LocallyPathConnectedSpace F] (hp : IsCoveringMap p) (hq : IsCoveringMap q) (hpe : p e₀ = x) (hqf : q f₀ = x) (hrange : (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } hpe).range = (FundamentalGroup.mapOfEq { toFun := q, continuous_toFun := ⋯ } hqf).range) :
    (hp.totalSpaceHomeomorphOfRangeEq hq hpe hqf hrange).symm f₀ = e₀

    The inverse of the comparison homeomorphism carries the chosen lift of x in F back to the chosen lift in E.

    theorem IsCoveringMap.comp_totalSpaceHomeomorphOfRangeEq_symm_apply {E : Type u_1} {F : Type u_2} {X : Type u_3} [TopologicalSpace E] [TopologicalSpace F] [TopologicalSpace X] {p : E → X} {q : F → X} {x : X} {e₀ : E} {f₀ : F} [PathConnectedSpace E] [LocallyPathConnectedSpace E] [PathConnectedSpace F] [LocallyPathConnectedSpace F] (hp : IsCoveringMap p) (hq : IsCoveringMap q) (hpe : p e₀ = x) (hqf : q f₀ = x) (hrange : (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } hpe).range = (FundamentalGroup.mapOfEq { toFun := q, continuous_toFun := ⋯ } hqf).range) (f : F) :
    p ((hp.totalSpaceHomeomorphOfRangeEq hq hpe hqf hrange).symm f) = q f

    The inverse of the comparison homeomorphism also lies over the base. Not a simp lemma, for the same variable-head reason as comp_totalSpaceHomeomorphOfRangeEq_apply.

    noncomputable def IsCoveringMap.deckMulEquivOfRangeEq {E : Type u_1} {F : Type u_2} {X : Type u_3} [TopologicalSpace E] [TopologicalSpace F] [TopologicalSpace X] {p : E → X} {q : F → X} {x : X} {e₀ : E} {f₀ : F} [PathConnectedSpace E] [LocallyPathConnectedSpace E] [PathConnectedSpace F] [LocallyPathConnectedSpace F] (hp : IsCoveringMap p) (hq : IsCoveringMap q) (hpe : p e₀ = x) (hqf : q f₀ = x) (hrange : (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } hpe).range = (FundamentalGroup.mapOfEq { toFun := q, continuous_toFun := ⋯ } hqf).range) :
    ↥(deck p) ≃* ↥(deck q)

    Pointed covers recovering the same subgroup of π₁(X, x) have isomorphic deck transformation groups, by conjugation along the comparison homeomorphism.

    Equations
    Instances For
      @[simp]
      theorem IsCoveringMap.deckMulEquivOfRangeEq_apply_coe {E : Type u_1} {F : Type u_2} {X : Type u_3} [TopologicalSpace E] [TopologicalSpace F] [TopologicalSpace X] {p : E → X} {q : F → X} {x : X} {e₀ : E} {f₀ : F} [PathConnectedSpace E] [LocallyPathConnectedSpace E] [PathConnectedSpace F] [LocallyPathConnectedSpace F] (hp : IsCoveringMap p) (hq : IsCoveringMap q) (hpe : p e₀ = x) (hqf : q f₀ = x) (hrange : (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } hpe).range = (FundamentalGroup.mapOfEq { toFun := q, continuous_toFun := ⋯ } hqf).range) (φ : ↥(deck p)) (f : F) :
      ↑((hp.deckMulEquivOfRangeEq hq hpe hqf hrange) φ) f = (hp.totalSpaceHomeomorphOfRangeEq hq hpe hqf hrange) (↑φ ((hp.totalSpaceHomeomorphOfRangeEq hq hpe hqf hrange).symm f))

      The deck-group isomorphism attached to two pointed covers with the same recovered subgroup is conjugation by the comparison homeomorphism.

      @[simp]
      theorem IsCoveringMap.deckMulEquivOfRangeEq_symm_apply_coe {E : Type u_1} {F : Type u_2} {X : Type u_3} [TopologicalSpace E] [TopologicalSpace F] [TopologicalSpace X] {p : E → X} {q : F → X} {x : X} {e₀ : E} {f₀ : F} [PathConnectedSpace E] [LocallyPathConnectedSpace E] [PathConnectedSpace F] [LocallyPathConnectedSpace F] (hp : IsCoveringMap p) (hq : IsCoveringMap q) (hpe : p e₀ = x) (hqf : q f₀ = x) (hrange : (FundamentalGroup.mapOfEq { toFun := p, continuous_toFun := ⋯ } hpe).range = (FundamentalGroup.mapOfEq { toFun := q, continuous_toFun := ⋯ } hqf).range) (ψ : ↥(deck q)) (e : E) :
      ↑((hp.deckMulEquivOfRangeEq hq hpe hqf hrange).symm ψ) e = (hp.totalSpaceHomeomorphOfRangeEq hq hpe hqf hrange).symm (↑ψ ((hp.totalSpaceHomeomorphOfRangeEq hq hpe hqf hrange) e))

      The inverse of that deck-group isomorphism is conjugation by the inverse comparison homeomorphism.

      theorem IsCoveringMap.exists_homeomorph_comp_eq_of_simplyConnectedSpace {E : Type u_1} {F : Type u_2} {X : Type u_3} [TopologicalSpace E] [TopologicalSpace F] [TopologicalSpace X] {p : E → X} {q : F → X} {x : X} {e₀ : E} {f₀ : F} [SimplyConnectedSpace E] [LocallyPathConnectedSpace E] [SimplyConnectedSpace F] [LocallyPathConnectedSpace F] (hp : IsCoveringMap p) (hq : IsCoveringMap q) (hpe : p e₀ = x) (hqf : q f₀ = x) :
      ∃ (h : E ≃ₜ F), h e₀ = f₀ ∧ q ∘ ⇑h = p

      Uniqueness of the universal cover. Any two simply connected, locally path-connected covers of X are isomorphic over X, by a homeomorphism matching chosen lifts of a basepoint.

      Both recovered subgroups are trivial, so the classification of pointed covers applies.