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 | -17x+32y 7x+25y   29x+26y  -2x+37y  -37x-47y 10x-28y  4x-13y   41x+48y  |
              | 4x+48y   46x-35y  -49x-35y 40x+33y  33x+20y  -20x-44y 45x+27y  25x-22y  |
              | 31x-29y  10x+37y  -30x-42y -2x+33y  -41x+19y 50x-37y  -23x-40y 5x-37y   |
              | -20x-36y -10x-32y 24x-20y  -27x-11y 14x-36y  21x+13y  49x-24y  -8x+11y  |
              | 26x+21y  46x+3y   2x+48y   31x+28y  -35x-38y 24x-8y   32x+44y  -46x-14y |

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

o4 = (cokernel | y x 0 0 0 0 0 0 |, | 34  -8 -47 28 19  |)
               | 0 0 x 0 y 0 0 0 |  | 35  17 33  32 40  |
               | 0 0 0 y x 0 0 0 |  | 49  8  -10 15 -20 |
               | 0 0 0 0 0 x 0 y |  | 1   0  0   0  0   |
               | 0 0 0 0 0 0 y x |  | -31 16 -29 -7 43  |

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 :