Homological Algebra

cohomology

Cohomology is homology read backwards. Where homology measures holes by asking which cycles are not boundaries in a chain complex, cohomology asks the same question of a cochain complex, where the maps raise degree instead of lowering it. The change of direction is not cosmetic: cohomology classes are often functions or measurements on a space, and they multiply, giving cohomology a ring structure that homology lacks.

For a cochain complex (C, d) with d^n : C^n -> C^{n+1}, the n-th cohomology is H^n(C) = ker(d^n) / im(d^{n-1}). An element of ker(d^n) is a cocycle, an element of im(d^{n-1}) is a coboundary, and a cohomology class is a cocycle modulo coboundaries. As with homology, H^n(C) = 0 exactly when the complex is exact at C^n.

Because Hom(-, M) is contravariant, applying it to a chain complex of free or projective modules produces a cochain complex whose cohomology is, by definition, cohomology with coefficients in M. The relationship between H_n and H^n is governed by the universal coefficient theorem, which over a field gives H^n ≅ Hom(H_n, M) but over Z introduces a correction term involving Ext. Cohomology theories — group, Galois, de Rham, sheaf — are all instances of this single construction applied to suitable cochain complexes.

Over a field every module is free, so the Ext correction vanishes and cohomology is simply the dual of homology. Over Z or a general ring the two can differ, and the cup product gives cohomology a graded-ring structure with no homological counterpart.