bilinear map
Imagine a machine with two input slots that turns two ingredients into one output. A bilinear map is such a machine that, if you hold one slot fixed and wiggle the other, responds in a straight-line (linear) way — and the same is true if you swap which slot you hold fixed. It is linear in each argument separately, but the two together can behave nonlinearly: doubling both inputs typically quadruples the output, not doubles it.
Precisely, let M, N, P be modules over a commutative ring R (vector spaces if R is a field). A map B: M × N -> P is bilinear if for all m, m' in M, n, n' in N and r in R it satisfies B(m + m', n) = B(m, n) + B(m', n), B(m, n + n') = B(m, n) + B(m, n'), and B(r·m, n) = r·B(m, n) = B(m, r·n). Equivalently, fixing either coordinate yields an R-linear map in the other.
Bilinear maps are the central objects this whole subject organizes. They are not linear maps on the product M × N (that product carries no scaling that mixes the slots correctly), so they resist the usual linear-algebra toolkit. The remedy is to build a new space, the tensor product, through which every bilinear map factors as an ordinary linear map — that is the entire point of the construction below.
The dot product B(u, v) = u·v on R^n is bilinear: B(2u, v) = 2 B(u, v) and B(u, v + w) = B(u, v) + B(u, w). So is the cross product on R^3, and ordinary multiplication R × R -> R given by B(a, b) = ab.
Dot, cross, and ordinary multiplication are the prototypical bilinear maps.
Beware: a bilinear map is generally NOT additive as a function on the product, since B((m, n) + (m', n')) = B(m + m', n + n') expands by bilinearity into four terms, not two. This failure of additivity is exactly why the tensor product is needed rather than the direct sum.