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 | 28x-32y  49x+13y  -9x-14y 36x-19y  22x+7y  31x+32y  -40x-40y -21x+23y |
              | 41x+2y   x-48y    -9x-2y  -22x-35y 42x+38y -38x+49y 44x-46y  3x-16y   |
              | -8x+17y  -22x+31y -3x+25y 22x+44y  8x-27y  -44x+11y -2x-19y  -13x+8y  |
              | -47x+49y 48y      34x+34y 25x+46y  25x+47y 6x+36y   -50x-14y -15y     |
              | -32x+40y 2x-28y   49x-23y -22x-28y 40x-18y -48x-24y 31x-43y  -14x+2y  |

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

o4 = (cokernel | y x 0 0 0 0 0 0 |, | 42 -24 2   29  -30 |)
               | 0 0 x 0 y 0 0 0 |  | 33 -13 49  24  46  |
               | 0 0 0 y x 0 0 0 |  | -8 44  -49 -27 -20 |
               | 0 0 0 0 0 x 0 y |  | 34 50  32  20  40  |
               | 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

Ways to use decomposeModule :