What a resolution is for
Modules are complicated; free modules and projective modules are simple, because maps out of them are easy to control. A projective resolution of a module M is an exact sequence ... → P_2 → P_1 → P_0 → M → 0 with every P_i projective. Reading it as a complex P_• (drop the M) that maps onto M, it is a quasi-isomorphism: P_• has the homology of M concentrated in degree 0, and nothing elsewhere. We have replaced M by a complex of nice pieces.
Building one by hand
Take R = ℤ and M = ℤ/6ℤ. Surject a free module onto it: ℤ → ℤ/6ℤ sending 1 ↦ 1. The kernel is 6ℤ, itself free of rank one. So one more free module covers the kernel and we are done — over a PID every submodule of a free module is free, so resolutions stop after two steps.
Resolve M = Z/6Z over Z:
0 -> Z --(x6)--> Z --pi--> Z/6Z -> 0
P_1 P_0
Check exactness:
- pi onto: yes, pi(1) generates Z/6Z.
- ker pi = 6Z: pi(n)=0 iff 6 | n.
- x6 image = 6Z: matches ker pi exactly -> exact at P_0.
- x6 injective: 6n=0 => n=0 -> exact at P_1.
So a projective (= free) resolution is
P_*: ... 0 -> Z --x6--> Z -> 0 (degrees 1, 0)
with H_0(P_*) = Z/6Z and H_n = 0 for n>0. Length 1: 'projective
dimension' of Z/6Z over Z is 1, the hallmark of a PID (gl.dim <= 1).Why the choice doesn't matter
You could resolve ℤ/6 differently — pad it, use bigger free modules — and get a different complex. The comparison theorem rescues us: any two projective resolutions of the same module are chain homotopy equivalent, hence quasi-isomorphic. The proof is a single clever lifting, using projectivity to fill in maps step by step against an exact target.
- Given P_• → M and Q_• → M, lift the identity on M to a chain map P_• → Q_•, building f_n one degree at a time by projectivity of P_n.
- Lift the identity the other way to get g_•: Q_• → P_•, again using projectivity of each Q_n.
- Show g ∘ f and the identity both lift the identity on M, so by the uniqueness-up-to-homotopy part of the same lemma they are chain homotopic; likewise f ∘ g. Hence a homotopy equivalence.
Because applying a functor and then taking homology is unchanged by chain homotopy, every invariant we build from a resolution — Ext, Tor, derived functors — comes out independent of the resolution chosen. That independence is the license to compute with whatever resolution is most convenient.