The returned value is the usual codimension if R is an integral domain, or all
components have the same dimension.
i1 : R = ZZ/101[a..d];
i2 : M = coker matrix{{a,b},{c,d}}
o2 = cokernel | a b |
| c d |
2
o2 : R-module, quotient of R
i3 : codim M
o3 = 1
Caveat:
If R is ZZ, then the computation effectively tensors first with the
rational numbers, yielding the wrong answers in some cases.R must be a quotient of a commutative polynomial ring.