i1 : Q = ZZ/101[x,y] o1 = Q o1 : PolynomialRing |
i2 : R = Q/(x^2,y^2) o2 = R o2 : QuotientRing |
i3 : M = coker random(R^5, R^8 ** R^{-1})
o3 = cokernel | 24x-36y -29x-24y -18x-13y 45x-34y 39x+43y 40x+11y 2x+29y 27x-22y |
| -30x-29y -38x-16y -43x-15y -48x-47y -17x-11y 46x-28y -47x+15y 32x-9y |
| 19x+19y 39x+21y -28x-47y 47x+19y 48x+36y x-3y -37x-13y -32x-20y |
| -10x-29y 34x+19y 38x+2y -16x+7y 35x+11y 22x-47y -10x+30y 24x-30y |
| -8x-22y -47x-39y 16x+22y 15x-23y -38x+33y -23x-7y -18x+39y -48x-15y |
5
o3 : R-module, quotient of R
|
i4 : (N,f) = decomposeModule M
o4 = (cokernel | y x 0 0 0 0 0 0 |, | -25 -49 -25 15 1 |)
| 0 0 x 0 y 0 0 0 | | 28 -45 29 30 -39 |
| 0 0 0 y x 0 0 0 | | -16 43 -43 -47 -24 |
| 0 0 0 0 0 x 0 y | | -14 -37 25 -19 26 |
| 0 0 0 0 0 0 y x | | 1 0 0 0 0 |
o4 : Sequence
|
i5 : components N
o5 = {cokernel | y x |, cokernel | x 0 y |, cokernel | x 0 y |}
| 0 y x | | 0 y x |
o5 : List
|
i6 : ker f == 0 o6 = true |
i7 : coker f == 0 o7 = true |
The object decomposeModule is a method function.