In mathematics, specifically in algebraic topology, the **cup product** is a method of adjoining two cocycles of degree *p* and *q* to form a composite cocycle of degree *p* + *q*. This defines an associative (and distributive) graded commutative product operation in cohomology, turning the cohomology of a space *X* into a graded ring, *H*^{∗}(*X*), called the cohomology ring. The cup product was introduced in work of J. W. Alexander, Eduard Čech and Hassler Whitney from 1935–1938, and, in full generality, by Samuel Eilenberg in 1944.

In singular cohomology, the **cup product** is a construction giving a product on the graded cohomology ring *H*^{∗}(*X*) of a topological space *X*.

The construction starts with a product of cochains: if is a *p*-cochain and
is a *q*-cochain, then

where σ is a singular (*p* + *q*) -simplex and
is the canonical embedding of the simplex spanned by S into the -simplex whose vertices are indexed by .

Informally, is the *p*-th **front face** and is the *q*-th **back face** of σ, respectively.

The coboundary of the cup product of cochains and is given by

The cup product of two cocycles is again a cocycle, and the product of a coboundary with a cocycle (in either order) is a coboundary. The cup product operation induces a bilinear operation on cohomology,

The cup product operation in cohomology satisfies the identity

so that the corresponding multiplication is graded-commutative.

The cup product is functorial, in the following sense: if

is a continuous function, and

is the induced homomorphism in cohomology, then

for all classes α, β in *H* ^{*}(*Y*). In other words, *f* ^{*} is a (graded) ring homomorphism.

It is possible to view the cup product as induced from the following composition:

in terms of the chain complexes of and , where the first map is the Künneth map and the second is the map induced by the diagonal .

This composition passes to the quotient to give a well-defined map in terms of cohomology, this is the cup product. This approach explains the existence of a cup product for cohomology but not for homology: induces a map but would also induce a map , which goes the wrong way round to allow us to define a product. This is however of use in defining the cap product.

Bilinearity follows from this presentation of cup product, i.e. and

Cup products may be used to distinguish manifolds from wedges of spaces with identical cohomology groups. The space has the same cohomology groups as the torus *T*, but with a different cup product. In the case of *X* the multiplication of the cochains associated to the copies of is degenerate, whereas in *T* multiplication in the first cohomology group can be used to decompose the torus as a 2-cell diagram, thus having product equal to **Z** (more generally *M* where this is the base module).

In de Rham cohomology, the cup product of differential forms is induced by the wedge product. In other words, the wedge product of two closed differential forms belongs to the de Rham class of the cup product of the two original de Rham classes.

For oriented manifolds, there is a geometric heuristic that "the cup product is dual to intersections."^{[1]}^{[2]}

Indeed, let be an oriented smooth manifold of dimension . If two submanifolds of codimension and intersect transversely, then their intersection is again a submanifold of codimension . By taking the images of the fundamental homology classes of these manifolds under inclusion, one can obtain a bilinear product on homology. This product is Poincaré dual to the cup product, in the sense that taking the Poincaré pairings then there is the following equality :

.^{[1]}

Similarly, the linking number can be defined in terms of intersections, shifting dimensions by 1, or alternatively in terms of a non-vanishing cup product on the complement of a link.

Main article: Massey product |

The cup product is a binary (2-ary) operation; one can define a ternary (3-ary) and higher order operation called the Massey product, which generalizes the cup product. This is a higher order cohomology operation, which is only partly defined (only defined for some triples).