The awkwardness in Definition 1.10, namely that all the groups \(\pi_1(X, x_0)\) are isomorphic, but not canonically so, is a sign that we have chosen the wrong invariant. Proposition 1.7 does not really say that loops at a point form a group; it says that all paths in \(X\) compose associatively, with units and inverses, subject only to the constraint that composable paths must match up at endpoints. That is the structure of a groupoid.
Let \(G\) be a group, and consider the category with one object, \(\ast\text{,}\) and with \(\Hom(\ast,\ast) = |G|\text{,}\) where composition of morphisms given by the group operation in \(G\text{.}\) Since every element in a group has an inverse, every morphism is an isomorphism. In this way, any gorup can be viewed as a groupoid.
The fundamental groupoid \(\Pi_1(X)\) of a space \(X\) is the category whose objects are the points of \(X\) and whose morphisms \(x_0 \to x_1\) are the path-homotopy classes of paths from \(x_0\) to \(x_1\text{,}\) with composition induced by \(*\) and identity at \(x\) given by \([c_x]\text{.}\)
That this is a well-defined category is exactly Exercise 1.4 together with parts (1) and (2) of Proposition 1.7, and part (3) says every morphism is invertible, so \(\Pi_1(X)\) is a groupoid. By construction
the automorphism group of the object \(x_0\text{,}\) and conjugation by a morphism \(\alpha \colon x_0 \to x_1\) is the basepoint-change isomorphism \(\hat{\alpha}\text{.}\) A continuous map \(\phi \colon X \to Y\) sends paths to paths and path homotopies to path homotopies, so induces a functor \(\Pi_1(\phi)\text{,}\) and we obtain a functor
requiring no choice of basepoint at all. Note that the set of isomorphism classes of objects of \(\Pi_1(X)\) is the set \(\pi_0(X)\) of path components, and \(\Pi_1(X)\) has exactly one object up to isomorphism precisely when \(X\) is path-connected.
If \(X\) is path-connected and \(x_0 \in X\text{,}\) the inclusion of the full subcategory on the single object \(x_0\) is an equivalence of categories \(\pi_1(X, x_0) \xrightarrow{\ \simeq\ } \Pi_1(X)\text{.}\)
An inverse equivalence requires choosing, for each \(x \in X\text{,}\) a path from \(x_0\) to \(x\text{.}\) This is precisely the choice that made the identifications in Exercise 1.11 non-canonical in general.
Show that \(\Pi_1(C)\) for \(C \subseteq \mathbb{R}^n\) convex and nonempty is the indiscrete groupoid on the set \(C\text{,}\) i.e., there is exactly one morphism between any two objects. Deduce Example 1.20.
Show that a homotopy \(H\) from \(\varphi\) to \(\psi\) determines a natural transformation \(\Pi_1(\varphi) \Rightarrow \Pi_1(\psi)\text{,}\) whose component at \(x\) is the class of the path \(t \mapsto H(x,t)\text{.}\) Check that Proposition 1.18 is the statement that this transformation is natural.