Theorem 1.38 (classification of covering spaces): path-connected covering spaces subgroups of , up to conjugacy when basepoints are ignored
ProvedHatcher.classification_of_covering_spacesThroughout, a covering space of is a space with a map such that each has an open neighborhood whose preimage is a disjoint union of open sets each mapped homeomorphically onto by (Hatcher, p. 56; Mathlib's IsCoveringMap). Given basepoints , , we write for the induced homomorphism (Hatcher.coverHom) and for its image (Hatcher.coverSubgroup).
Theorem 1.38. Let be path-connected, locally path-connected and semilocally simply-connected. Then there is a bijection between the set of basepoint-preserving isomorphism classes of path-connected covering spaces and the set of subgroups of , obtained by associating the subgroup to the covering space . If basepoints are ignored, this correspondence gives a bijection between isomorphism classes of path-connected covering spaces and conjugacy classes of subgroups of .
Formally the theorem is the conjunction of:
- (surjectivity) for every subgroup there is a path-connected covering space with basepoint with ;
- (well-definedness and injectivity on basepoint-preserving classes) two path-connected covering spaces with basepoints are basepoint-preservingly isomorphic iff their subgroups are equal;
- (basepoints ignored) two path-connected covering spaces are isomorphic iff, for some choice of basepoints , , the subgroups and are conjugate in .
Together, 1 and 2 say that induces a bijection from basepoint-preserving isomorphism classes onto the set of subgroups, and 3 (with the change-of-basepoint lemma, pp. 67–68) says it descends to a bijection from isomorphism classes onto conjugacy classes.
Formalization Note Covering spaces are CoveringSpace X structures with total space in the universe of , which is where Hatcher's live. "Isomorphic" is the existence of a homeomorphism over (IsIsomorphic, IsPointedIsomorphic). Conjugacy is Subgroup.map (MulAut.conj g). Stating the theorem as this conjunction rather than as a bijection between quotient sets avoids forming the set of isomorphism classes of types and asserts the same content.
import Definitions.Def_Hatcher_Covering import Mathlib open Hatcher unitInterval universe u
namespace Hatcher
theorem classification_of_covering_spaces {X : Type u} [TopologicalSpace X]
[PathConnectedSpace X] [LocallyPathConnectedSpace X] (hX : IsSemilocallySimplyConnected X)
(x₀ : X) :
(∀ H : Subgroup (FundamentalGroup X x₀),
∃ C : PointedCover X x₀, PathConnectedSpace C.E ∧ C.subgroup = H) ∧
(∀ C₁ C₂ : PointedCover X x₀, PathConnectedSpace C₁.E → PathConnectedSpace C₂.E →
(IsPointedIsomorphic C₁ C₂ ↔ C₁.subgroup = C₂.subgroup)) ∧
∀ C₁ C₂ : CoveringSpace X, PathConnectedSpace C₁.E → PathConnectedSpace C₂.E →
(IsIsomorphic C₁ C₂ ↔
∃ (e₁ : C₁.E) (e₂ : C₂.E) (h₁ : C₁.p e₁ = x₀) (h₂ : C₂.p e₂ = x₀)
(g : FundamentalGroup X x₀),
(coverSubgroup C₁.p C₁.isCoveringMap.continuous h₁).map (MulAut.conj g).toMonoidHom =
coverSubgroup C₂.p C₂.isCoveringMap.continuous h₂) := by sorry
end HatcherRead-back
What the Lean code literally says, in plain math · claude-fable-5-1
Read-back of Hatcher.classification_of_covering_spaces.
Setting and binders
X : Type u,[TopologicalSpace X]— a topological space in a fixed universeu.[PathConnectedSpace X]— Mathlib's class:Nonempty Xand any two points are joined by a continuous pathPath x y(I → X, continuous, with prescribed endpoints).[LocallyPathConnectedSpace X]— for everyx, the filter𝓝 xhas a basis of setsswiths ∈ 𝓝 xandIsPathConnected s(nonempty, any two points joined by a path insides).hX : IsSemilocallySimplyConnected X— the bundle's definition: for everyxthere is a neighbourhoodU ∈ 𝓝 x(not necessarily open) such that every loopγ : Path x xwith∀ t, γ t ∈ UisPath.Homotopic(homotopic rel endpoints, inX) to the constant loopPath.refl x. Equivalently, is trivial. This is Hatcher's definition.x₀ : X— explicit basepoint.
Types from the bundle.
CoveringSpace X: a structure withE : Type u(same universe asX),[topE : TopologicalSpace E],p : E → X,isCoveringMap : IsCoveringMap p. Mathlib'sIsCoveringMap p: for everyx : X,IsEvenlyCovered p x (p⁻¹{x}), i.e. the fibrep⁻¹{x}is discrete and there exist an openU ∋ xwithp⁻¹(U)open and a homeomorphismp⁻¹(U) ≃ₜ U × p⁻¹{x}whose first component isp. Surjectivity is not required; fibres may be empty andEmay be empty.PointedCover X x₀: aCoveringSpace Xtogether withe₀ : Eandp_e₀ : p e₀ = x₀.C.subgroup(forC : PointedCover X x₀) . BymapOfEq_apply, the homomorphism sends a loop class[γ]ate₀to[p ∘ γ]re-indexed as a loop atx₀usingp e₀ = x₀. So .coverSubgroup C.p C.isCoveringMap.continuous hfor anyeandh : C.p e = x₀— the same thing, , for an arbitrary pointeof the fibre overx₀.IsPointedIsomorphic C₁ C₂(for pointed covers): (MathlibHomeomorph: bijection, continuous both ways) with and .IsIsomorphic C₁ C₂(for unpointed covers): with — a homeomorphism overX, no basepoint condition.FundamentalGroup X x₀is Mathlib'sEnd (FundamentalGroupoid.mk x₀), homotopy classes of loops atx₀, with multiplicationp * q = q.trans p(traverseqfirst, thenp; reversed relative to Hatcher's concatenation order).H.map (MulAut.conj g).toMonoidHom:MulAut.conj gish ↦ g * h * g⁻¹(MulAut.conj_apply, definitional),Subgroup.map φ Hhas carrierφ '' H. So this is in Mathlib's product, which equals in Hatcher's concatenation-order product. Wherever it appears below,gis existentially quantified over the whole group, so the convention does not alter the meaning.
Hypotheses
Exactly the four listed above: X path-connected, locally path-connected, semilocally simply-connected, plus a basepoint. No Hausdorff, no compactness, no CW structure. (Hatcher's Theorem 1.38 has precisely these hypotheses.)
Conclusion
A conjunction of three statements, (1) ∧ ((2) ∧ (3)).
(1) Existence (surjectivity onto subgroups).
Identical to exists_cover_of_subgroup: every subgroup is realised as for some path-connected pointed covering with total space in Type u.
(2) Pointed isomorphism ⇔ equal subgroups.
Identical to isPointedIsomorphic_iff with the two path-connectedness assumptions written as implications: for path-connected pointed covers, there is a homeomorphism over X carrying basepoint to basepoint iff the two image subgroups coincide.
(3) Unpointed isomorphism ⇔ conjugate subgroups.
In words: two path-connected (unpointed) covering spaces of X are isomorphic over X iff there exist basepoints in the fibres over whose image subgroups are conjugate in . Note the quantifier: some choice of basepoints, not every choice. (By coverSubgroup_conj, the set of subgroups obtained as varies in the fibre is a full conjugacy class, so "for some conjugate" is equivalent to "for all conjugate"; but that equivalence is not part of this statement.)
Remarks
Relation to Hatcher's Theorem 1.38 ("bijection" formulation). Hatcher states: (i) is a bijection from basepoint-preserving isomorphism classes of path-connected pointed covers to subgroups of ; (ii) forgetting basepoints, a bijection from isomorphism classes of path-connected covers to conjugacy classes of subgroups. The Lean theorem never forms quotient sets or an Equiv; instead it gives the ingredients:
- Well-definedness of (i) on isomorphism classes: the "⇒" of (2).
- Injectivity of (i): the "⇐" of (2).
- Surjectivity of (i): (1).
- Well-definedness of (ii) (isomorphic covers have conjugate subgroups, for some/any basepoints): "⇒" of (3) (together with
coverSubgroup_conjfor the "any" version). - Injectivity of (ii): "⇐" of (3).
- Surjectivity of (ii): not stated separately, but follows immediately from (1) by forgetting the basepoint (a subgroup in a given conjugacy class is realised as , and the conjugacy class of that is the class of ). A reader checking against the textbook should be aware this is a one-line consequence, not an explicit conjunct.
So the three parts are logically equivalent to Hatcher's two bijections restricted to covers with E : Type u, with the (i)/(ii) correspondence spelled out as "iff" conditions rather than as a bijection between quotient sets. Nothing weaker is asserted at the level of content, but the theorem is not literally a Bijective or Equiv statement.
Universe restriction. Every cover quantified over has total space E : Type u, the same universe as X. Hence "all covering spaces" in (2) and (3) means "all covering spaces whose total space lives in Type u", and (1) produces one in Type u. For path-connected covers this loses nothing up to isomorphism: with e₀ fixed, each point of E is the endpoint of a unique lift of some path in X from x₀, so , and any such cover is homeomorphic over X to one in Type u. But the theorem as stated does not say anything about a cover E : Type v, v ≠ u.
Non-vacuity, non-triviality. The hypotheses are satisfiable (circle, torus, any connected manifold). None of (1)–(3) is trivially true: (1) for H = ⊥ is existence of a universal cover; (2) "⇐" is Hatcher's Prop. 1.37; (3) "⇐" is the unpointed classification. The only automatically true pieces are the "⇒" directions of (2) and (3), which are standard functoriality (in (3), given the iso f take any e₁, e₂ := f e₁, g := 1).
Surjectivity of p not stated. IsCoveringMap does not force surjectivity, but in (1)–(3) every relevant E is path-connected hence nonempty, X is connected, and fibre cardinality is locally constant for a covering map, so every pᵢ is in fact onto X. Consequently the existential over e₁, e₂ in (3) is never blocked by empty fibres. The theorem does not mention this; it is a consequence, not an assumption.
Hypothesis hX is used only for (1). Parts (2) and (3) hold for any path-connected, locally path-connected X. Bundling them under the stronger hypotheses matches Hatcher's Theorem 1.38 but makes (2),(3) formally weaker than the standalone isPointedIsomorphic_iff / coverSubgroup_conj.
Isomorphism notion. Both IsIsomorphic and IsPointedIsomorphic demand a Homeomorph (continuous inverse included) with . This is the standard notion of isomorphism of covering spaces over X. The direction C₁ → C₂ is fixed in the definition; symmetry follows via Homeomorph.symm but is not asserted.
Which conjugate. In (3), the Lean condition is with Mathlib's product, i.e. in Hatcher's convention. Because g ranges over the whole group, " and are conjugate" is what is asserted either way.
Absent from the formal statement, present in textbooks: (a) the explicit bijection/quotient-set language; (b) surjectivity onto conjugacy classes as a separate clause; (c) uniqueness of the basepoint-preserving isomorphism; (d) the remark that the total spaces are themselves locally path-connected; (e) the normal-cover/deck-group refinement (Prop. 1.39/1.40), which is not part of Theorem 1.38 either. None of these absences weakens the assertions actually made; (a) and (b) are recoverable from (1)–(3) plus coverSubgroup_conj.
Degenerate instantiations. If (e.g. X contractible): (1) is only about H = ⊤, satisfied by E = X; (2) and (3) say every two path-connected covers of X are (pointed-)isomorphic — correct. If E₁ = E₂ as covers, (3)'s right side is witnessed by any e₁, e₂ := e₁, g := 1. No instantiation makes the theorem vacuous.
Confirmed by the mission captain (proposal self-audit).