Homological Algebra

homology

Homology answers a simple-sounding question about a chain complex: which cycles fail to be boundaries? A cycle is something that “closes up” (the next map sends it to zero); a boundary is something that already came from the previous stage. If every cycle were a boundary the complex would be exact and uninteresting. Homology collects the leftover cycles — the genuine holes — into a sequence of modules that is invariant under reasonable changes.

Given a chain complex (C, d), the n-th homology module is the quotient H_n(C) = ker(d_n) / im(d_{n+1}). This is well defined precisely because d^2 = 0 guarantees im(d_{n+1}) is a submodule of ker(d_n). An element of H_n is a homology class, written [z] for a cycle z; two cycles are homologous if they differ by a boundary. The complex is exact at C_n if and only if H_n(C) = 0.

Homology is functorial: a chain map f : C -> D induces homomorphisms H_n(f) : H_n(C) -> H_n(D), and chain-homotopic maps induce the same map on homology. This invariance is what makes homology computable — one replaces a complicated complex by a homotopy-equivalent simpler one without changing the answer. In topology H_n detects n-dimensional holes; in algebra the same machine measures the failure of exactness of any complex one cares to write down.

For the complex Z -> Z with map multiplication by 2, placed in degrees 1 and 0, we get H_0 = Z/2Z (cokernel) and H_1 = 0 (the map is injective). So this complex has a single nontrivial homology group, Z/2Z, in degree 0.

Homology of a two-term complex picks out the cokernel and kernel.