The fundamental groupoid \(\Pi_1(X)\) of a space \(X\) is a groupoid whose objects are the points of \(X\) and whose morphisms are endpoint homotopy equivalence classes of paths \(x\to y\).
\(\mathrm{Ob}(\Pi_1(X)) = X\)
\(\mathrm{Hom}_{\Pi_1(X)}(x,y) = \{ x \to y \}/\sim\)
There are some obvious properties:
\(\mathrm{End}_{\Pi_1(X)}(x) = \pi_1(X,x)\), the fundamental group of \(X\) at \(x\).
\(\pi_1(X,x) \subset \Pi_1(X)\) is a categorical equivalence if \(X\) is path connected.
For a small category \(\mathcal{D}\), a functor \(F:\mathcal{D}\to \mathcal{C}\) is also called a \(\mathcal{D}\)-shaped diagram in \(\mathcal{C}\).
Colimit of a \(\mathcal{D}\)-shaped diagram \(F:\mathcal{D}\to \mathcal{C}\) is an object \(\mathrm{colim}F\) with a natural transform \(\iota: F \Rightarrow \underline{\mathrm{colim}F}\) (here the underline denotes a constant functor) that factor through uniquely any other natural transform into a constant functor \(F\Rightarrow \underline{A}\).
Limit of a \(\mathcal{D}\)-shaped diagram \(F:\mathcal{D}\to \mathcal{C}\) is an object \(\lim F\) with a natural transform \(\pi: \underline{\lim F} \Rightarrow F\) that factor through uniquely any other natural transform from a constant functor \(\underline{A} \Rightarrow F\).
When \(\mathcal{D}=\{a \leftarrow b \rightarrow c\}\), the colimit is a pushout.
When \(\mathcal{D}=\{a \rightarrow b \leftarrow c\}\), the limit is a pullback.
When \(\mathcal{D}=\{a \to\to b\}\), the limit is an equalizer and the colimit is a coequalizer.
A category is complete if it has all small limits, and cocomplete if it has all small colimits.
\(\mathcal{C}\) is complete if and only if \(\mathcal{C}\) has all equalizers and products.
\(\mathcal{C}\) is cocomplete if and only if \(\mathcal{C}\) has all coequalizers and coproducts.
Let \(\mathcal{O}\) be a category of a open covering of \(X\) (has finite intersections) whose morphisms are inclusions. Let
\[\Pi_1|\mathcal{O}: \mathcal{O}\to \mathcal{G}\mathcal{P}\]
be the \(\mathcal{O}\)-shaped diagram in \(\mathcal{G}\mathcal{P}\) (the category of groupoids), mapping \(U\mapsto \Pi_1(U)\) and inclusions \(V\subset U\) to the obvious maps \(\Pi_1(V)\to \Pi_1(U)\). Then we have a canonical isomorphism of groupoids:
\[\Pi_1(X) \cong \mathrm{colim}_{\mathcal{O}}\, \Pi_1|\mathcal{O}: \mathcal{G}\mathcal{P}.\]
To show this, using the universal property of colimits, for any natural transform \(\Pi_1|\mathcal{O}\Rightarrow \underline{\mathcal{G}}\) to a constant groupoid functor \(\underline{\mathcal{G}}: \mathcal{O}\Rightarrow \mathcal{G}\mathcal{P}\), we need to show that it factor uniquely through the constant groupoid functor \(\underline{\Pi_1(X)}\).
\[\eta:\Pi_1|\mathcal{O}\Rightarrow \underline{G} \text{ factor through }\underline{\Pi_1(X)}.\]
It is obvious that \(\Pi_1|\mathcal{O}\) maps into \(\underline{\Pi_1(X)}\) in an canonical way, so we need to specify how to define \(\underline{\Pi_1(X)}\Rightarrow \underline{\mathcal{G}}\) or equivalently, a functor \(\Pi_1(X)\to \mathcal{G}\), using the information in \(\eta\).
The data of this natural transform consists of morphisms for each open set \(U\in \mathcal{O}\), a functor \(\eta_U:\Pi_2(U)\to \mathcal{G}\). The compatible family of functors \(\eta_U\) already determined the image of each point \(x\in \Pi_1(X)\) in \(\mathcal{G}\).
For the morphisms in \(\Pi_1(X)\),
If the morphism \(x\to y\) is represented by a path that lies completely in one of the \(U\in \mathcal{O}\), then the path lies in \(\Pi_1(U)\) and \(\eta_U\) gives the image of this morphism in \(\mathcal{G}\).
If the morphism lies also in other \(U'\), then they lie in a finite intersection, for which compatibility guarantees that the image in \(\mathcal{G}\) is the same.
Otherwise, break the path into segments \(x_0\to x_1\to \dots\to x_n\), each segments lies in some \(U_i\in\mathcal{O}\). The image of each segment \(x_i\to x_{i+1}\) is given by \(\eta_{U_i}:\Pi_1(U_i)\to \mathcal{G}\), they have a composition in \(\mathcal{G}\). We define the image of the path \(x_0\to x_n\) to be this composed element.
To show that when we have two homotopic paths \(f_0, f_1: x\to y\) with their own choice of segments, they define the same image in \(\mathcal{G}\).
Consider dividing the square \(I\times I\). Let the upper side \(I\times 0\) contain the first division into segments and the lower side \(I\times 1\) contain the second division. Since \(I\times I\) is compact, it is possible to refine each divisions so that we can break \(I\times I\) into rectangles, each rectangle lies completely in at least one \(U\in\mathcal{O}\).
Each rectangle now gives a local commutative diagram of two pairs of paths in \(\Pi_1(U_\bullet)\), whose two images in \(\mathcal{G}\) are the same. Putting all of the commutativity together gives us \(f_0\) and \(f_1\) have the same image in \(\mathcal{G}\).
Theorem (Classical Van Kampen Theorem)
Let \(X\) be a path connected and choose a basepoint \(x\in X\). Let \(\mathcal{O}\) be a category of open cover of \(X\) by path connected open subsets \(U\ni x\) closed under finite intersections. The functor \(\pi_1(,x)\) restricted on \(\mathcal{O}\) gives an \(\mathcal{O}\)-shaped diagram \(\pi_1|\mathcal{O}:\mathcal{O}\to \mathcal{G}\) in the category of groups. Then the fundamental group \(\pi_1(X,x)\) is isomorphic to the colimit of this diagram:
\[\pi_1(X,x) \cong \mathrm{colim}_{\mathcal{O}}\, \pi_1|\mathcal{O}: \mathcal{G}.\]
The following are gpt-generated exercises (based on my notes). - Concept recap: definitions + what you must verify. - Step-by-step hints: increasingly explicit, but not full solutions.
Conventions: - Groupoids live in Gpd. - For an open-cover category \(\mathcal O\), the diagram \(\Pi_1|_{\mathcal O}:\mathcal O\to \mathbf{Gpd}\) sends \(U\mapsto \Pi_1(U)\). - For a groupoid \(\mathcal H\) and object \(x\), \(\mathrm{End}_{\mathcal H}(x)\) is the automorphism group at \(x\).
Let \(X\) be path connected and pick \(x\in X\).
Concept recap. - A functor \(F:\mathcal C\to\mathcal D\) is an equivalence if there exists \(G:\mathcal D\to\mathcal C\) and natural isomorphisms \[GF\cong \mathrm{id}_{\mathcal C},\qquad FG\cong \mathrm{id}_{\mathcal D}.\] Such a \(G\) is a quasi-inverse.
Equivalent criterion: \(F\) is an equivalence iff it is fully faithful and essentially surjective.
fully faithful: each map \(\mathrm{Hom}_{\mathcal C}(a,b)\to \mathrm{Hom}_{\mathcal D}(F(a),F(b))\) is bijective
essentially surjective: every object of \(\mathcal D\) is isomorphic to some \(F(c)\).
Step-by-step hints. 1. (Essential surjectivity) For any \(y\in X\), pick a path from \(x\) to \(y\). Its class is a morphism \(x\to y\) in \(\Pi_1(X)\), hence an isomorphism. Conclude every object is isomorphic to \(x\).
(Choose transport paths) Choose for each \(y\in X\) a path \(\gamma_y:x\to y\) with \(\gamma_x\) the constant path.
(Define the quasi-inverse) Define \(r\) on objects by sending every object to the single object \(x\) of \(\pi_1(X,x)\).
Define \(r\) on a morphism \([\alpha]:y\to z\) by \[r([\alpha]) := [\gamma_y^{-1}\cdot \alpha\cdot \gamma_z]\in \pi_1(X,x).\]
(Well-defined) If \(\alpha\sim\alpha'\) rel endpoints, show \(\gamma_y^{-1}\cdot\alpha\cdot\gamma_z\sim \gamma_y^{-1}\cdot\alpha'\cdot\gamma_z\) rel endpoints.
(Functoriality) Check \(r([\mathrm{id}_y])=\mathrm{id}_x\) and \(r([\beta\cdot\alpha])=r([\beta])\,r([\alpha])\).
(Natural isos) Build a natural isomorphism \(\eta:\mathrm{id}_{\Pi_1(X)}\Rightarrow i\circ r\) whose component at \(y\) is (the class of) \(\gamma_y\) (or its inverse, depending on how you arrange types). Verify the naturality square for \([\alpha]:y\to z\).
(Optional) Argue different choices of \(\gamma_y\) give naturally isomorphic quasi-inverses (so the equivalence is canonical “up to contractible choice”).
For a continuous map \(f:X\to Y\), you get a functor \(\Pi_1(f):\Pi_1(X)\to\Pi_1(Y)\).
Verify \(\Pi_1(\mathrm{id}_X)=\mathrm{id}_{\Pi_1(X)}\) and \(\Pi_1(g\circ f)=\Pi_1(g)\circ \Pi_1(f)\).
If \(f\simeq g\) (homotopic maps), show \(\Pi_1(f)\) and \(\Pi_1(g)\) are naturally isomorphic.
Concept recap.
A natural transformation \(\tau:F\Rightarrow G\) assigns each object \(c\) a morphism \(\tau_c:F(c)\to G(c)\) such that for any \(u:c\to c'\),
\[G(u)\circ \tau_c=\tau_{c'}\circ F(u).\]
A natural isomorphism is a natural transformation whose components are isomorphisms.
A homotopy \(H:X\times I\to Y\) from \(f\) to \(g\) provides pointwise paths \(t\mapsto H(x,t)\) from \(f(x)\) to \(g(x)\).
Step-by-step hints. 1. Define \(\Pi_1(f)\): objects \(x\mapsto f(x)\); morphisms \([\alpha]\mapsto [f\circ \alpha]\).
Identity: show \([\mathrm{id}\circ \alpha]=[\alpha]\) and \(f(\mathrm{id}_x)=\mathrm{id}_{f(x)}\).
Composition: use \((g\circ f)\circ \alpha=g\circ(f\circ \alpha)\) and pass to endpoint-homotopy classes.
Given a homotopy \(H\) from \(f\) to \(g\), define for each \(x\) the path \(\delta_x(t)=H(x,t)\), giving \([\delta_x]:f(x)\to g(x)\).
Check naturality: for \([\alpha]:x\to x'\), compare \[[\delta_{x'}]\circ [f\circ\alpha]\quad\text{and}\quad [g\circ\alpha]\circ [\delta_x].\] Interpret both as boundary paths of the square \((s,t)\mapsto H(\alpha(s),t)\).
Conclude \(\Pi_1(f)\cong \Pi_1(g)\) naturally.
Given functors \(A\xleftarrow{i}C\xrightarrow{j}B\), the pushout \(A\sqcup_C B\) is characterized by a universal cocone.
State the pushout universal property as a bijection of functor sets.
If \(A,B,C\) are groups as one-object groupoids, relate this pushout to the amalgamated free product.
Concept recap. - Pushout universal property (template): “functors out of the glued object” \(\leftrightarrow\) “compatible functors out of the pieces”.
Step-by-step hints. 1. Write explicitly: for every groupoid \(\mathcal G\), there is a natural bijection
\[\mathrm{Fun}(A\sqcup_C B,\mathcal G)\;\cong\;\{(F_A,F_B)\mid F_A\circ i=F_B\circ j\}.\]
Explain the condition: \(F_A\) and \(F_B\) agree on the overlap piece \(C\).
In one-object groupoids, functors \(\leftrightarrow\) homomorphisms, so the bijection becomes \[\mathrm{Hom}(A\ast_C B,G)\cong\{(\phi,\psi)\mid \phi|_C=\psi|_C\},\] i.e. the pushout is \(A\ast_C B\).
Let \(R\rightrightarrows A\) be two functors (say \(s,t:R\to A\)).
Concept recap. - A coequalizer is a universal way to force \(s\) and \(t\) to become equal after mapping out of \(A\).
Step-by-step hints. 1. Definition: \(q\circ s=q\circ t\), and for any \(h:A\to \mathcal G\) with \(h\circ s=h\circ t\), there exists a unique \(\bar h:Q\to\mathcal G\) with \(\bar h\circ q=h\).
Think of generating an equivalence relation on morphisms of \(A\) by declaring \(s(r)\sim t(r)\) for all \(r\) in \(R\).
Close under identities, composition, and inverses so the quotient is still a groupoid.
Define \(Q\) as the quotient groupoid; verify the universal property by checking that any compatible \(h\) respects \(\sim\).
In your proof sketch, compactness of \(I\times I\) is used to refine subdivisions.
Pinpoint exactly where compactness is needed.
Rephrase the argument using “finite subcover”.
Concept recap. - Compactness + open cover \(\Rightarrow\) finite subcover.
Step-by-step hints. 1. Identify the covered set: you cover \(H(I\times I)\subseteq X\) (or equivalently \(I\times I\) by pulling back opens).
Pull back the cover: \(\{H^{-1}(U)\}_{U\in\mathcal O}\) is an open cover of \(I\times I\).
Use compactness of \(I\times I\) to extract a finite subcover \(H^{-1}(U_1),\dots,H^{-1}(U_N)\).
Use a standard refinement lemma (Lebesgue number lemma, or uniform continuity in a metric setting) to choose a subdivision into small rectangles each contained in some \(H^{-1}(U_k)\).
Conclude each rectangle maps into a single \(U_k\), so its boundary gives a “local commutativity” witness in \(\Pi_1(U_k)\).
Let \(\alpha:[0,1]\to X\) be a path. Two different segmentations of \(\alpha\) (each segment lying in some open of the cover) yield two composites in the target groupoid. Show they coincide.
Concept recap. - Prove invariance under refinement (splitting a segment). Any two segmentations have a common refinement.
Step-by-step hints. 1. Prove: splitting one segment into two does not change the assigned composite.
Inside a fixed \(U\), show in \(\Pi_1(U)\):
\[[\alpha_{i,i+1}] = [\alpha_{i,s}]\cdot[\alpha_{s,i+1}].\]
Apply functoriality of \(\eta_U\) to turn this into equality in the target groupoid.
Given two segmentations, take the union of breakpoints to get a common refinement.
Apply refinement invariance repeatedly to conclude the two composites agree.
Assume \(\mathcal O'\) refines \(\mathcal O\).
Construct a functor \(r:\mathcal O'\to\mathcal O\) sending \(U'\mapsto U\) with \(U'\subseteq U\).
Show the induced map \[\operatorname{colim}_{\mathcal O'}\Pi_1(U')\longrightarrow \operatorname{colim}_{\mathcal O}\Pi_1(U)\] is an isomorphism (or at least an equivalence) under standard hypotheses.
Concept recap.
A functor is cofinal/final if it doesn’t change colimits.
Intuition: refining the cover adds “more pieces”, but doesn’t change the glued object.
Step-by-step hints. 1. Define \(r\) on objects: choose for each \(U'\) some \(r(U')=U\) with \(U'\subseteq U\).
On morphisms: if \(V'\subseteq U'\), you need an inclusion \(r(V')\subseteq r(U')\). Explain how to choose these compatibly (or argue choices won’t matter up to canonical equivalence).
Compare diagrams: \(\Pi_1|_{\mathcal O'}\) and \((\Pi_1|_{\mathcal O})\circ r\).
Use the universal property of colimits to get the induced comparison map.
Prove it’s an equivalence using a cofinality criterion: for each \(U\in\mathcal O\), the category of refined opens mapping into \(U\) is nonempty and connected (so \(U\) is “built from” refined opens).
Cover \(S^1\) by open arcs \(U,V\) with \(U\cap V\) the disjoint union of two open arcs.
Describe \(\Pi_1(U)\) and \(\Pi_1(V)\).
Describe \(\Pi_1(U\cap V)\) carefully (components/objects).
Compute \(\Pi_1(U)\sqcup_{\Pi_1(U\cap V)}\Pi_1(V)\) up to equivalence and extract \(\pi_1(S^1)\cong \mathbb Z\).
Concept recap.
Contractible path-connected opens give trivial \(\pi_1\).
Disconnected overlap means the overlap groupoid has multiple objects (one per component).
The generator appears as “difference” between two paths connecting the two overlap components.
Step-by-step hints. 1. Use that \(U\) and \(V\) are contractible: \(\Pi_1(U)\) and \(\Pi_1(V)\) are each equivalent to the one-object trivial groupoid.
\(U\cap V\) has 2 components, so \(\Pi_1(U\cap V)\) is equivalent to a groupoid with two objects \(a,b\) and only identity morphisms.
In \(U\), pick a path from \(a\) to \(b\); call its class \(p_U:a\to b\) (it exists because \(U\) is connected).
In \(V\), pick a path \(p_V:a\to b\).
In the pushout groupoid both \(p_U\) and \(p_V\) exist between the same objects; form the loop at \(a\): \[\ell := p_V^{-1}\cdot p_U\in \mathrm{End}(a).\]
Show any loop is a power of \(\ell\) (use normal form / reduced word intuition), and there are no extra relations. Conclude \(\mathrm{End}(a)\cong \mathbb Z\).
Let \(X=S^1\vee S^1\) with wedge point \(*\). Choose a cover \(X=U\cup V\) where \(U\) retracts to one circle, \(V\) retracts to the other, and \(U\cap V\) is contractible.
Compute \(\Pi_1(X)\) up to equivalence.
Deduce \(\pi_1(X,*)\cong F_2\).
Concept recap. - If \(U\cap V\) is contractible, then on \(\pi_1\) you get a pushout \[\pi_1(X,*)\cong \pi_1(U,*) * \pi_1(V,*).\]
Step-by-step hints.
Compute \(\pi_1(U,*)\cong \mathbb Z\) and \(\pi_1(V,*)\cong \mathbb Z\).
\(\pi_1(U\cap V,*)\) is trivial.
The pushout of groups is \(\mathbb Z * \mathbb Z\).
Identify \(\mathbb Z * \mathbb Z\) with the free group \(F_2\).
Let \(G\) be a connected finite graph.
Cover \(G\) by open stars \(U_v\) around vertices; overlaps \(U_v\cap U_w\) are empty or contractible.
Show \(\Pi_1(G)\) is equivalent to the groupoid freely generated by edges, modulo vertex identifications.
Deduce \(\pi_1(G)\) is free of rank \(E-V+1\).
Concept recap.
A spanning tree has trivial \(\pi_1\).
Each edge not in the tree adds exactly one independent cycle.
Step-by-step hints.
Check each \(U_v\) deformation retracts to a point (so has trivial \(\pi_1\)).
Each nonempty overlap deformation retracts to an interval (also trivial \(\pi_1\)).
Choose a spanning tree \(T\subseteq G\). Argue \(\pi_1(T)=1\).
Add edges \(e\notin T\) one by one; each creates a unique cycle.
Show those cycles yield free generators and no relations among them.
Count the number of added edges: \(E-(V-1)=E-V+1\).
Cover \(T^2\) by open sets \(U,V\) each retracting to a wedge of two circles, and \(U\cap V\) retracting to a wedge of three circles.
Write down the induced diagram on \(\pi_1\).
Compute the colimit and show it is \(\mathbb Z^2\).
Concept recap.
Wedge of \(n\) circles has \(\pi_1\cong F_n\).
Pushout of groups can be computed using presentations: start from a free product and add relations equating the two images of the overlap group.
Step-by-step hints.
Identify groups: \(\pi_1(U)\cong F_2\), \(\pi_1(V)\cong F_2\), \(\pi_1(U\cap V)\cong F_3\).
Choose generators in each group: e.g. \(\pi_1(U)=\langle a,b\rangle\), \(\pi_1(V)=\langle a',b'\rangle\), \(\pi_1(U\cap V)=\langle x,y,z\rangle\).
Compute inclusion maps by tracking how \(x,y,z\) sit inside \(U\) and \(V\) (geometrically).
Form the pushout presentation: start with \(F_2 * F_2\) and impose relations identifying the two images of \(x,y,z\).
Simplify the resulting presentation (Tietze-move style) until it becomes
\[\langle a,b\mid [a,b]=1\rangle.\]
Recognize this as \(\mathbb Z^2\).
Assume \(X\) is path connected and the cover \(\mathcal O\) consists of path connected opens \(U\ni x\), closed under finite intersections.
Explain why \(End_{\Pi_1(U)}(x)=\pi_1(U,x)\) and inclusions induce homomorphisms.
Explain why taking endomorphisms at \(x\) turns the groupoid colimit into the classical group colimit.
Concept recap.
In any groupoid, \(End(x)\) is a group under composition.
The classical group Van Kampen is the “basepoint-\(x\) endomorphism part” of the groupoid statement, under hypotheses ensuring \(x\) is present and connected everywhere.
Step-by-step hints.
Unpack definitions: endomorphisms of \(x\) in \(\Pi_1(U)\) are loops at \(x\) modulo endpoint homotopy, i.e. \(\pi_1(U,x)\).
An inclusion \(V\subseteq U\) induces \(\Pi_1(V)\to \Pi_1(U)\); restricting to \(End(x)\) gives \(\pi_1(V,x)\to \pi_1(U,x)\).
Start from \(\Pi_1(X)\cong \operatorname{colim}_{\mathcal O}\Pi_1(U)\) in Gpd.
Apply the “take endomorphisms at \(x\)” operation on both sides.
Use the hypotheses (all sets contain \(x\) and are path connected) to argue this extracts exactly the group colimit: \[\pi_1(X,x)\cong \operatorname{colim}_{\mathcal O}\pi_1(U,x).\]
Find an example with \(X\) path connected, \(U,V\) path connected, but \(U\cap V\) not path connected.
Explain why the classical group statement is awkward.
Explain why groupoid Van Kampen still works cleanly.
Concept recap.
Classical Van Kampen typically requires \(U\cap V\) path connected to avoid losing information.
Groupoids keep all components as objects, so no loss.
Step-by-step hints.
Use \(X=S^1\) covered by two arcs \(U,V\) so that \(U\cap V\) has two components.
If you choose a basepoint \(x\) in one component, then \(\pi_1(U\cap V,x)\) sees only that component (trivial), missing the other component completely.
In the groupoid approach, \(\Pi_1(U\cap V)\) has two objects—this extra object is precisely what produces the generator in the pushout.
Summarize: “multiple overlap components = multiple objects; those objects encode gluing paths that generate loops”.
In D1, identify the specific zig-zag giving the generator of \(\pi_1(S^1)\).
Concept recap.
Step-by-step hints.
Pick points \(a,b\) in the two components of \(U\cap V\).
Let \(p_U:a\to b\) be a path class inside \(U\).
Let \(p_V:a\to b\) be a path class inside \(V\).
The loop \(p_V^{-1}\cdot p_U\) at \(a\) is the generator.
Write a short paragraph: objects = stations, morphisms = tickets, homotopy = same route up to deformation, pushout = glue maps along shared sub-maps. Explain why multiple overlap components create loops.
Concept recap.
Step-by-step hints.
Translate object/morphism/composition/inverse into the metro picture.
Explain “gluing” as identifying a shared sub-map.
If the overlap has two components, there are two disjoint interchange zones.
A loop is: travel from interchange A to interchange B in \(U\), then return from B to A in \(V\).
Let \(X=U\cup V\).
Write categorical Van Kampen as a pushout statement.
Restate the universal property in words.
Concept recap. - “\(\Pi_1\) sends unions to pushouts” (under the usual cover hypotheses).
Step-by-step hints.
Write \[\Pi_1(X)\cong \Pi_1(U)\sqcup_{\Pi_1(U\cap V)}\Pi_1(V).\]
In words: giving a functor \(\Pi_1(X)\to \mathcal G\) is the same as giving functors \(\Pi_1(U)\to\mathcal G\) and \(\Pi_1(V)\to\mathcal G\) that agree on \(\Pi_1(U\cap V)\).
Pick one: cylinder \(S^1\times I\), Möbius strip, or pair-of-pants surface.
Design a cover by opens where each piece and each nonempty overlap deformation retracts to something simple.
Write the induced diagram on \(\Pi_1\) or \(\pi_1\).
Compute the colimit and interpret the result.
Concept recap.
Deformation retracts preserve \(\Pi_1\) up to equivalence.
Contractible overlaps often make computations free-product-ish; nontrivial overlaps impose relations.
Step-by-step hints.
Identify a simple spine your space deformation retracts onto (often a graph).
Choose opens that retract onto subgraphs (intervals or wedges of circles).
Compute \(\pi_1\) of each open and overlap and the induced maps.
Compute the colimit via a group presentation: start with a free product and add relations from overlaps.
Interpret generators geometrically (which loop is which).