MAS61015 Algebraic Topology

14. Chain homotopy

We next need to build a connection between the concept of homotopy in topology, and the behaviour of chain complexes and homology in algebra.

Video (Definition 14.1 to Proposition 14.7)

Definition 14.1.

Let A* and A* be chain complexes, and let f,g:A*A* be chain maps (so df=fd and dg=gd). A chain homotopy between f and g is a system of maps sr:ArAr+1 such that gr-fr=dr+1Asr+sr-1drA for all r (or more briefly, g-f=ds+sd). In the case r=0, we should interpret s-1 as 0, so the condition is g0-f0=d1s0. We say that f and g are chain homotopic if there is a chain homotopy between them. If so, we write fg.

Remark 14.2.

In Section 2 we introduced a crude intuitive version of homology involving chains as subsets of a space X. For such a chain uX we can define σ(u)=[0,1]×u, which is a chain in [0,1]×X; we call this the thickening of u. If u is a filled triangle in X, then σ(u) is a triangular prism. Now σ(u) is the boundary of this triangular prism, which consists of the top, the bottom and the sides. On the other hand, σ(u) is what we get by thickening the boundary of u, which is just the sides of the prism. After adjusting the ±-signs to account for orientations, we end up with the relation


This is a relation between chains in [0,1]×X, but if we have two maps f,g:XY and a homotopy h:[0,1]×XY between them, then we can apply h* to get a relation between chains in Y. The main point of this section is to provide a rigorous and general version of this picture.

Example 14.3.

In Example 13.7 we introduced a chain complex A with

Ak={{ei|i/n} if k=1{vi|i/n} if k=00 otherwise. 

The differential is given by d(ei)=vi+1-vi and d(vi)=0. Define f:A*A* by f(ei)=ei+1 and f(vi)=vi+1. This is a chain map because d(f(ei))=vi+2-vi+1=f(d(ei)). We claim that f is chain homotopic to the identity. Indeed, we can define s0:A0A1 by s0(vi)=ei, and we define si:AiAi+1 to be zero for all i0. We then find that

(ds+sd)(ei) =d(0)+s(vi+1-vi)=ei+1-ei=f(ei)-id(ei)
(ds+sd)(vi) =d(ei)+s(0)=vi+1-vi=f(vi)-id(vi)
Proposition 14.4.

The relation of being chain homotopic is an equivalence relation.


The zero map is a chain homotopy from f to itself. If s is a chain homotopy from f to g, then -s is a chain homotopy from g to f. If t is also a chain homotopy from g to h, then s+t is a chain homotopy from f to h. ∎

Proposition 14.5.

Suppose we have chain maps

Suppose that f0 is chain homotopic to f1, and that g0 is homotopic to g1. Then g1f1 is chain homotopic to g0f0.


We are assuming that f0 is chain homotopic to f1, which means that there is a chain homotopy s with f1-f0=ds+sd. Similarly, there is a chain homotopy t with g1-g0=dt+td. Put u=g1s+tf0. Using dg1=g1d we get du=g1ds+dtf0. Using f0d=df0 we get ud=g1sd+tdf0. By adding these, we get


as required. ∎

Definition 14.6.

We write hChain(A*,A*) for the set of chain homotopy classes of chain maps from A* to A*, or in other words equivalence classes under the equivalence relation defined above. Using Proposition 14.5, we see that these are the morphism sets of a well-defined category hChain, whose objects are chain complexes. This is analogous to the category hTop introduced in Definition 9.9.

Proposition 14.7.

Let A* and A* be chain complexes, and let f,g:A*A* be chain maps that are chain homotopic. Then the induced maps f*,g*:H*(A)H*(A) are the same.


Let s be a chain homotopy from f to g, so g-f=ds+sd. Consider an element [z]Hr(A), so zAr with dz=0. Recall from Proposition 13.11 that f(z),g(z)Zr(A) so that the expressions [f(z)] and [g(z)] are meaningful and refer to elements of Hr(A). By definition we have f*[z]=[f(z)] and g*[z]=[g(z)], so we need to check that these are the same. We have g(z)-f(z)=d(s(z))+s(d(z)) but d(z)=0 so g(z)=f(z)+d(s(z))f(z)+Br(A). It follows that [g(z)]=[f(z)] in Hr(A), or in other words f*[z]=g*[z]. This means that f*=g* as claimed. ∎

Proposition 14.8.

Let X and Y be topological spaces, and let f,g:XY be continuous maps that are homotopic to each other. Then the chain maps f#,g#:C*(X)C*(Y) are chain homotopic to each other, so the induced maps f*,g*:H*(X)H*(Y) are the same.

For the proof, we will first choose a homotopy h from f to g, so h is a continuous map [0,1]×XY with h(0,x)=f(x) and h(1,x)=g(x) for all xX. We need to use this to construct a chain homotopy between f# and g#, or equivalently a system of maps σk:Ck(X)Ck+1(Y) with σ+σ=g#-f#. Before giving the general proof, we will discuss the cases k=0 and k=1.

Consider a point aS0(X)=X. We can define a continuous map v:Δ1Y by v(1-t,t)=h(t,a). This can be regarded as an element of S1(Y)C1(Y), and it satisfies


We define σ0(a)=v and extend linearly to get a homomorphism σ0:C0(X)C1(Y) with (σ0(u))=g#(u)-f#(u) for all uC0(X).

Now consider instead an element uS1(X), or in other words, a continuous map u:Δ1X. We want to define σ1(u)C2(Y), so σ1(u) should be a -linear combination of continuous maps from the triangle Δ2 to Y. We have a map m:[0,1]×Δ1Y given by m(t,s)=h(t,u(s)). Here Δ1 is homeomorphic to [0,1] so [0,1]×Δ1 is a square, with corners (0,e0), (0,e1), (1,e0) and (1,e1). We can divide this square into two triangles and restrict k to these triangles, giving two different maps Δ2Y, which will be the terms in σ1(u). In detail, we define maps ζ0,ζ1:Δ2[0,1]×Δ1 by

ζ0(t0,t1,t2) =t0(0,e0)+t1(1,e0)+t2(1,e1)
ζ1(t0,t1,t2) =t0(0,e0)+t1(0,e1)+t2(1,e1).

The composites (Δ2ζi[0,1]×Δ1𝑚Y) (for i=0,1) can be regarded as elements of S2(Y)C2(Y). We define σ1(u)=mζ0-mζ1C2(Y). This can be extended linearly to give a homomorphism σ1:C1(X)C2(Y). We claim that σ1(u)+σ0(u)=g#(u)-f#(u) for all uC1(X). Indeed, it will be enough to prove this when uS1(X). We then have


(where m(t,s)=h(t,u(s)) as before). Here, for t=(t0,t1)=(1-t1,t1)Δ1 we have

(ζ0δ0)(t) =ζ0(0,t0,t1)=t0(1,e0)+t1(1,e1)=(1,t)
(ζ0δ1)(t) =ζ0(t0,0,t1)=t0(0,e0)+t1(1,e1)=(t1,t)
(ζ0δ2)(t) =ζ0(t0,t1,0)=t0(0,e0)+t1(1,e0)=(t1,e0)
(ζ1δ0)(t) =ζ1(0,t0,t1)=t0(0,e1)+t1(1,e1)=(t1,e1)
(ζ1δ1)(t) =ζ1(t0,0,t1)=t0(0,e0)+t1(1,e1)=(t1,t)
(ζ1δ2)(t) =ζ1(t0,t1,0)=t0(0,e0)+t1(0,e1)=(0,t).

This can be displayed as follows:

It follows that

mζ0δ0(t) =h(1,u(t))=g(u(t))
mζ0δ1(t) =h(t1,u(t))=mζ1δ1(t0,t1)
mζ0δ2(t) =h(t1,u(e0))=σ0(u(e0))(t)
mζ1δ0(t) =h(t1,u(e1))=σ0(u(e1))(t)
mζ1δ2(t) =h(0,u(t))=f(u(t)).

Thus, in our formula for (σ1(u)) we see that the first and last terms give g#(u)-f#(u), the second and fifth terms cancel out, and the third and fourth terms give σ0(u(e0)-u(e1))=-σ0((u)). Putting this together, we get σ1(u)+σ0(u)=g#(u)-f#(u) as required.

We now extend the above discussion to cover k>1.

Video (Definition 14.9 to Lemma 14.12)

Definition 14.9.

For 0ik we define ζi:Δk+1[0,1]×Δk by

ζi(t0,,tk+1) =j=0itj.(0,ej)+j=i+1k+1tj.(1,ej-1)

If it is necessary to specify k, we will write ζk,i instead of ζi.

Example 14.10.

When k=2 the maps ζi:Δ3[0,1]×Δ2 are given by

ζ0(x0,x1,x2,x3) =(x1+x2+x3,(x0+x1,x2,x3))
ζ1(x0,x1,x2,x3) =(x2+x3+x4,(x0,x1+x2,x3))
ζ2(x0,x1,x2,x3) =(x3+x4,(x0,x1,x2+x3)).

We saw above that [0,1]×Δ1 is the union of the triangles ζ0(Δ2) and ζ1(Δ2), which fit together nicely along one edge. In the same way, it can be shown that [0,1]×Δ2 is the union of the images of the maps ζi:Δ3[0,1]×Δ2, and the intersection of any two of these images is another simplex of lower dimension. However, we will not need this so we omit the proof.

When k=3 we have

ζ0(x0,x1,x2,x3,x4) =(x1+x2+x3+x4,(x0+x1,x2,x3,x4))
ζ1(x0,x1,x2,x3,x4) =(x2+x3+x4,(x0,x1+x2,x3,x4))
ζ2(x0,x1,x2,x3,x4) =(x3+x4,(x0,x1,x2+x3,x4))
ζ3(x0,x1,x2,x3,x4) =(x4,(x0,x1,x2,x3+x4)).
Definition 14.11.

Given h:[0,1]×XY and u:ΔkX as before, we put


We extend this linearly to define σk:Ck(X)Ck+1(Y).

Lemma 14.12.
  • (a)

    Suppose that 0ik and 0jk+1, so we can form the composite


    If j<i then ζiδj is the same as the composite


    or in other words ζiδj=(id×δj)ζi-1.

  • (b)

    On the other hand, if ji+2 then ζiδj=(id×δj-1)ζi.

  • (c)

    For 1ik we also have ζiδi=ζi-1δi.

  • (d)

    Finally, we have ζ0δ0(x)=(1,x) and ζkδk+1(x)=(0,x).


All the maps under discussion are affine maps from Δk to [0,1]×Δk. To check that two such maps agree, it suffices to check that they have the same effect on the vertices of Δk. The map δj sends ep to ep (if p<j) or ep+1 (if pj). The map ζi sends ep to (0,ep) (if pi) or (1,ep-1) (if p>i).

  • (a)

    When j<i we find that both ζiδj and (id×δj)ζi-1 have the following effect:

    ep{(0,ep) if p<j(0,ep+1) if jp<i(1,ep) if ip.
  • (b)

    When ji+2 we find that both ζiδj and (id×δj-1)ζi have the following effect:

    ep{(0,ep) if pi(1,ep-1) if i<p<j(1,ep) if jp.
  • (c)

    When 1ik we find that both ζiδi and ζi-1δi have the following effect:

    ep{(0,ep) if p<i(1,ep) if ip.
  • (d)

    We also have ζ0δ0(ep)=ζ0(ep+1)=(1,ep) and ζkδk+1(ep)=ζk(ep)=(0,ep)

Video (Proposition 14.13 to Proposition 14.17)

Proposition 14.13.

For all uCk(X) we have


It will be enough to prove this when uSk(X)Ck(X), so u:ΔkX. We can then define m=h(id×u):[0,1]×ΔkX, so σk(u)=i=0k(-1)imζi. This gives


We can divide this sum into four parts:

  • A is the sum of the terms where j<i

  • B is the sum of the terms where i+2j

  • C is the sum of the terms where j=i with 1ik

  • D is the sum of the terms where j=i+1 with 0i<k

  • E consists of the terms with (i,j)=(0,0) or (i,j)=(k,k+1).

We thus have (σk(u))=A+B+C+D+E.

Now note that (u)=q=0k(-1)quδq, and


This gives


We let A be the sum of the terms where qp, and we let B be the sum of the terms where p<q.

Each term (-1)i+jmζiδj in A can be rewritten (using part (a) of the lemma) as (-1)i+jm(id×δj)ζi-1. This can then be written as -(-1)p+qm(id×δq)δp, where p=i-1 and q=j. Because j<i for terms in A, we see that qp, so the rewritten term is the negative of a term in A. Similarly, each term (-1)i+jmζiδj in B can be rewritten (using part (b) of the lemma) as (-1)i+jm(id×δj-1)ζi. This can then be written as -(-1)p+qm(id×δq)δp, where p=i and q=j-1. Because ji+2 for terms in B, we see that q>p, so the rewritten term is the negative of a term in B. Using this we see that A=-A and B=-B. A similar argument with part (c) of the lemma shows that D=-C. We now have

(σk(u))+σk-1((u)) =(A+B+C+D+E)+(A+B)

Also, part (d) of the lemma gives

mζ0δ0(x) =m(1,x)=h(1,u(x))=g(u(x))
mζkδk+1(x) =m(0,x)=h(0,u(x))=f(u(x)).

The first of these terms has sign (-1)0+0=+1, and the second has sign (-1)k+(k+1)=-1. We therefore have E=g#(u)-f#(u) as required. ∎

We can gain some insight into the above proof by considering a simple special case. Suppose that X=N and Y=M. Suppose that f:XY is affine, i.e. f(x)=Ax+b for some matrix A and vector b. Suppose that g:XY is also affine, and that h is just the linear homotopy h(t,x)=(1-t)f(x)+tg(x). Consider a linear 3-simplex u=a0,a1,a2,a3C3(X). As all the maps involved are affine, we see that

f*(u) =f(a0),f(a1),f(a2),f(a3)
g*(u) =g(a0),g(a1),g(a2),g(a3).

As in Example 10.17, we will use abbreviated notation, writing i for ai or f(ai), and i¯ for g(ai), so the above equations become f*(0123)=0123 and g*(0123)=0123¯. It is then not hard to check that


and similarly for the other terms in σ(u). The terms in (u), σ(u), σ(u) and σ(u) can now be laid out as follows:

Most terms cancel in the indicated groups, which correspond to the expressions A,,E in the proof of Proposition 14.13, leaving σ(u)+σ(u)=0123¯-0123=g*(u)-f*(u) as expected. Here we have just displayed the case k=3, but the pattern generalises in an obvious way to other values of k. This presentation is only directly relevant for linear simplices and affine maps. However, in the general case, most of the work involves linear simplices in the space [0,1]×Δkk+2, and then we finish up by applying the map h(id×u):[0,1]×ΔkY. Because of this, it is possible to deduce the general case from the linear case, although we will not spell out the details here.

Corollary 14.14.

If f:XY is a homotopy equivalence, then f*:H*(X)H*(Y) is an isomorphism.


Choose a map g:YX which is homotopy inverse to f, so gf is homotopic to idX and fg is homotopic to idY. As homology is a functor, the composite g*f*:H*(X)H*(X) is the same as (gf)*. As gf is homotopic to idX, Proposition 14.8 tells us that (gf)*=(idX)*. Using functoriality again, we have (idX)*=idH*(X). Putting this together, we see that g*f*=id:H*(X)H*(X), and essentially the same argument shows that f*g*=id:H*(Y)H*(Y). Thus, f* and g* are mutually inverse isomorphisms. ∎

Remark 14.15.

Another way to organise the above argument is as follows. Propositions 14.7 and 14.8 tell us that Hn can be regarded as a functor hTopAb. Any homotopy equivalence f:XY becomes an isomorphism in hTop, and Corollary 6.18 tells us that functors send isomorphisms to isomorphisms, so Hn(f) must be an isomorphism.

Proposition 14.16.

If f:XY is homotopic to a constant map, then the map f*:Hn(X)Hn(Y) is zero for all n>0.


Let g:XY be a constant map that is homotopic to f. Then f*=g* by Proposition 14.8, but g*=0 by Remark 13.14. ∎

Proposition 14.17.

Suppose that X is contractible. Then H0(X)= but Hn(X)=0 for all n0. In particular, this applies if X is a convex subset of N for some n.


Proposition 9.17 tells us that X is homotopy equivalent to a point, so it has the same homology as a point, which is given by Proposition 10.23. ∎