JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

Derived Functors: Ext and Tor, Computed

Hom and ⊗ break exactness; derived functors repair the damage and record it. We define Ext and Tor via resolutions and compute them by hand for ℤ/6, ℤ/m, and see exactly what each one measures.

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.

  1. Take the module M, build a projective resolution P_• → M, and throw away M, keeping the complex P_•.
  2. Apply your functor F (say Hom(–, N) or – ⊗ N) to every term, getting a new complex F(P_•).
  3. 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.
Tor_1(ℤ/m, ℤ/n) = ℤ/gcd(m,n) and Ext^1(ℤ/m, ℤ/n) = ℤ/gcd(m,n). Same resolution, two functors, two invariants.

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.