# Module ** Module -- tensor product

## Synopsis

• Operator: **
• Usage:
M ** N
• Inputs:
• M,
• N,
• Outputs:
• , the tensor product of M and N

## Description

If M has generators m1, m2, ..., mr, and N has generators n1, n2, ..., ns, then M ** N has generators: m1**n1, m1**n2, ..., m2**n1, ..., mr**ns.
 i1 : R = ZZ[a..d]; i2 : M = image matrix {{a,b}} o2 = image | a b | 1 o2 : R-module, submodule of R i3 : N = image matrix {{c,d}} o3 = image | c d | 1 o3 : R-module, submodule of R i4 : M ** N o4 = cokernel {2} | -d 0 -b 0 | {2} | c 0 0 -b | {2} | 0 -d a 0 | {2} | 0 c 0 a | 4 o4 : R-module, quotient of R i5 : N ** M o5 = cokernel {2} | -b 0 -d 0 | {2} | a 0 0 -d | {2} | 0 -b c 0 | {2} | 0 a 0 c | 4 o5 : R-module, quotient of R

Use trim or minimalPresentation if a more compact presentation is desired.

Use flip(Module,Module) to produce the isomorphism M ** N --> N ** M.

To recover the factors from the tensor product, use the function formation.