The third mission in the series formalizing Allen Hatcher's Algebraic Topology (Cambridge University Press, 2002; pi.math.cornell.edu/~hatcher/AT/AT.pdf) turns to the second main topic of Chapter 1, covering spaces (Section 1.3, pp. 56–78). The first mission used the covering to compute , and the second proved van Kampen's theorem. This mission develops the general theory of covering spaces of a fixed space : the lifting properties (pp. 60–62), the classification of connected covering spaces by subgroups of (pp. 63–68), and deck transformations and group actions (pp. 70–72). Its goal is the classification theorem (Theorem 1.38, p. 67), Hatcher's "Galois correspondence" between path-connected covering spaces of and subgroups of , together with its companions Proposition 1.39 (deck groups and normal covers) and Proposition 1.40 (covering space actions and orbit spaces).
All statements live in the Lean namespace Hatcher used by the earlier missions.
A covering space of (p. 56) is a space with a map such that every has an open neighborhood whose preimage is a disjoint union of open sets each mapped homeomorphically onto ; may be empty, so need not be surjective. This is Mathlib's IsCoveringMap. For a covering space with basepoints we write
for the induced homomorphism (Hatcher.coverHom) and its image (Hatcher.coverSubgroup).
is semilocally simply-connected (p. 63, Hatcher.IsSemilocallySimplyConnected) if each has a neighborhood such that every loop at contained in is null-homotopic in . The bundle Hatcher_Covering also fixes: the structure CoveringSpace X (a total space and a covering map ) and its pointed version PointedCover X x₀ (with and associated subgroup PointedCover.subgroup); isomorphism of covering spaces (p. 67), a homeomorphism with , with or without preservation of basepoints (IsIsomorphic, IsPointedIsomorphic); the deck transformation group (p. 70, deckGroup), the self-homeomorphisms of commuting with ; normal covering spaces (p. 70, IsNormalCover); Hatcher's condition for a covering space action of a group on (p. 72, IsCoveringSpaceAction); and the orbit space with its quotient map (OrbitSpace, orbitProj).
Let be path-connected, locally path-connected and semilocally simply-connected, with basepoint . Then:
Together these say that is a bijection from basepoint-preserving isomorphism classes of path-connected covering spaces to subgroups, inducing a bijection from isomorphism classes to conjugacy classes of subgroups.
The result itself. The classification theorem is the central structural fact about covering spaces: the connected coverings of are "the same as" the subgroups of , with the universal cover corresponding to the trivial subgroup and normal coverings to normal subgroups. Proposition 1.40 is the standard method for computing fundamental groups of orbit spaces (, , lens spaces) and is used throughout Hatcher's later chapters.
Formalizing it. Mathlib (at this environment's revision) already has the lifting theory for covering maps: path and homotopy lifting (IsCoveringMap.liftPath, liftHomotopy), the monodromy action (IsCoveringMap.monodromy), the injectivity of (injective_path_homotopic_map, cited there as Proposition 1.31), the unique-lifting statement (IsCoveringMap.eq_of_comp_eq), and the lifting criterion itself (existsUnique_continuousMap_lifts_of_range_le, cited as Proposition 1.33). For quotient maps by a free properly discontinuous action it has IsQuotientCoveringMap, with the homomorphism and its kernel and surjectivity. Milestones 1, 4, 5 and 16 are therefore expected to be short reductions to Mathlib, and Mathlib's quotient-covering theory should carry most of milestones 14–15. Mathlib has no notion of semilocal simple connectivity, no construction of the universal cover or of the coverings , no classification theorem, and no deck transformation groups or normal coverings; milestones 6–13 and the goal are new.
The heart of the mission is the construction of the universal cover (pp. 63–65): the points are homotopy classes of paths from , the topology is generated by the sets for in the basis of path-connected open sets on which dies, and one must verify that this is a topology basis, that is a covering map, and that the result is simply connected. Proposition 1.36 then passes to a quotient by and checks that the projection remains a covering map. Both are elementary but long, and formalizing them requires a systematic treatment of path homotopy classes as points of a space.
Propositions 1.37 and 1.39 follow from the lifting criterion and unique lifting; the deck-group homomorphism in 1.39(b) sends a loop in to the deck transformation produced by the lifting criterion, and its kernel is computed by Proposition 1.31. Proposition 1.40(a) needs the quotient topology on and the evenly covered neighborhoods from condition ; part (b) is the observation that a deck transformation of a path-connected cover is determined by one value. Milestone 3 is orbit–stabilizer for the monodromy action.
CoveringSpace X bundles a total space in the same universe as with a covering map; the classification quantifies over covering spaces in this sense. Since the universal cover and the coverings are constructed from paths in , they live in that universe, so nothing is lost.MulAut.conj; "number of sheets equals the index" is stated as a bijection with the coset space.Normal instance in the statement; the final clause of 1.39 and 1.40(b) are stated as the existence of group isomorphisms, the latter with its action on prescribed.MulAction.orbitRel.Quotient with the quotient topology.Contributions welcome: a reusable construction of the space of path classes with its topology, the covering , and the deck-group homomorphism; the short reductions to Mathlib for Propositions 1.31, 1.33 and 1.34 are good first contributions.
Mathlib/Topology/Covering/Basic.lean (covering maps). https://github.com/leanprover-community/mathlib4/blob/0df444a360eaa60ab8c11dca51a86af692955474/Mathlib/Topology/Covering/Basic.leanMathlib/Topology/Homotopy/Lifting.lean (path and homotopy lifting, monodromy, the lifting criterion). https://github.com/leanprover-community/mathlib4/blob/0df444a360eaa60ab8c11dca51a86af692955474/Mathlib/Topology/Homotopy/Lifting.leanMathlib/Topology/Covering/Quotient.lean (quotient covering maps for group actions). https://github.com/leanprover-community/mathlib4/blob/0df444a360eaa60ab8c11dca51a86af692955474/Mathlib/Topology/Covering/Quotient.leannamespace 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 HatcherThroughout, 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:
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.
No open leaves. Every sub-goal is proved or awaiting decomposition.