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

Complexes and Homology: Measuring the Failure of Exactness

A chain complex is a sequence of maps composing to zero. Homology measures the gap between where things die and where they're born. This is the one idea the whole subject is built on.

d squared equals zero

A chain complex of modules over a ring R is a sequence of maps that compose to nothing. Write it as ... → C_2 → C_1 → C_0 → 0 with boundary maps d_n: C_n → C_{n-1}, subject to the single sacred law d_{n-1} ∘ d_n = 0. That one condition says the image of each map lands inside the kernel of the next: im d_{n+1} ⊆ ker d_n. The whole subject grows out of asking how much smaller the image is than the kernel.

Elements of ker d_n are called cycles (written Z_n) — things that get sent to zero. Elements of im d_{n+1} are called boundaries (written B_n) — things that come from one dimension up. Because d² = 0, every boundary is a cycle: B_n ⊆ Z_n. The n-th homology is the quotient that forgets the boundaries:

H_n(C) = ker d_n / im d_{n+1} = Z_n / B_n

Intuition:
  cycles    = things that COULD be boundaries
  boundaries= things that ALREADY are boundaries
  homology  = cycles that are NOT boundaries  (the leftover)

If H_n = 0 for all n, the complex is EXACT: image = kernel everywhere.
Homology is precisely the obstruction to exactness.
Homology = cycles modulo boundaries. Zero homology means perfect exactness.

A complex you can compute by hand

Let R = ℤ. Consider the two-term complex 0 → ℤ →(×2) ℤ → 0, with the only nontrivial map being multiplication by 2, placed in degrees 1 and 0. Check d² = 0 trivially (there is nothing to compose into). Now compute. In degree 1, ker(×2) = 0, and there is no incoming map, so H_1 = 0. In degree 0, the cycles are all of ℤ (the outgoing map is zero), and the boundaries are im(×2) = 2ℤ. So H_0 = ℤ / 2ℤ.

Complex:        0 -> Z --(x2)--> Z -> 0   (degrees 1, 0)

Degree 1:  Z_1 = ker(x2) = 0
           B_1 = im(of map into degree 1) = 0
           H_1 = 0/0 = 0

Degree 0:  Z_0 = ker(0 map out) = Z
           B_0 = im(x2) = 2Z
           H_0 = Z / 2Z  =  Z/2Z

Reading: the map x2 is injective (H_1=0) but NOT surjective;
H_0 = Z/2Z is exactly the cokernel, the 'how-far-from-onto' group.
H_1 sees injectivity failing; H_0 is the cokernel and sees surjectivity failing.

Maps of complexes and quasi-isomorphism

A chain map f: C → D is a family of maps f_n: C_n → D_n that commute with the boundaries: f_{n-1} ∘ d_n = d_n ∘ f_n. Commuting with d means f sends cycles to cycles and boundaries to boundaries, so it descends to a homomorphism on homology, H_n(f): H_n(C) → H_n(D). This is the sense in which homology is a functor — a topic we develop in the categorical track.

A chain map is a quasi-isomorphism when every H_n(f) is an isomorphism — the complexes have the same homology even if they look nothing alike. This is the right notion of sameness in homological algebra: we care about homology, not the complexes themselves. Two wildly different resolutions of the same module will be quasi-isomorphic, and that is exactly why the invariants we extract are well defined.