Proposition 1.31 (first part): is injective
ProvedHatcher.coverHom_injectiveThroughout, 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).
Proposition 1.31, first sentence. The map induced by a covering space is injective.
Hatcher's proof lifts a null-homotopy of to a null-homotopy of by the homotopy lifting property.
Formalization Note No connectedness hypotheses are needed. Mathlib's IsCoveringMap.injective_path_homotopic_map states the same fact for path classes and may be used.
import Definitions.Def_Hatcher_Covering import Mathlib open Hatcher unitInterval
namespace Hatcher
theorem coverHom_injective {E X : Type*} [TopologicalSpace E] [TopologicalSpace X]
{p : E → X} (hp : IsCoveringMap p) {e₀ : E} {x₀ : X} (he : p e₀ = x₀) :
Function.Injective (coverHom p hp.continuous he) := by sorry
end HatcherRead-back
What the Lean code literally says, in plain math · claude-fable-5-1
Read-back of Hatcher.coverHom_injective.
theorem coverHom_injective {E X : Type*} [TopologicalSpace E] [TopologicalSpace X]
{p : E → X} (hp : IsCoveringMap p) {e₀ : E} {x₀ : X} (he : p e₀ = x₀) :
Function.Injective (coverHom p hp.continuous he)
Setting and binders
E X : Type*— two types, each in its own (implicit) universe variable; no relation between the universes is required.[TopologicalSpace E] [TopologicalSpace X]— arbitrary topologies. Nothing else is assumed about the spaces: not Hausdorff, not (path-/locally path-)connected, not nonempty (thoughEis forced nonempty bye₀, see below).{p : E → X}— an arbitrary function, implicit (inferred fromhp).(hp : IsCoveringMap p)— Mathlib's covering-map predicate: for every ,IsEvenlyCovered p x (p ⁻¹' {x}), i.e. the fibre (as a subtype) has the discrete topology, and there is an open set with open and a homeomorphism satisfying for all . Surjectivity is not part of the definition; a point with empty fibre is "evenly covered" by , which forces . Mathlib provesIsCoveringMap.continuous : Continuous p, which is whathp.continuoussupplies tocoverHom.{e₀ : E} {x₀ : X}— implicit basepoints (inferred fromhe).(he : p e₀ = x₀)— the basepoint ofEmaps to the basepoint ofX.coverHom p hp.continuous he : FundamentalGroup E e₀ →* FundamentalGroup X x₀unfolds toFundamentalGroup.mapOfEq ⟨p, hp.continuous⟩ he, which acts on a class⟦γ⟧(withγ : Path e₀ e₀) by
the loop based at being re-typed as a loop at via he (Path.cast). Here FundamentalGroup E e₀ is Mathlib's : path-homotopy classes (homotopy rel ) of loops at , with p * q = q.trans p.
Hypotheses
Only hp : IsCoveringMap p and he : p e₀ = x₀. There is no hypothesis on connectedness, local path-connectedness, or surjectivity.
Conclusion
Function.Injective (coverHom p hp.continuous he), i.e. for all ,
Unpacked to representatives: if are loops at and is homotopic rel endpoints in to , then is homotopic rel endpoints in to . Equivalently (since coverHom is a group homomorphism), is trivial: any loop at with null-homotopic in is null-homotopic in .
In words: the homomorphism induced by a covering map is injective.
Remarks
- Textbook match. This is Hatcher, Proposition 1.31(a): "The map induced by a covering space is injective." Hatcher's proof uses only the homotopy lifting property, which holds for covering maps without any connectedness assumptions, so the absence of connectedness hypotheses here is consistent with the textbook. Hatcher's definition of covering space does not require surjectivity either (he remarks in §1.3 that this is a matter of convention), so Mathlib's non-surjective
IsCoveringMapis not a departure for this statement. - Not vacuous. The presence of
e₀ : Eguarantees and that the fibre over is nonempty; both fundamental groups are genuine groups (nonempty, containing at least the identity class). The statement has content whenever is nontrivial, and is a real theorem (requires homotopy lifting) rather than a definitional triviality. - Non-surjective
p. Points of outside the image ofpplay no role: is computed in all of , but injectivity concerns only loops that are images of loops in . The statement is therefore exactly as strong as the textbook one; no weaker. - Group-law orientation. Mathlib's
FundamentalGroupmultiplication is reversed relative to Hatcher (p * q = q.trans p), but injectivity of a map is insensitive to this. - Universe.
EandXmay live in different universes; no constraint is imposed. (This differs from theCoveringSpacestructure in the definition file, which forcesE : Type uforX : Type u, but the theorem is stated for barep, not for aCoveringSpacebundle.) - What a reader might expect but is absent. Nothing essential. A textbook would typically also state part (b) of Prop 1.31 (description of the image subgroup), which is the separate theorem
mem_coverSubgroup_iff. The theorem does not identify the image, only injectivity. - Discrete-fibre subtlety. Mathlib's definition puts
DiscreteTopology (p ⁻¹' {x})on the fibre with the subspace topology; a homeomorphism over is then the usual "disjoint union of sheets" condition. This coincides with Hatcher's definition (each point has an open neighbourhood whose preimage is a disjoint union of open sets each mapped homeomorphically onto ). - The statement is a
theoremwith proofsorryin the audited file; the read-back concerns only the statement.
Confirmed by the mission captain (proposal self-audit).