next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
Kronecker :: decomposeModule

decomposeModule -- decompose a module into a direct sum of simple modules

Synopsis

Description

This function decomposes a module into a direct sum of simple modules, given some fairly strong assumptions on the ring which acts on the ring which acts on the module. This ring must only have two variables, and the square of each of those variables must kill the module.
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 | -11x-28y 12x+26y  50x-9y   -48x-31y 12x-46y  -35x-12y -43x-24y 13x+26y  |
              | 47x+49y  -50x-27y 31x+35y  33x+23y  37x-29y  20x-18y  38x-20y  39x-29y  |
              | 23x-7y   -31x+14y -42x-34y 30x-12y  -21x+4y  48x+7y   17x+18y  21x+20y  |
              | -49x-16y 15x-12y  7x-28y   -4x-23y  -44x-2y  43x-17y  18x+14y  -4x+20y  |
              | -43x-33y 45x+45y  15x+10y  -18x-21y -26x+41y -22x-43y -40x-y   -20x-46y |

                            5
o3 : R-module, quotient of R
i4 : (N,f) = decomposeModule M

o4 = (cokernel | y x 0 0 0 0 0 0 |, | 3   -30 -16 -49 -37 |)
               | 0 0 x 0 y 0 0 0 |  | 40  -42 41  9   -17 |
               | 0 0 0 y x 0 0 0 |  | 47  -13 35  16  4   |
               | 0 0 0 0 0 x 0 y |  | 1   0   0   0   0   |
               | 0 0 0 0 0 0 y x |  | -41 24  -10 -24 11  |

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

Ways to use decomposeModule :