Why we even need derived functors
Apply Hom(–, N) to a short exact sequence 0 → A → B → C → 0 and you get only 0 → Hom(C,N) → Hom(B,N) → Hom(A,N), which need not be surjective on the right: Hom(–, N) is left exact but not right exact. The tensor tensor product – ⊗ N is right exact but not left exact. Each loses information, and a derived functor is precisely the machine that records what was lost.
- Take the module M, build a projective resolution P_• → M, and throw away M, keeping the complex P_•.
- Apply your functor F (say Hom(–, N) or – ⊗ N) to every term, getting a new complex F(P_•).
- Take homology (or cohomology). The n-th homology group is the n-th left derived functor; for Hom you get Ext^n, for ⊗ you get Tor_n.
Computing Tor and Ext for ℤ/6
We already have the resolution P_•: 0 → ℤ →(×6) ℤ → 0 of M = ℤ/6. Let N = ℤ/4. Apply – ⊗ ℤ/4 to P_• and take homology to get Tor; the map ×6 becomes ×6 on ℤ/4, which is ×2 mod 4.
Resolve M = Z/6: 0 -> Z --x6--> Z -> 0
Tensor with N = Z/4 (Z (x) Z/4 = Z/4), map x6 becomes x6 = x2 on Z/4:
complex: 0 -> Z/4 --x2--> Z/4 -> 0 (degrees 1, 0)
Tor_1(Z/6, Z/4) = ker(x2 on Z/4) = {0,2} = Z/2
Tor_0(Z/6, Z/4) = coker(x2) = (Z/4)/(2Z/4) = Z/2 (= Z/6 (x) Z/4)
Tor_n = 0 for n >= 2 (resolution has length 1)
Check: gcd(6,4)=2, and Tor_1(Z/m, Z/n) = Z/gcd(m,n), here Z/2. Good.
Tor_1 detects COMMON TORSION -- it is the obstruction to flatness.
Now Hom(-, Z/4) applied to 0 -> Z --x6--> Z -> 0 (Hom(Z,Z/4)=Z/4),
x6 dualizes to x6 = x2 on Z/4 (Hom is contravariant, same map here):
cocomplex: 0 -> Z/4 --x2--> Z/4 -> 0 (degrees 0, 1)
Ext^0(Z/6, Z/4) = ker(x2) = Z/2 (= Hom(Z/6, Z/4))
Ext^1(Z/6, Z/4) = coker(x2)= Z/2
Ext^n = 0 for n >= 2.What each invariant means
Tor measures the failure of flatness: N is flat exactly when Tor_1(–, N) vanishes identically, and over a PID flat = torsion-free. Our Tor_1(ℤ/6, ℤ/4) = ℤ/2 is the shared torsion at the prime 2. Ext^1(C, A) has a second life: it classifies extensions 0 → A → E → C → 0 up to equivalence, with the split one as the zero element. Ext^1(ℤ/6, ℤ/4) = ℤ/2 means there are exactly two extension classes — the split ℤ/4 ⊕ ℤ/6 and one non-split partner.