Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Theorem 1.20 (first part): Φ:∗απ1(Aα)→π1(X)\Phi:\ast_\alpha\pi_1(A_\alpha)\to\pi_1(X)Φ:∗α​π1​(Aα​)→π1​(X) is surjective

Proved
Hatcher.vanKampenHom_surjective

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

algebraic-topologyfundamental-grouphatchervan-kampen

Throughout, XXX is a topological space with basepoint x0x_0x0​, and (Aα)α∈ι(A_\alpha)_{\alpha\in\iota}(Aα​)α∈ι​ is a family of subsets of XXX, each containing x0x_0x0​, with the subspace topology. The standing hypotheses of Lemma 1.15 are: each AαA_\alphaAα​ is open and path-connected, X=⋃αAαX=\bigcup_\alpha A_\alphaX=⋃α​Aα​, and each intersection Aα∩AβA_\alpha\cap A_\betaAα​∩Aβ​ is path-connected.

Theorem 1.20, first part. Under the standing hypotheses, the homomorphism

Φ:∗απ1(Aα,x0)→π1(X,x0)\Phi:\ast_\alpha\pi_1(A_\alpha,x_0)\to\pi_1(X,x_0)Φ:∗α​π1​(Aα​,x0​)→π1​(X,x0​)

extending the inclusion-induced maps jαj_\alphajα​ is surjective.

Hatcher notes this is a restatement of Lemma 1.15: a factorization of [f][f][f] as a word in the π1(Aα)\pi_1(A_\alpha)π1​(Aα​) is exactly a preimage under Φ\PhiΦ.

Formalization Note Φ\PhiΦ is Hatcher.vanKampenHom, built with Mathlib's Monoid.CoprodI.lift from the induced homomorphisms Hatcher.inclHom.

Preamble
import Definitions.Def_Hatcher_VanKampen
import Mathlib

open Hatcher
Formal statement
namespace Hatcher
theorem vanKampenHom_surjective {X : Type*} [TopologicalSpace X] {ι : Type*}
    (A : ι → Set X) (x₀ : X) (hx₀ : ∀ α, x₀ ∈ A α)
    (hopen : ∀ α, IsOpen (A α)) (hpc : ∀ α, IsPathConnected (A α))
    (hcover : (⋃ α, A α) = Set.univ) (hinter : ∀ α β, IsPathConnected (A α ∩ A β)) :
    Function.Surjective (vanKampenHom A x₀ hx₀) := by sorry
end Hatcher
Source
A. Hatcher, Algebraic Topology, Cambridge University Press 2002, https://pi.math.cornell.edu/~hatcher/AT/AT.pdf, Section 1.2, p. 43, Theorem 1.20 (surjectivity statement), proved via Lemma 1.15 (p. 35)
Read-back

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

Read-back: Hatcher.vanKampenHom_surjective

Setting and binders. Let XXX be an arbitrary topological space (no separation, compactness, or other axioms are assumed) and let ι\iotaι be an arbitrary index type (it may be finite, infinite, or empty). The data of the theorem are:

  • a family of subsets Aα⊆XA_\alpha \subseteq XAα​⊆X, one for each α∈ι\alpha \in \iotaα∈ι;
  • a point x0∈Xx_0 \in Xx0​∈X;
  • a proof hx0h_{x_0}hx0​​ that x0∈Aαx_0 \in A_\alphax0​∈Aα​ for every α∈ι\alpha \in \iotaα∈ι.

Each AαA_\alphaAα​ is regarded as a topological space with the subspace topology inherited from XXX, and x0x_0x0​, viewed as a point of AαA_\alphaAα​ (this is what the auxiliary definition basept produces: the pair "x0x_0x0​ together with the proof x0∈Aαx_0 \in A_\alphax0​∈Aα​"), serves as the basepoint of AαA_\alphaAα​. Because the hypothesis hx0h_{x_0}hx0​​ is required for every α\alphaα, the case in which some AαA_\alphaAα​ does not contain x0x_0x0​ is excluded.

Hypotheses. In addition to hx0h_{x_0}hx0​​, the theorem assumes all of the following:

  1. (hopen) For every α∈ι\alpha \in \iotaα∈ι, the set AαA_\alphaAα​ is open in XXX.
  2. (hpc) For every α∈ι\alpha \in \iotaα∈ι, the set AαA_\alphaAα​ is path-connected in the following exact sense: there exists a point a∈Aαa \in A_\alphaa∈Aα​ such that for every y∈Aαy \in A_\alphay∈Aα​ there is a continuous map γ:[0,1]→X\gamma : [0,1] \to Xγ:[0,1]→X with γ(0)=a\gamma(0) = aγ(0)=a, γ(1)=y\gamma(1) = yγ(1)=y, and γ(t)∈Aα\gamma(t) \in A_\alphaγ(t)∈Aα​ for all t∈[0,1]t \in [0,1]t∈[0,1]. (In particular this forces Aα≠∅A_\alpha \neq \emptysetAα​=∅, which is already guaranteed by x0∈Aαx_0 \in A_\alphax0​∈Aα​.)
  3. (hcover) The union ⋃α∈ιAα\bigcup_{\alpha \in \iota} A_\alpha⋃α∈ι​Aα​ equals the whole space XXX.
  4. (hinter) For every ordered pair (α,β)∈ι×ι(\alpha, \beta) \in \iota \times \iota(α,β)∈ι×ι — including the diagonal pairs α=β\alpha = \betaα=β, for which the condition reduces to hypothesis 2 — the intersection Aα∩AβA_\alpha \cap A_\betaAα​∩Aβ​ is path-connected in the same sense as in item 2: there exists a∈Aα∩Aβa \in A_\alpha \cap A_\betaa∈Aα​∩Aβ​ joined to every point of Aα∩AβA_\alpha \cap A_\betaAα​∩Aβ​ by a path staying inside Aα∩AβA_\alpha \cap A_\betaAα​∩Aβ​. (Since x0∈Aα∩Aβx_0 \in A_\alpha \cap A_\betax0​∈Aα​∩Aβ​, these intersections are all nonempty.) No hypothesis is stated about intersections of three or more of the sets.

Edge case. If ι\iotaι is empty, then ⋃αAα=∅\bigcup_{\alpha} A_\alpha = \emptyset⋃α​Aα​=∅, whereas XXX contains the point x0x_0x0​, so hypothesis 3 cannot hold; the hypotheses are jointly unsatisfiable in that case and the theorem says nothing. For nonempty ι\iotaι the hypotheses are consistent (e.g. a single set Aα=XA_\alpha = XAα​=X when XXX is path-connected).

The objects in the conclusion. The conclusion is a statement about a specific group homomorphism, built as follows.

  • For a topological space YYY and a point y∈Yy \in Yy∈Y, the fundamental group π1(Y,y)\pi_1(Y, y)π1​(Y,y) used here is the group of endomorphisms of the object yyy in the fundamental groupoid of YYY. Concretely, its elements are equivalence classes of loops at yyy — continuous maps γ:[0,1]→Y\gamma : [0,1] \to Yγ:[0,1]→Y with γ(0)=γ(1)=y\gamma(0) = \gamma(1) = yγ(0)=γ(1)=y — under homotopy relative to the endpoints {0,1}\{0,1\}{0,1}; the identity is the class of the constant loop; and the product a⋅ba \cdot ba⋅b of two classes is the class of the concatenation "first bbb, then aaa" (the endomorphism-monoid convention a⋅b=b≫aa \cdot b = b \gg aa⋅b=b≫a, where ≫\gg≫ denotes concatenation in the order written). Inverses are given by reversing loops.

  • For each α∈ι\alpha \in \iotaα∈ι, the homomorphism

jα:π1(Aα,x0)⟶π1(X,x0)j_\alpha : \pi_1(A_\alpha, x_0) \longrightarrow \pi_1(X, x_0)jα​:π1​(Aα​,x0​)⟶π1​(X,x0​)

(the definition inclHom) is the homomorphism induced, via the general "map of fundamental groups along a continuous map with a specified equation on basepoints", by the inclusion map Aα↪XA_\alpha \hookrightarrow XAα​↪X, a↦aa \mapsto aa↦a, together with the (definitionally trivial) fact that the inclusion sends the basepoint x0∈Aαx_0 \in A_\alphax0​∈Aα​ to x0∈Xx_0 \in Xx0​∈X. On representatives, jαj_\alphajα​ sends the class of a loop γ\gammaγ in AαA_\alphaAα​ to the class of the same loop regarded as a loop in XXX (after a basepoint-recasting along the trivial equation x0=x0x_0 = x_0x0​=x0​).

  • The group FFF (the definition FreeProd) is
F  =  ∗α∈ιπ1(Aα,x0),F \;=\; \mathop{\ast}_{\alpha \in \iota} \pi_1(A_\alpha, x_0),F=∗α∈ι​π1​(Aα​,x0​),

the free product of the family of groups π1(Aα,x0)\pi_1(A_\alpha, x_0)π1​(Aα​,x0​), α∈ι\alpha \in \iotaα∈ι, in Mathlib's sense: the quotient of the free monoid on the disjoint union ∐απ1(Aα,x0)\coprod_{\alpha} \pi_1(A_\alpha, x_0)∐α​π1​(Aα​,x0​) of the underlying sets by the monoid congruence generated by the relations "(α,1)∼(\alpha, 1) \sim(α,1)∼ empty word" and "(α,g) (α,g′)∼(α,gg′)(\alpha, g)\,(\alpha, g') \sim (\alpha, g g')(α,g)(α,g′)∼(α,gg′)" for all α\alphaα and g,g′∈π1(Aα,x0)g, g' \in \pi_1(A_\alpha, x_0)g,g′∈π1​(Aα​,x0​). It carries the group structure whose inverse reverses a word and inverts each letter. Each π1(Aα,x0)\pi_1(A_\alpha, x_0)π1​(Aα​,x0​) maps into FFF by the canonical inclusion ofα\mathrm{of}_\alphaofα​ sending ggg to the one-letter word (α,g)(\alpha, g)(α,g). When ι\iotaι is empty, FFF is the trivial group.

  • The homomorphism
Φ:F⟶π1(X,x0)\Phi : F \longrightarrow \pi_1(X, x_0)Φ:F⟶π1​(X,x0​)

(the definition vanKampenHom) is the unique monoid homomorphism obtained from the family (jα)α∈ι(j_\alpha)_{\alpha \in \iota}(jα​)α∈ι​ by the universal property of the free product, i.e. the unique homomorphism with Φ(ofα(g))=jα(g)\Phi(\mathrm{of}_\alpha(g)) = j_\alpha(g)Φ(ofα​(g))=jα​(g) for all α∈ι\alpha \in \iotaα∈ι and all g∈π1(Aα,x0)g \in \pi_1(A_\alpha, x_0)g∈π1​(Aα​,x0​). On a general word (α1,g1)(α2,g2)⋯(αn,gn)(\alpha_1, g_1)(\alpha_2, g_2)\cdots(\alpha_n, g_n)(α1​,g1​)(α2​,g2​)⋯(αn​,gn​) it takes the value jα1(g1) jα2(g2)⋯jαn(gn)j_{\alpha_1}(g_1)\, j_{\alpha_2}(g_2) \cdots j_{\alpha_n}(g_n)jα1​​(g1​)jα2​​(g2​)⋯jαn​​(gn​) in π1(X,x0)\pi_1(X, x_0)π1​(X,x0​), and it sends the empty word to the identity. Note that Φ\PhiΦ depends only on the data AAA, x0x_0x0​, hx0h_{x_0}hx0​​; none of the hypotheses 1–4 enters its construction.

Conclusion. The theorem asserts that Φ\PhiΦ is surjective in the literal sense:

∀ c∈π1(X,x0), ∃ w∈F such that Φ(w)=c.\forall\, c \in \pi_1(X, x_0),\ \exists\, w \in F \text{ such that } \Phi(w) = c.∀c∈π1​(X,x0​), ∃w∈F such that Φ(w)=c.

That is: every homotopy class of loops in XXX based at x0x_0x0​ is equal to Φ(w)\Phi(w)Φ(w) for some element www of the free product of the groups π1(Aα,x0)\pi_1(A_\alpha, x_0)π1​(Aα​,x0​); equivalently, every such class can be written as a finite product jα1(g1)⋯jαn(gn)j_{\alpha_1}(g_1)\cdots j_{\alpha_n}(g_n)jα1​​(g1​)⋯jαn​​(gn​) (with n≥0n \ge 0n≥0) of images of classes of loops based at x0x_0x0​ lying in single sets AαkA_{\alpha_k}Aαk​​. Nothing is asserted about the kernel of Φ\PhiΦ, about injectivity, or about any relations among the jαj_\alphajα​; the statement is purely the existence of a preimage for each element of π1(X,x0)\pi_1(X, x_0)π1​(X,x0​).

Hypothesis usage. Hypotheses 1 (openness), 2 (path-connectedness of each AαA_\alphaAα​), 3 (covering), and 4 (path-connectedness of each pairwise intersection) appear only as assumptions; the conclusion's statement does not mention them, and they would be available only to a proof. The hypothesis hx0h_{x_0}hx0​​ is used in forming the basepoints and hence in the very statement of the conclusion.

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

  • Endorsed by korbonits · Sep 8, 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