Algebra - 3

In this entry, we will resolve at least one promise from the last entry.

1 - Cones as Comma Categories

Last time, we saw that given an index category J\mathsf{J}, the category of diagrams in C\mathsf{C} of shape J\mathsf{J} is just the functor category Diag(J,C)\operatorname{Diag}(\mathsf{J}, \mathsf{C}).

We took an interest in special diagrams that very much resemble objects of C\mathsf{C} itself, called constant diagrams A\underline{A}, which take every object of J\mathsf{J} to the object ACA \in \mathsf{C}, and every morphism of J\mathsf{J} to the identity on AA.

In particular, we saw the diagonal functor Δ:CDiag(J,C)\Delta: \mathsf{C} \to \operatorname{Diag}(\mathsf{J}, \mathsf{C}), which takes each object AA to the constant diagram A\underline{A}, and each morphism f:ABf: A \to B to the natural transformation AB\underline{A} \Rightarrow \underline{B} whose every component is ff.

Moreover, we saw that a fixed diagram DDiag(J,C)D \in \operatorname{Diag}(\mathsf{J},\mathsf{C}) can equivalently be represented as a functor D:1Diag(J,C)\mathscr{D}: \mathsf{1} \to \operatorname{Diag}(\mathsf{J},\mathsf{C}), where the lone object * of 1\mathsf{1} is sent to DD.

Thus, we saw that the category of cones over DD in C\mathsf{C} is the comma category of the two functors Δ,D\Delta, \mathscr{D}.

Commutative diagram

The comma category (ΔD)(\Delta \downarrow \mathscr{D}) has objects (A,,u:Δ(A)D())(A, *, u: \Delta(A) \to \mathscr{D}(*)), that is, pairs (A,u:AD)(A, u: \underline{A} \Rightarrow D), exactly a cone over DD with apex AA. We may as well take objects of this category as the definition of a cone, but it’s nice to check that it embodies the naive definition of a cone.

Notice that uu is a natural transformation between two functors A,D\underline{A}, D, both from J\mathsf{J} to C\mathsf{C}. But notice that for any jJj \in \mathsf{J}, A(j)=A\underline{A}(j) = A, and for any morphism s:jjs: j \to j' in J\mathsf{J}, A(s)=1A\underline{A}(s) = 1_A. In particular, every component of uu, call it uju_j, is a morphism AD(j)A \to D(j).

Now consider a morphism s:jjs: j \to j' in J\mathsf{J}. The naturality square looks like:

Commutative diagram

Since the top arrow is 1A1_A, this simplifies to the triangle:

Commutative diagram

with commutativity condition D(s)uj=uj,D(s) \circ u_j = u_{j'}, for every morphism s:jjs: j \to j' in J\mathsf{J}. This is exactly the naive, componentwise definition of a cone: a collection of morphisms uj:AD(j)u_j: A \to D(j), one for each object of J\mathsf{J}, compatible with every morphism of the diagram.

What are morphisms here? Of course, as with any comma category, a morphism in (ΔD)(\Delta \downarrow \mathscr{D}) from (P,u)(P,u) to (Q,v)(Q,v) is a pair of morphisms (f:PQ, 1:)(f: P\to Q,\ 1_*: *\to *), one in C\mathsf{C}, one in 1\mathsf{1}. Since 1\mathsf{1} has only the identity morphism, this is really just identified with a morphism f:PQf: P \to Q in C\mathsf{C}.

Of course, it’s not just any morphism, but one making the following square commute:

Commutative diagram

Since D(1)=1D\mathscr{D}(1_*) = 1_D, this collapses to vΔ(f)=u,v \circ \Delta(f) = u, an equation of natural transformations PD\underline{P} \Rightarrow D. That is, f:PQf: P \to Q is a morphism of cones exactly when postcomposing QQ‘s cone with Δ(f)\Delta(f) recovers PP‘s cone.

In particular, Δ(f)\Delta(f) is the natural transformation from the constant diagram at PP to the constant diagram at QQ, all of whose components are ff. We can use componentwise reasoning here, but at the end of the day, objects in the target category Diag(J,C)\operatorname{Diag}(\mathsf{J},\mathsf{C}) are all functors, and morphisms are natural transformations, and the equation above is an equation of natural transformation composition.

That is to say, we have the following commutative (as an evaluation of the one above) diagram, whose objects are functors and whose morphisms are natural transformations:

Commutative diagram

Notice that each P,Q,D\underline{P}, \underline{Q}, D are functors from J\mathsf{J} to C\mathsf{C}. Thus, we just want the components vΔ(f)(j)ujv_{\Delta(f)_{(j)}} \circ u_j wait, let’s restate this properly: we want, for each jJj \in \mathsf{J}, vjΔ(f)j=uj.v_j \circ \Delta(f)_j = u_j. Notice that for any object jj, Δ(f)j\Delta(f)_j simply sends the object P(j)=P\underline{P}(j) = P to the object Q(j)=Q\underline{Q}(j) = Q via ff, that is, Δ(f)j=f\Delta(f)_j = f for every jj. So every component of uu is a morphism from PP to D(j)D(j) in C\mathsf{C}, and every component of vv is a morphism from QQ to D(j)D(j) in C\mathsf{C}, call them uj,vju_j, v_j respectively. We want the triangle to commute, that is, vjf=ujfor each j.v_j \circ f = u_j \quad \text{for each } j.


2 - Whiskering

Composing natural transformations can be extended beyond parallel functors.

Imagine categories A,B,C\mathsf{A}, \mathsf{B}, \mathsf{C}, functors F,G:ABF, G: \mathsf{A}\to\mathsf{B}, and functors H,K:BCH, K: \mathsf{B}\to\mathsf{C}. Let α:FG\alpha: F\Rightarrow G be a natural transformation, and β:HK\beta: H\Rightarrow K be a natural transformation.

Commutative diagram

with α:FG\alpha: F\Rightarrow G drawn between the two arrows AB\mathsf{A}\to\mathsf{B}, and β:HK\beta: H\Rightarrow K drawn between the two arrows BC\mathsf{B}\to\mathsf{C}.

Let’s first tackle the simplest piece we actually need: post-composing a single functor with a natural transformation. Suppose we forget β\beta for a moment, and just have α:FG\alpha: F \Rightarrow G (both AB\mathsf{A}\to\mathsf{B}), and a single functor H:BCH: \mathsf{B}\to\mathsf{C}. We want to build a natural transformation HFHGHF \Rightarrow HG, using α\alpha and HH alone.

For each object XAX \in \mathsf{A}, α\alpha gives us a morphism αX:F(X)G(X)\alpha_X: F(X) \to G(X) in B\mathsf{B}. Since HH is a functor, we can apply it: H(αX):HF(X)HG(X)H(\alpha_X): HF(X) \to HG(X), a morphism in C\mathsf{C}. Define (Hα)X:=H(αX).(H\alpha)_X := H(\alpha_X).

Check naturality. For s:XYs: X\to Y in A\mathsf{A}, we need (Hα)YHF(s)=HG(s)(Hα)X(H\alpha)_Y \circ HF(s) = HG(s) \circ (H\alpha)_X, i.e. H(αY)H(F(s))=H(G(s))H(αX)H(\alpha_Y)\circ H(F(s)) = H(G(s))\circ H(\alpha_X). Since HH is a functor, this is H(αYF(s))=H(G(s)αX)H(\alpha_Y \circ F(s)) = H(G(s)\circ \alpha_X), and this follows by applying HH to both sides of α\alpha‘s own naturality square, αYF(s)=G(s)αX\alpha_Y\circ F(s) = G(s)\circ\alpha_X, which holds since α\alpha is natural.

So Hα:HFHGH\alpha: HF \Rightarrow HG is a genuine natural transformation, built purely from α\alpha and HH. This operation, sticking a functor onto one side of a natural transformation, is called whiskering.

On the other hand, one wonders the following setup: FF a functor from A\mathsf{A} to B\mathsf{B}, and H,KH,K functors from B\mathsf{B} to C\mathsf{C}, with a natural transformation β:HK\beta: H\Rightarrow K between them. We want a natural transformation between HFHF and KFKF.

Of course, our gut tells us that we must define the component (βF)X(\beta F)_X to simply be βF(X)\beta_{F(X)}, that is, pre-composing FF with a natural transformation has components given by β\beta, evaluated after first applying the functor FF: (βF)X:=βF(X).(\beta F)_X := \beta_{F(X)}.

Check naturality. For s:XYs: X\to Y in A\mathsf{A}, we need (βF)YHF(s)=KF(s)(βF)X(\beta F)_Y \circ HF(s) = KF(s)\circ(\beta F)_X, i.e. βF(Y)H(F(s))=K(F(s))βF(X).\beta_{F(Y)} \circ H(F(s)) = K(F(s))\circ \beta_{F(X)}. But this is exactly β\beta‘s own naturality square, applied at the morphism F(s):F(X)F(Y)F(s): F(X)\to F(Y) in B\mathsf{B}, which holds since β\beta is natural.

So βF:HFKF\beta F: HF \Rightarrow KF is the needed natural transformation.

Now to compose α\alpha with β\beta:

Commutative diagram

The question becomes: how can we make a natural transformation between the functors HFHF and KGKG? And if our whiskering and usual vertical composition are worthy of the title “composite,” it had better be that if we have multiple “composites” of α\alpha and β\beta, they turn out to be equal.

The first way is: whisker FF before β:HK\beta: H \Rightarrow K to get βF:HFKF\beta F: HF \Rightarrow KF. Now whisker KK after α:FG\alpha: F \Rightarrow G to get Kα:KFKGK\alpha: KF \Rightarrow KG. Notice that both these transformations are between functors from A\mathsf{A} to C\mathsf{C}, i.e. we can compose them as usual, giving us a candidate KαβFK\alpha \circ \beta F.

Another way is: whisker HH after α:FG\alpha: F \Rightarrow G to get Hα:HFHGH\alpha: HF \Rightarrow HG. Now whisker GG before β:HK\beta: H \Rightarrow K to get βG:HGKG\beta G: HG \Rightarrow KG, giving us another candidate βGHα\beta G \circ H\alpha.

We know that both these candidates are of course valid natural transformations, however, they had better be equal, that is, have all the same components.

Consider an object XX in A\mathsf{A}. Indeed, αX:F(X)G(X)\alpha_X: F(X) \to G(X) in B\mathsf{B}. Thus, H(αX):H(F(X))H(G(X))H(\alpha_X): H(F(X)) \to H(G(X)) is a morphism in C\mathsf{C}. Similarly, βG(X):H(G(X))K(G(X))\beta_{G(X)}: H(G(X)) \to K(G(X)); the vertical composite of those two simply composes both components.

On the other hand, we have βF(X):H(F(X))K(F(X))\beta_{F(X)}: H(F(X)) \to K(F(X)), a morphism in C\mathsf{C}, and similarly K(αX):K(F(X))K(G(X))K(\alpha_X): K(F(X)) \to K(G(X)).

Commutative diagram

Staring at the above diagram, it is not hard to see that it’s just the naturality square for β\beta, applied at the morphism αX:F(X)G(X)\alpha_X: F(X) \to G(X). Thus, the two paths are equal.


3 - Free Groups

We shall seemingly cut to something else, but don’t worry, we will bring it back.

Suppose you have a set SS. One might think about defining the set of all finite-length words in SS, this depicting some sort of monoid-type structure, with the empty word serving as an identity.

It’s not entirely clear how the binary operator is recovered here, and what the rules should be. So let’s build it up.

Notice, the empty set has the capacity only to make the empty word, so we know that the free group on the empty set should just be, up to isomorphism, the trivial group with just an identity.

What about a singleton? Well, you have S={a}S = \{a\}. You will have to include the empty word, and a symbol that is the inverse of aa, call it a1a^{-1}. It is not difficult to see that in this case, FG(S)FG(S) consists of words ama^m or (a1)m(a^{-1})^m for some mNm \in \mathbb{N} (do an induction argument, or otherwise notice that aa1aa^{-1} or a1aa^{-1}a, as subwords, evaluate to the empty word).

In particular, defining az:=(a1)za^{-z} := (a^{-1})^z and a0a^0 to be the empty word, it is easy to see that this group is isomorphic to (Z,+)(\mathbb{Z}, +).


4 - The Fundamental Group of Topological Spaces

Let (X,x)(X, x^*) be a topological space with a chosen basepoint. One way to study a topological space is to look at the algebra of loops (up to continuous deformation) on that space.

Indeed, a loop is a continuous map l:[0,1]Xl: [0,1] \to X with l(0)=l(1)=xl(0) = l(1) = x^*. At this point, the reader can stop and check out my topology note.

Of course, we want to consider homotopy classes of such maps. We need a product on Hom([0,1],X)/\operatorname{Hom}([0,1],X)/\sim, where \sim is the homotopy relation.

Well, let [l],[v][l], [v] be two homotopy classes. By choosing representatives l,vl, v, we may construct l1/2v:[0,1]Xl *_{1/2} v: [0,1] \to X, defined by

t{l(2t)t[0,1/2]v(2t1)t[1/2,1]t \mapsto \begin{cases} l(2t) & t \in [0, 1/2] \\ v(2t-1) & t \in [1/2, 1] \end{cases}

Again, we invoke the gluing lemma from the topology note to show that lvl*v is a continuous map. But of course, we want the induced class [lv][l*v] to be well-defined, that is to say, if lll \sim l' and vvv \sim v', we want lvlvl*v \sim l'*v'.

Let H1,H2:[0,1]2XH_1, H_2: [0,1]^2 \to X be the homotopies between l,ll, l' and v,vv, v' respectively. That is, H1,H2H_1, H_2 are continuous maps (product topology on [0,1]2[0,1]^2) with H1(_,0)=lH_1(\_,0) = l, H1(_,1)=lH_1(\_,1) = l', and H2(_,0)=vH_2(\_,0) = v, H2(_,1)=vH_2(\_,1) = v'.

Notice that these loops are basepoint preserving, that is, every homotopy slice H1(_,s)H_1(\_,s) and H2(_,s)H_2(\_,s) must be a continuous map [0,1]X[0,1] \to X such that 0,10, 1 both go to the basepoint xx^*.

This suggests we should glue H1H_1 and H2H_2 at t=1/2t=1/2, at double speed, for every fixed value of ss, exactly as we did for lvl*v itself. Define H:[0,1]2XH: [0,1]^2 \to X by

H(t,s)={H1(2t,s)t[0,1/2]H2(2t1,s)t[1/2,1]H(t,s) = \begin{cases} H_1(2t,\,s) & t \in [0, 1/2] \\ H_2(2t-1,\,s) & t \in [1/2, 1] \end{cases}

Homotopy of glued loops.png

At the seam t=1/2t=1/2, the two branches must agree for every ss: the top branch gives H1(1,s)H_1(1,s), the bottom gives H2(0,s)H_2(0,s). Since H1,H2H_1, H_2 are basepoint-preserving homotopies, H1(1,s)=x=H2(0,s)H_1(1,s) = x^* = H_2(0,s) for every s[0,1]s \in [0,1], so the two definitions agree along the entire seam, not merely at s=0,1s=0,1.

By the gluing lemma, HH is therefore continuous. Checking the endpoints in ss:

H(t,0)={H1(2t,0)=l(2t)t[0,1/2]H2(2t1,0)=v(2t1)t[1/2,1]=(lv)(t),H(t,0) = \begin{cases} H_1(2t,0) = l(2t) & t\in[0,1/2] \\ H_2(2t-1,0) = v(2t-1) & t\in[1/2,1] \end{cases} = (l*v)(t), H(t,1)={H1(2t,1)=l(2t)t[0,1/2]H2(2t1,1)=v(2t1)t[1/2,1]=(lv)(t).H(t,1) = \begin{cases} H_1(2t,1) = l'(2t) & t\in[0,1/2] \\ H_2(2t-1,1) = v'(2t-1) & t\in[1/2,1] \end{cases} = (l'*v')(t).

So HH is a homotopy from lvl*v to lvl'*v', and moreover HH is itself basepoint preserving (each slice H(_,s)H(\_,s) sends 00 and 11 to xx^*, since H1(0,s)=x=H2(1,s)H_1(0,s)=x^*=H_2(1,s) for every ss). Thus lvlvl*v \sim l'*v', and the product [l][v]:=[lv][l]*[v] := [l*v] is well defined on homotopy classes.

Now, to show that this product is associative, it is sufficient to show that * on representatives is associative up to homotopy. That is, to show that (lv)ul(vu)(l*v)*u \sim l*(v*u).

Associativity

Let’s just do the interval math over here.

(lv)u(l*v)*u expands (unwinding the outer product, then the inner one) to

((lv)u)(t)={l(4t)t[0,1/4]v(4t1)t[1/4,1/2]u(2t1)t[1/2,1]((l*v)*u)(t) = \begin{cases} l(4t) & t\in[0,1/4] \\ v(4t-1) & t\in[1/4,1/2] \\ u(2t-1) & t\in[1/2,1] \end{cases}

and similarly, l(vu)l*(v*u) expands to

(l(vu))(t)={l(2t)t[0,1/2]v(4t2)t[1/2,3/4]u(4t3)t[3/4,1](l*(v*u))(t) = \begin{cases} l(2t) & t\in[0,1/2] \\ v(4t-2) & t\in[1/2,3/4] \\ u(4t-3) & t\in[3/4,1] \end{cases}

Notice the two are literally the same three pieces, ll then vv then uu, just with the breakpoints sitting in different places, 1/4,1/21/4,1/2 versus 1/2,3/41/2,3/4.

Let p1(s)=1+s4p_1(s) = \frac{1+s}{4}, p2(s)=2+s4p_2(s) = \frac{2+s}{4}, so p1(0),p2(0)=1/4,1/2p_1(0),p_2(0) = 1/4,1/2 and p1(1),p2(1)=1/2,3/4p_1(1),p_2(1) = 1/2,3/4.

Define the reparametrization maps of the three pieces,

ρ1(t,s)=tp1(s),ρ2(t,s)=tp1(s)p2(s)p1(s),ρ3(t,s)=tp2(s)1p2(s),\rho_1(t,s) = \frac{t}{p_1(s)}, \qquad \rho_2(t,s) = \frac{t-p_1(s)}{p_2(s)-p_1(s)}, \qquad \rho_3(t,s) = \frac{t-p_2(s)}{1-p_2(s)},

each continuous.

Now define HH by

H(t,s)={l(ρ1(t,s))t[0,p1(s)]v(ρ2(t,s))t[p1(s),p2(s)]u(ρ3(t,s))t[p2(s),1]H(t,s) = \begin{cases} l(\rho_1(t,s)) & t \in [0,\,p_1(s)] \\ v(\rho_2(t,s)) & t \in [p_1(s),\,p_2(s)] \\ u(\rho_3(t,s)) & t \in [p_2(s),\,1] \end{cases}

Each piece is a composite of two continuous functions, lρ1l\circ\rho_1, vρ2v\circ\rho_2, uρ3u\circ\rho_3, hence continuous.

At the seams, t=p1(s)t=p_1(s) gives l(1)=xl(1)=x^* on one side and v(0)=xv(0)=x^* on the other, for every ss, and same story at t=p2(s)t=p_2(s) with v(1)=x=u(0)v(1)=x^*=u(0). So we may invoke the gluing lemma, and HH is continuous on all of [0,1]2[0,1]^2.

Plugging in s=0,1s=0,1 recovers (lv)u(l*v)*u and l(vu)l*(v*u) exactly, and H(0,s)=l(0)=xH(0,s)=l(0)=x^*, H(1,s)=u(1)=xH(1,s)=u(1)=x^* for every ss, so HH stays a based loop throughout.

Thus (lv)ul(vu)(l*v)*u \sim l*(v*u), and * is associative on homotopy classes.

Inverses

Now the inverse. It should just be reversing the interval.

Given a loop ll, define lˉ(t):=l(1t)\bar l(t) := l(1-t), clearly continuous, and lˉ(0)=x=lˉ(1)\bar l(0)=x^*=\bar l(1). We want llˉexl*\bar l \sim e_{x^*}.

(llˉ)(t)={l(2t)t[0,1/2]lˉ(2t1)t[1/2,1]={l(2t)t[0,1/2]l(22t)t[1/2,1](l*\bar l)(t) = \begin{cases} l(2t) & t\in[0,1/2] \\ \bar l(2t-1) & t\in[1/2,1] \end{cases} = \begin{cases} l(2t) & t\in[0,1/2] \\ l(2-2t) & t\in[1/2,1] \end{cases}

so it walks out along ll then walks straight back.

Define H(t,s)={l((1s)2t)t[0,1/2]l((1s)(22t))t[1/2,1]H(t,s) = \begin{cases} l((1-s)2t) & t\in[0,1/2] \\ l((1-s)(2-2t)) & t\in[1/2,1] \end{cases}

at s=0s=0 this is just llˉl*\bar l, at s=1s=1 both pieces are l(0)=xl(0)=x^*, so H(,1)=exH(\cdot,1) = e_{x^*}.

Each piece is ll composed with a continuous reparametrization, hence continuous. At the seam t=1/2t=1/2, both pieces give l(1s)l(1-s), matching for every ss, so we may invoke the gluing lemma and HH is continuous.

H(0,s)=l(0)=xH(0,s)=l(0)=x^*, H(1,s)=l(0)=xH(1,s)=l(0)=x^* for every ss.

Thus llˉexl*\bar l \sim e_{x^*}, and symmetrically lˉlex\bar l * l \sim e_{x^*}, so [lˉ][\bar l] is the two-sided inverse to [l][l].

The group thus obtained is called the fundamental group of XX (at basepoint xx^*). Now I must mention that changing basepoints gives isomorphic fundamental groups so long as the space XX is path connected.

Definition of the Fundamental Group

Let (X,x)(X,x^*) be a topological space with basepoint xx^*. The fundamental group of XX at xx^*, denoted π1(X,x)\pi_1(X,x^*), is the set of homotopy classes of loops based at xx^*,

π1(X,x):={l:[0,1]Xl continuous, l(0)=l(1)=x}/,\pi_1(X,x^*) := \{ l : [0,1]\to X \mid l \text{ continuous}, \ l(0)=l(1)=x^* \} \big/ \sim,

equipped with the product [l][v]:=[lv][l][v] := [l*v].

This is a group: * is well defined on classes, associative up to homotopy (hence associative on classes), the class of the constant loop exe_{x^*} is a two-sided identity, and [lˉ][\bar l], the class of the reversed loop, is a two-sided inverse to [l][l].


5 - Functoriality of the Fundamental Group

Now, consider the category of groups Grp\mathsf{Grp} and the category of pointed topological spaces Top\mathsf{Top}^*. We claim that π1\pi_1, as defined above, with the right choice of “image of continuous maps,” is a functor from Top\mathsf{Top}^* to Grp\mathsf{Grp}.

Suppose f:(X,x)(Y,y)f: (X,x^*) \to (Y,y^*) is a continuous basepoint-preserving map. Then, of course, π1(X,x)\pi_1(X,x^*) contains homotopy classes of loops l:[0,1]Xl: [0,1] \to X, and we may as well send [l][fl][l] \mapsto [f\circ l] via π1(f)\pi_1(f).

For any representative ll of [l][l], it’s easy to show that fl:[0,1]Yf\circ l: [0,1] \to Y is a loop on YY. Of course, the composed map is continuous, and given that l(0)=l(1)=xl(0)=l(1)=x^*, we get f(l(0))=f(l(1))=yf(l(0)) = f(l(1)) = y^*.

Now we need to show that the map between equivalence classes is well defined, as we have done so many times now. That is, whenever lll \sim l', where l,ll,l' are loops on XX, we want to show that flflf\circ l \sim f\circ l'.

Let H:[0,1]2XH: [0,1]^2 \to X be a homotopy from ll to ll'. We claim that fH:[0,1]2Yf\circ H: [0,1]^2 \to Y is a homotopy from flf\circ l to flf\circ l'.

Firstly, it’s clear that fHf\circ H is continuous. Next, we claim that any slice fH(_,s)f\circ H(\_,s) is a loop on YY: since H(_,s)H(\_,s) is a loop, H(0,s)=H(1,s)=xH(0,s)=H(1,s)=x^* for each s[0,1]s\in[0,1], so, composing with ff, fH(_,s)f\circ H(\_,s) is indeed a loop.

Next, since H(_,0)=lH(\_,0)=l and H(_,1)=lH(\_,1)=l', we get fH(_,0)=flf\circ H(\_,0) = f\circ l and fH(_,1)=flf\circ H(\_,1) = f\circ l'.

π1(f)\pi_1(f) Is a Homomorphism

Consider π1(f)([l][v])\pi_1(f)([l][v]). By definition of our product on equivalence classes, this is equal to π1(f)([lv])=[f(lv)]\pi_1(f)([l*v]) = [f\circ(l*v)].

On the other hand, π1(f)([l])π1(f)([v])=[fl][fv]=[(fl)(fv)]\pi_1(f)([l])\,\pi_1(f)([v]) = [f\circ l][f\circ v] = [(f\circ l)*(f\circ v)], the last equality again by definition of our product.

Now, the reader can convince themselves that, picking representatives l,vl,v, the functions (fl)(fv)(f\circ l)*(f\circ v) and f(lv)f\circ(l*v) are literally equal, so the two equivalence classes are equal too.

Now it’s clear that π1\pi_1 preserves identity maps. Thus only one question remains: is π1(gf)=π1(g)π1(f)\pi_1(g\circ f) = \pi_1(g) \circ \pi_1(f)? Well, π1(gf)\pi_1(g\circ f) sends a loop [l][l] to [gfl][g\circ f \circ l], which is indeed π1(g)([fl])=π1(g)(π1(f)([l]))\pi_1(g)([f \circ l]) = \pi_1(g)(\pi_1(f)([l])).


6 - Towards the Fundamental Group of the Torus

Let us compute some homotopy groups (in general this is a pain).

Consider the torus. It is built by identifying the ends of a cylinder as equivalent (with the same direction). A cylinder itself is built by identifying the top and bottom of a square as equivalent.

Consider the space S=[0,1]2S = [0,1]^2 with the standard topology (inherited as a subspace). We say

(x,y)(x,y)    (x,y)=(x,y)  or  (y=y and {x,x}={0,1})(x,y) \sim (x',y') \iff (x,y)=(x',y') \ \text{ or } \ \big(y=y' \text{ and } \{x,x'\}=\{0,1\}\big) \\  or  (x=x and {y,y}={0,1}).\text{ or } \ \big(x=x' \text{ and } \{y,y'\}=\{0,1\}\big).

To get the torus, put the quotient topology on S/S/\sim, i.e., UU is open if and only if π1(U)\pi^{-1}(U) is open in SS, where π:SS/\pi: S \to S/\sim is the canonical projection map.

First, we shall show that S/S/\sim is path connected. Note that a topological space XX is path connected if for any x,yXx,y \in X, there exists a continuous map cx,y:[0,1]Xc_{x,y}: [0,1] \to X such that cx,y(0)=xc_{x,y}(0) = x, cx,y(1)=yc_{x,y}(1) = y.

Let [x],[y]S/[x],[y] \in S/\sim. Pick representatives x[x]x' \in [x], y[y]y' \in [y].

Notice that the map u:[0,1]Su: [0,1] \to S given by u(t)=x+t(yx)u(t) = x' + t(y'-x') is continuous, where of course x,y[0,1]2x',y' \in [0,1]^2 and the algebra is that of vector spaces. Also, u(0)=xu(0) = x', u(1)=yu(1) = y'.

Obviously then, πu\pi \circ u is continuous, and πu(0)=π(x)=[x]=[x]\pi\circ u(0) = \pi(x') = [x']=[x], πu(1)=π(y)=[y]=[y]\pi\circ u(1) = \pi(y') = [y'] = [y].

So πu:[0,1]S/\pi\circ u: [0,1] \to S/\sim is a continuous map with πu(0)=[x]\pi\circ u(0)=[x] and πu(1)=[y]\pi\circ u(1)=[y], exactly a path from [x][x] to [y][y]. Since [x],[y][x],[y] were arbitrary, S/S/\sim is path connected.

Note: we must be careful that the range of uu does not go outside of [0,1]2[0,1]^2; that is, we must show that 0u(t)0,u(t)110 \leq u(t)_0, u(t)_1 \leq 1 for each t[0,1]t \in [0,1]. For example, notice that each component of uu has a constant derivative, so its extremal points are the minimum and maximum, which are both within the unit interval.

All this to say, we don’t care about what basepoint [s][s^*] we pick in S/S/\sim for our loops.

One question that is tempting us right now is, “Is there some nice way to relate the fundamental group of a topological space and a quotient space on it?”

It will have to wait for the next note :)