Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Homotopy lifting property (c) for covering spaces

Proved
Hatcher.homotopy_lifting_property

by korbonits · Sep 4, 2026 · Mathlib 0df444a (Lean v4.33.1)

algebraic-topologycovering-spacesfundamental-grouphatcher

Let p:X~→Xp:\tilde X\to Xp:X~→X be a covering space and let YYY be any topological space. Given a continuous map F:Y×I→XF:Y\times I\to XF:Y×I→X (with I=[0,1]I=[0,1]I=[0,1]) and a continuous map F~0:Y→X~\tilde F_0:Y\to\tilde XF~0​:Y→X~ lifting the restriction of FFF to Y×{0}Y\times\{0\}Y×{0}, i.e.

p(F~0(y))=F(y,0)for all y∈Y,p\big(\tilde F_0(y)\big)=F(y,0)\qquad\text{for all }y\in Y,p(F~0​(y))=F(y,0)for all y∈Y,

there is a unique continuous map F~:Y×I→X~\tilde F:Y\times I\to\tilde XF~:Y×I→X~ lifting FFF and restricting to the given F~0\tilde F_0F~0​ on Y×{0}Y\times\{0\}Y×{0}:

p∘F~=FandF~(y,0)=F~0(y)  for all y∈Y.p\circ\tilde F=F\qquad\text{and}\qquad \tilde F(y,0)=\tilde F_0(y)\ \text{ for all }y\in Y .p∘F~=FandF~(y,0)=F~0​(y)  for all y∈Y.

Uniqueness means: any continuous G:Y×I→X~G:Y\times I\to\tilde XG:Y×I→X~ with p∘G=Fp\circ G=Fp∘G=F and G(y,0)=F~0(y)G(y,0)=\tilde F_0(y)G(y,0)=F~0​(y) for all yyy equals F~\tilde FF~.

This is statement (c) in Hatcher's proof of Theorem 1.7 (restated later as Proposition 1.30). It is the general lifting principle from which the path lifting property (a) (YYY a point) and the lifting of homotopies of paths (b) (Y=IY=IY=I) are deduced.

Formalization Note YYY is an arbitrary topological space, with no separation or connectedness hypotheses, exactly as in Hatcher. The covering hypothesis is Mathlib's IsCoveringMap; the domain is written Y × I in Hatcher's coordinate order.

Preamble
import Definitions.Def_Hatcher_Circle
import Mathlib

open unitInterval Hatcher
Formal statement
namespace Hatcher
theorem homotopy_lifting_property {E X Y : Type*} [TopologicalSpace E] [TopologicalSpace X]
    [TopologicalSpace Y] {p : E → X} (hp : IsCoveringMap p)
    (F : C(Y × I, X)) (F₀ : C(Y, E)) (hF₀ : ∀ y, p (F₀ y) = F (y, 0)) :
    ∃! F' : C(Y × I, E), p ∘ F' = F ∧ ∀ y, F' (y, 0) = F₀ y := by sorry
end Hatcher
Source
A. Hatcher, Algebraic Topology, Cambridge University Press 2002, https://pi.math.cornell.edu/~hatcher/AT/AT.pdf, Section 1.1, p. 30, statement (c) in the proof of Theorem 1.7 (also Proposition 1.30, p. 60)
Read-back

What the Lean code literally says, in plain math · claude-fable-5-1

Read-back of Hatcher.homotopy_lifting_property.

The statement is universally quantified over three arbitrary topological spaces EEE, XXX, YYY (each may live in its own universe; no separation, connectedness, local connectedness, compactness, or nonemptiness assumptions are made on any of them), together with an arbitrary function p:E→Xp : E \to Xp:E→X and the following data and hypotheses:

  • Hypothesis on ppp. ppp is a covering map in Mathlib's sense: for every point x∈Xx \in Xx∈X, the point xxx is "evenly covered" by ppp with fibre p−1({x})p^{-1}(\{x\})p−1({x}). Unfolded, this means that for every x∈Xx \in Xx∈X: the subspace p−1({x})⊆Ep^{-1}(\{x\}) \subseteq Ep−1({x})⊆E carries the discrete topology, and there exists an open set U⊆XU \subseteq XU⊆X with x∈Ux \in Ux∈U such that p−1(U)p^{-1}(U)p−1(U) is open in EEE and there is a homeomorphism
H:p−1(U)  → ≅   U×p−1({x})H : p^{-1}(U) \;\xrightarrow{\ \cong\ }\; U \times p^{-1}(\{x\})H:p−1(U) ≅ ​U×p−1({x})

whose first coordinate agrees with ppp, i.e. pr⁡1(H(e))=p(e)\operatorname{pr}_1(H(e)) = p(e)pr1​(H(e))=p(e) for all e∈p−1(U)e \in p^{-1}(U)e∈p−1(U). Note what this does not include: ppp is not assumed surjective (a fibre p−1({x})p^{-1}(\{x\})p−1({x}) may be empty, in which case the condition just says xxx has an open neighbourhood disjoint from p(E)p(E)p(E)); the fibres over different points need not be homeomorphic to one another; continuity of ppp is not a separate hypothesis (it is a consequence of the definition). The covering-map hypothesis is the only assumption on ppp.

  • The map FFF. FFF is a continuous map F:Y×I→XF : Y \times I \to XF:Y×I→X, where I=[0,1]⊆RI = [0,1] \subseteq \mathbb{R}I=[0,1]⊆R is the closed unit interval with its subspace topology and Y×IY \times IY×I carries the product topology. The order of the coordinates is fixed: the first coordinate is the point y∈Yy \in Yy∈Y, the second is the parameter t∈[0,1]t \in [0,1]t∈[0,1], so FFF is evaluated as F(y,t)F(y,t)F(y,t).

  • The map F0F_0F0​. F0F_0F0​ is a continuous map F0:Y→EF_0 : Y \to EF0​:Y→E.

  • Compatibility hypothesis. For every y∈Yy \in Yy∈Y,

p(F0(y))=F(y,0).p\big(F_0(y)\big) = F(y, 0).p(F0​(y))=F(y,0).

Conclusion. There exists a unique continuous map F′:Y×I→EF' : Y \times I \to EF′:Y×I→E such that both of the following hold:

  1. p∘F′=Fp \circ F' = Fp∘F′=F as functions Y×I→XY \times I \to XY×I→X, i.e. p(F′(y,t))=F(y,t)p\big(F'(y,t)\big) = F(y,t)p(F′(y,t))=F(y,t) for all y∈Yy \in Yy∈Y and all t∈[0,1]t \in [0,1]t∈[0,1]; and
  2. F′(y,0)=F0(y)F'(y, 0) = F_0(y)F′(y,0)=F0​(y) for every y∈Yy \in Yy∈Y.

The uniqueness clause ranges exactly over continuous maps Y×I→EY \times I \to EY×I→E: it asserts that if G:Y×I→EG : Y \times I \to EG:Y×I→E is any continuous map satisfying p∘G=Fp \circ G = Fp∘G=F and G(y,0)=F0(y)G(y,0) = F_0(y)G(y,0)=F0​(y) for all yyy, then G=F′G = F'G=F′ (equality of continuous maps, i.e. G(y,t)=F′(y,t)G(y,t) = F'(y,t)G(y,t)=F′(y,t) for all (y,t)(y,t)(y,t)). Nothing is asserted about non-continuous functions Y×I→EY \times I \to EY×I→E satisfying the two conditions, and no property of F′F'F′ beyond continuity and conditions 1–2 is claimed (in particular nothing about how F′F'F′ depends on the data).

Degenerate cases silently included. If YYY is empty, the hypotheses hold vacuously and the conclusion asserts the existence and uniqueness of the (unique) map from the empty space, so the statement is trivially true in that case. If EEE is empty, then ppp is automatically a covering map for any XXX, and the existence of F0:Y→EF_0 : Y \to EF0​:Y→E forces YYY to be empty. If XXX is a single point, or ppp is a homeomorphism, the statement is still asserted with the same content. No hypothesis excludes ppp from having empty fibres over points of XXX that are hit by FFF; the theorem asserts the conclusion for all such situations regardless.

This declaration does not use any of the custom definitions from the bundle (circleCover, omegaLoopN, omegaLoop, omegaClass); it refers only to Mathlib notions.

Human review
  • Endorsed by Shuze Chen · Sep 5, 2026

  • Endorsed by korbonits · Sep 5, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactJoin Slack© 2026 Prove2Me