MAS61015 Algebraic Topology

17. The Snake Lemma

We now return to the task of constructing the Mayer-Vietoris sequence. There are two key ingredients: the Snake Lemma (in this section) and subdivision (in the next section). The videos cover this material in a slightly different order than the notes: the first video is attached to Definition 17.3 below.

The basic input for the Snake Lemma is as follows: we have chain complexes U*, V* and W* and chain maps


which form a short exact sequence. One might hope that the resulting sequence


would also be a short exact sequence, but that is not quite right. We will show that the above sequence is exact (in the sense that img(i*)=ker(p*)), but i* need not be injective, and p* need not be surjective. In other words, ker(i*) need not be zero, and img(p*) need not be all of H*(W). We can still obtain a great deal of information about ker(i*) and img(p*), but that will require some preparation. For the moment we will just prove the easier statement mentioned above.

Proposition 17.1.

Let U*𝑖V*𝑝W* be a short exact sequence of chain maps between chain complexes. Then in the resulting sequence H*(U)i*H*(V)p*H*(W) we have img(i*)=ker(p*).


First, as the sequence U*𝑖V*𝑝W* is exact we have pi=0. It follows that p*i*=(pi)*=0*=0, so img(i*)ker(p*).

Conversely, suppose we are given an element bker(p*); must show that it lies in img(i*). If bHr(V) then we have b=[v] for some vVr with d(v)=0. We are assuming that p*b=0, which means that [p(v)] is zero in the quotient group Zr(W)/Br(W), which means that p(v)Br(W), which means that p(v)=d(w) for some wWr+1. Also, we are assuming that the sequence U*𝑖V*𝑝W* is short exact, which means in particular that p is surjective. We can therefore choose vVr+1 with p(v)=w. We now have


so v-d(v)ker(p). We also have ker(p)=img(i) by our exactness assumption, so we can find uUr with i(u)=v-d(v). From our initial assumptions we have d(v)=0, and also d2=0 so d(d(v))=0, so d(i(u))=0. As i is a chain map this gives i(d(u))=0, and i is injective so d(u)=0. This means we have an element a=[u]Hr(U). This satisfies i*(a)=[i(u)]=[v-d(v)] but d(v)Br(V) so [v-d(v)] is the same as [v], which is b. We conclude that i*(a)=b, so bimg(i*) as claimed.

We can display the relevant groups and elements as follows:

The two dotted arrows are supposed to indicate the relation d(v)+i(u)=v. ∎

Theorem 17.2.

For U*𝑖V*𝑝W* as above, there is a natural map δ:Hn(W)Hn-1(U) such that the sequence

is exact for all n.

The proof will be broken into a number of steps. The map δ will be defined in Definition 17.6, and Propositions 17.1, 17.10 and 17.11 will show that the resulting long sequence is exact.

Definition 17.3.

A snake for the above sequence is a system (c,w,v,u,a) such that

  • cHn(W);

  • wZn(W) is a cycle such that c=[w];

  • vVn is an element with p(v)=w;

  • uZn-1(U) is a cycle with i(u)=d(v)Vn-1;

  • a=[u]Hn-1(U).

More specifically, we say that a system (c,w,v,u,a) as above is a snake from c to a.

Video (Lemma 17.4 to Remark 17.8)

Lemma 17.4.

For any cHn(W), there is a snake starting with c.


Consider an element cHn(W). As Hn(W)=Zn(W)/Bn(W) by definition, we can certainly choose wZn(W) such that c=[w]. As the sequence U*𝑖V*𝑝W* is short exact, we know that p:VnWn is surjective, so we can choose vVn with p(v)=w. As p is a chain map we have p(d(v))=d(p(v))=d(w)=0 (the last equation because wZn(W)). This means that d(v)ker(p), but ker(p)=img(i) because the sequence is exact, so we have uUn-1 with i(u)=d(v). Note also that i(d(u))=d(i(u))=d(d(v))=0 (because i is a chain map and d2=0). On the other hand, exactness means that i is injective, so the relation i(d(u))=0 implies that d(u)=0. This shows that uZn-1(U), so we can put a=[u]Hn-1(U). We now have a snake (c,w,v,u,a) starting with c as required. ∎

Lemma 17.5.

Suppose we have two snakes that have the same starting point; then they also have the same endpoint.


Suppose we have two snakes that start with c. We can then subtract them to get a snake (0,w,v,u,a) starting with 0. It will be enough to show that this ends with 0 as well, or equivalently that a=0. The first snake condition says that [w]=0, which means that w=d(w) for some wWn+1. Because p is surjective we can also choose vVn+1 with w=p(v) , and this gives w=d(w)=d(p(v))=p(d(v)). The next snake condition says that p(v)=w. We can combine these facts to see that p(v-d(v))=0, so v-d(v)ker(p)=img(i). We can therefore find uUn with v-d(v)=i(u). We can apply d to this using d2=0 and di=id to get d(v)=i(d(u)). On the other hand, the third snake condition tells us that d(v)=i(u). Subtracting these gives i(u-d(u))=0, but i is injective, so u=d(u), so uBn-1(U). The final snake condition now says that a=[u]=u+Bn-1(U), but uBn-1(U) so a=[u]=0. ∎

Definition 17.6.

For any cHn(W), we define δ(c)Hn-1(U) to be the endpoint of any snake that starts with c. (This is well-defined by the last two lemmas.)

Remark 17.7.

It is easy to see that the sum of two snakes is a snake, and from that we can deduce that δ is a homomorphism.

Remark 17.8.

The slogan behind the definition is that δ=i-1dp-1. In more detail, suppose we have cHn(W). To calculate δ(c), we must find a snake of the form (c,w,v,u,a), then δ(c)=a. The slogan glosses over the distinction between w and c=[w], and the distinction between u and a=[u]. The condition p(v)=w means that v is a choice of p-1w, and the condition i(u)=d(v) means that u is essentially i-1(d(v))=i-1(d(p-1(w))). The point of the above definitions and lemmas is to make this slogan precise.

Remark 17.9.

The Snake Lemma (in a slightly different incarnation) is probably the most advanced piece of mathematics ever to appear in a mainstream movie:

Video (Proposition 17.1, 17.10 and 17.11)

Proposition 17.10.

The sequence Hn(V)p*Hn(W)𝛿Hn-1(U) is exact (or equivalently, img(p*)=ker(δ)).


First, suppose that bHn(V), so b=[v] for some vVn with d(v)=0. We find that (p*(b),p(v),v,0,0) is a snake starting with p*(b), so δ(p*(b))=0. From this we get δp*=0 and img(p*)ker(δ).

Conversely, consider an element cker(δ)Hn(W). As cker(δ), there must exists a snake of the form (c,w,v,u,0). The last snake condition says that [u]=0, so we must have u=d(u) for some uUn. Another snake condition says that d(v)=i(u)=i(d(u))=d(i(u)), so we have d(v-i(u))=0. This means that v-i(u) is a cycle, so we have a homology class b=[v-i(u)]Hn(V). This satisfies p*(b)=[p(v-i(u))], but pi=0 and p(v)=w so this simplifies to p*(b)=[w]=c, so cimg(p*). ∎

Proposition 17.11.

The sequence Hn(W)𝛿Hn-1(U)i*Hn-1(V) is exact (or equivalently, img(δ)=ker(i*)).


First suppose we have an element cHn(W). Choose a snake (c,w,v,u,a) starting with c, so δ(c)=a=[u]. We then have i*δ(c)=i*[u]=[i(u)], but one of the snake conditions says that i(u)=d(v)Bn-1(V), so [i(u)]=0, so i*δ(c)=0. This proves that i*δ=0 and so img(δ)ker(i*).

Conversely, suppose that aker(i*). We can choose uZn-1(U) such that a=[u]. Now [i(u)]=i*(a)=0, so i(u)Bn-1(V), so there exists vVn with d(v)=i(u). Put w=p(v)Wn. We then have d(w)=d(p(v))=p(d(v))=p(i(u)), and this is zero because pi=0. This means that wZn(W), so we can define c=[w]Hn(W). We now see that (c,w,v,u,a) is a snake, so a=δ(c), so aimg(δ). ∎