The snake lemma is a fundamental diagram-chase statement in the category of R R R -modules, and more generally in any abelian category
.
It relates kernels
and cokernels
(compare also cokernel of a module map
) across two exact rows (exact sequences
).
Theorem (Snake lemma) Suppose we have a commutative diagram of R R R -modules with exact rows
0 → A ′ → i A → p A ′ ′ → 0 ↓ f ′ ↓ f ↓ f ′ ′ 0 → B ′ → j B → q B ′ ′ → 0
\begin{array}{ccccccccc}
0 &\to& A' &\xrightarrow{i}& A &\xrightarrow{p}& A'' &\to& 0\\
& & \downarrow f' & & \downarrow f & & \downarrow f'' & & \\
0 &\to& B' &\xrightarrow{j}& B &\xrightarrow{q}& B'' &\to& 0
\end{array}
0 0 → → A ′ ↓ f ′ B ′ i j A ↓ f B p q A ′′ ↓ f ′′ B ′′ → → 0 0 Then there is a canonical connecting homomorphism (boundary map)
δ : ker ( f ′ ′ ) ⟶ coker ( f ′ )
\delta:\ker(f'') \longrightarrow \operatorname{coker}(f')
δ : ker ( f ′′ ) ⟶ coker ( f ′ ) such that the following sequence is exact:
0 → ker ( f ′ ) → ker ( f ) → ker ( f ′ ′ ) → δ coker ( f ′ ) → coker ( f ) → coker ( f ′ ′ ) → 0.
0 \to \ker(f') \to \ker(f) \to \ker(f'') \xrightarrow{\ \delta\ } \operatorname{coker}(f') \to \operatorname{coker}(f) \to \operatorname{coker}(f'') \to 0.
0 → ker ( f ′ ) → ker ( f ) → ker ( f ′′ ) δ coker ( f ′ ) → coker ( f ) → coker ( f ′′ ) → 0. This δ \delta δ is natural in the diagram, and is the prototype for the connecting homomorphism
appearing in long exact sequences.
Construction of δ \delta δ (explicit) Given x ∈ ker ( f ′ ′ ) ⊆ A ′ ′ x\in \ker(f'')\subseteq A'' x ∈ ker ( f ′′ ) ⊆ A ′′ :
pick a ∈ A a\in A a ∈ A with p ( a ) = x p(a)=x p ( a ) = x ; since f ′ ′ ( x ) = 0 f''(x)=0 f ′′ ( x ) = 0 , commutativity implies q ( f ( a ) ) = 0 q(f(a))=0 q ( f ( a )) = 0 , hence f ( a ) ∈ im ( j ) f(a)\in \operatorname{im}(j) f ( a ) ∈ im ( j ) ; choose b ′ ∈ B ′ b'\in B' b ′ ∈ B ′ with j ( b ′ ) = f ( a ) j(b')=f(a) j ( b ′ ) = f ( a ) ; define δ ( x ) \delta(x) δ ( x ) to be the class of b ′ b' b ′ in coker ( f ′ ) = B ′ / im ( f ′ ) \operatorname{coker}(f')=B'/\operatorname{im}(f') coker ( f ′ ) = B ′ / im ( f ′ ) . A standard diagram chase shows this is well-defined (independent of choices) and gives exactness.
Examples Induced map on quotients: the “kernel–cokernel” exact sequence. Let g : M → M ′ g:M\to M' g : M → M ′ be an R R R -linear map, and let N ⊆ M N\subseteq M N ⊆ M , N ′ ⊆ M ′ N'\subseteq M' N ′ ⊆ M ′ satisfy g ( N ) ⊆ N ′ g(N)\subseteq N' g ( N ) ⊆ N ′ . Consider the commutative diagram with exact rows:
0 → N → M → M / N → 0 ↓ g ∣ N ↓ g ↓ g ‾ 0 → N ′ → M ′ → M ′ / N ′ → 0
\begin{array}{ccccccccc}
0 &\to& N &\to& M &\to& M/N &\to& 0\\
& & \downarrow g|_N & & \downarrow g & & \downarrow \overline g & & \\
0 &\to& N' &\to& M' &\to& M'/N' &\to& 0
\end{array}
0 0 → → N ↓ g ∣ N N ′ → → M ↓ g M ′ → → M / N ↓ g M ′ / N ′ → → 0 0 The snake lemma produces the exact sequence
0 → ker ( g ∣ N ) → ker ( g ) → ker ( g ‾ ) → δ coker ( g ∣ N ) → coker ( g ) → coker ( g ‾ ) → 0 ,
0\to \ker(g|_N)\to \ker(g)\to \ker(\overline g)\xrightarrow{\delta}
\operatorname{coker}(g|_N)\to \operatorname{coker}(g)\to \operatorname{coker}(\overline g)\to 0,
0 → ker ( g ∣ N ) → ker ( g ) → ker ( g ) δ coker ( g ∣ N ) → coker ( g ) → coker ( g ) → 0 , which cleanly measures how kernels/cokernels change when passing to quotients.
Boundary map in homology from a short exact sequence of complexes. Given a degreewise short exact sequence of chain complexes
0 → C ∙ ′ → C ∙ → C ∙ ′ ′ → 0 ,
0\to C'_\bullet \to C_\bullet \to C''_\bullet \to 0,
0 → C ∙ ′ → C ∙ → C ∙ ′′ → 0 , one applies the snake lemma to the diagram of cycles and boundaries in each degree to construct the connecting map
∂ : H n ( C ∙ ′ ′ ) ⟶ H n − 1 ( C ∙ ′ ) ,
\partial: H_n(C''_\bullet)\longrightarrow H_{n-1}(C'_\bullet),
∂ : H n ( C ∙ ′′ ) ⟶ H n − 1 ( C ∙ ′ ) , yielding the usual long exact sequence in homology
. (This is the chain-complex analogue of long exact sequences from derived functors
.)
Computing a boundary map concretely (multiplication on a quotient). Fix integers m , n m,n m , n and consider the diagram
0 → Z → ⋅ m Z → Z / m → 0 ↓ ⋅ n ↓ ⋅ n ↓ ⋅ n 0 → Z → ⋅ m Z → Z / m → 0
\begin{array}{ccccccccc}
0&\to& \mathbb Z &\xrightarrow{\cdot m}& \mathbb Z &\to& \mathbb Z/m &\to& 0\\
&& \downarrow \cdot n && \downarrow \cdot n && \downarrow \cdot n &&\\
0&\to& \mathbb Z &\xrightarrow{\cdot m}& \mathbb Z &\to& \mathbb Z/m &\to& 0
\end{array}
0 0 → → Z ↓ ⋅ n Z ⋅ m ⋅ m Z ↓ ⋅ n Z → → Z / m ↓ ⋅ n Z / m → → 0 0 The connecting map δ : ker ( ⋅ n : Z / m → Z / m ) → coker ( ⋅ n : Z → Z ) ≅ Z / n \delta:\ker(\cdot n:\mathbb Z/m\to \mathbb Z/m)\to \operatorname{coker}(\cdot n:\mathbb Z\to \mathbb Z)\cong \mathbb Z/n δ : ker ( ⋅ n : Z / m → Z / m ) → coker ( ⋅ n : Z → Z ) ≅ Z / n
sends a class x ‾ ∈ Z / m \overline{x}\in\mathbb Z/m x ∈ Z / m with n x ∈ m Z nx\in m\mathbb Z n x ∈ m Z to the class of n x m \frac{nx}{m} m n x in Z / n \mathbb Z/n Z / n . This is a concrete instance of how δ \delta δ encodes the failure of lifting across the diagram.