The cohomology modules of a topological space were not recognized until quite late in the development of algebraic topology (1930), when Lefschetz formulated a simplified treatment of the duality theorems for manifolds. Cohomology is dual to homology in two senses: (1) There is a bilinear pairing of chains and cochains; (2) Hq is a contrafunctor, i.e., a map X → Y induces a homomorphism Hq (Y) → Hq (X) in the opposite direction.