§ Construction of tensor product: Atiyah macdonald

I've only seen two ways of seeing the tensor product: (1) for vector spaces, where one uses a basis, and (2) the universal property, that describes the point of the tensor product. This is the first hands-on-but-not-basis construction of the tensor product I've seen, and so I record it here. Let RR be the base ring. We are tensoring the modules MM and NN.
  • Create the free RR module FRM×NF \equiv R^{M \times N} whose elements are free linear combinations of tuples from MM and NN.
  • Let KK (for kill) be the submodule generated by the equations: (1) (x+x,y)(x,y)(x,y)(x + x', y) - (x, y) - (x', y), (2) (x,y+y)(x,y)(x,y)(x, y + y') - (x, y) - (x, y'), (3) (rx,y)r(x,y)(rx, y) - r \cdot (x, y)(4) (x,ry)r(x,y)(x, ry) - r \cdot (x, y)
  • Let TF/KT \equiv F/K. Denote the element of each (x,y)F(x, y) \in F in the quotient F/KF/K as xyx \otimes y. Then TT is generated by such elements.
  • From our quotients, we have the equation (ax)y=a(xy)=x(ay)(ax) \otimes y = a (x \otimes y) = x \otimes (ay), and (x+x)y=xy+xy(x + x') \otimes y = x \otimes y + x' \otimes y, and finally x(y+y)=xy+xyx \otimes (y + y') = x \otimes y + x \otimes y'.
Any RR-module map map f:M×NOf: M \times N \rightarrow O where OO is an RR-module extends by linearity into fF:FOf_F: F \rightarrow O as fF(iri(x,y))rif(x,y)f_F(\sum_i r_i (x, y)) \equiv r_i f(x, y). We also have a map /:FT-/\sim : F \rightarrow T
 F=R^{MxN} →fF→ MxN →f→ O
 ↓               ↑
 F/~             fT
 ↓               ↑
 T=M(x)N →→fT→→→→*
For this diagram to commute, we need the fibers of (ffF):RMxNO(f \circ f_F): R^{MxN} \rightarrow O to take constant values for each oOo \in O. Unwrapping that condition implies that ff is bilinear. So, the condition fT(xy)=f(x,y)f_T(x \otimes y) = f(x, y) uniquely determines fT(xy)f_T(x \otimes y) if f(x,y)f(x, y) is bilinear. If not, the map fTf_T is ill-defined, as we cannot "kan extend" fFf_F along fTf_T.