Macaulay2 » Documentation
Packages » DirectSummands » isIndecomposable
next | previous | forward | backward | up | index | toc

isIndecomposable -- tests whether a module or coherent sheaf is indecomposable

Description

This function runs inexpensive indecomposability checks without invoking the full decomposition algorithm. It returns false if it finds a splitting, true if indecomposability is certified, and null otherwise.

As an example, we prove the indecomposability of the Horrocks–Mumford bundle on $\PP^4$.

i1 : needsPackage "BGG"

o1 = BGG

o1 : Package
i2 : S = ZZ/32003[x_0..x_4];
i3 : E = ZZ/32003[e_0..e_4, SkewCommutative => true];
i4 : alphad = map(E^5, E^{-2,-2}, transpose matrix{
             { e_1*e_4, -e_0*e_2, -e_1*e_3, -e_2*e_4,  e_0*e_3},
             {-e_2*e_3, -e_3*e_4,  e_0*e_4, -e_0*e_1, -e_1*e_2}});

             5      2
o4 : Matrix E  <-- E
i5 : alpha = syz alphad;

             2      5
o5 : Matrix E  <-- E
i6 : alphad = beilinson(alphad, S);

o6 : Matrix
i7 : alpha = beilinson(alpha, S);

o7 : Matrix
i8 : FHM = prune homology(alphad, alpha)

o8 = cokernel {3} | -x_1x_4 x_3^2 0     x_1x_3  x_4^2 0      0     x_2x_3 x_1^2 -x_2x_4 x_0^2   x_0x_2  0     0    -x_0x_3 0    0     0    0      0    0      0      x_2^2 0      0    0      0      x_0x_4 x_1x_2 x_0x_1 0       0    0      0      x_3x_4 |
              {3} | x_2x_3  0     x_4^2 -x_0x_4 0     x_0x_3 x_1^2 0      0     x_0x_1  0       -x_3x_4 x_2^2 0    x_1x_2  0    x_3^2 0    0      0    x_0x_2 x_1x_4 0     0      0    0      x_2x_4 0      0      0      x_0^2   0    x_1x_3 0      0      |
              {3} | 0       0     0     0       0     0      0     0      0     0       -x_1x_4 0       0     0    0       0    0     0    x_2x_4 0    0      x_2x_3 0     x_1x_3 0    0      0      0      x_4^2  0      0       0    0      0      x_1^2  |
              {3} | 0       0     0     0       0     0      0     x_1x_4 0     0       0       0       0     0    0       0    0     0    0      0    0      0      0     0      0    x_3x_4 x_3^2  0      0      0      -x_2x_3 0    x_2^2  x_1x_2 0      |
              {4} | -x_0    -x_1  x_3   0       0     0      x_2   0      0     0       0       0       0     0    0       0    0     0    -x_1   0    0      0      -x_4  -x_4   0    x_2    0      0      0      0      0       0    0      x_3    0      |
              {4} | 0       -x_4  0     0       0     -x_1   0     0      0     0       0       0       0     0    0       x_0  0     0    -x_4   0    0      -x_3   0     0      0    0      0      x_2    0      0      0       0    0      0      0      |
              {4} | 0       0     -x_2  0       0     0      0     -x_4   0     0       0       0       0     0    0       0    0     x_0  0      0    x_1    0      0     0      0    0      0      -x_3   0      0      0       0    0      -x_2   0      |
              {4} | 0       0     0     -x_2    x_1   0      0     0      0     0       0       0       0     0    0       0    0     x_4  0      -x_3 0      0      0     0      x_1  x_0    0      0      0      0      0       0    0      0      0      |
              {4} | 0       0     0     0       -x_3  0      0     x_0    -x_2  0       0       0       0     0    0       -x_2 0     0    0      0    0      0      0     0      -x_3 0      -x_1   0      0      0      0       0    -x_4   0      0      |
              {4} | 0       0     0     0       0     x_2    0     0      0     0       x_4     0       0     0    0       0    0     0    0      x_4  0      0      0     -x_3   0    0      x_0    0      0      0      0       0    0      0      -x_1   |
              {4} | 0       0     0     0       0     x_4    -x_3  -x_1   0     0       0       0       0     x_0  0       0    0     0    0      0    0      0      0     0      0    -x_3   0      0      0      -x_2   0       0    0      0      0      |
              {4} | 0       0     0     0       0     0      0     0      -x_4  -x_3    -x_2    0       0     -x_1 0       -x_4 0     0    0      -x_2 0      0      0     0      0    0      0      0      0      0      0       0    0      -x_0   0      |
              {4} | 0       0     0     0       0     0      0     0      0     0       0       -x_1    -x_3  -x_3 0       0    0     0    -x_0   0    0      0      0     0      -x_2 0      0      0      0      0      -x_4    x_4  0      0      0      |
              {4} | 0       0     0     0       0     0      0     0      0     0       0       0       -x_4  -x_4 0       0    -x_1  -x_1 0      0    0      x_0    0     0      0    0      0      0      -x_3   0      0       0    0      0      -x_2   |
              {4} | 0       0     0     0       0     0      0     0      0     0       0       0       0     0    -x_4    x_3  x_2   x_2  0      0    0      0      0     x_0    0    0      0      0      0      0      0       x_1  0      0      0      |
              {4} | 0       0     0     0       0     0      0     0      0     0       0       0       0     0    0       0    0     0    x_2    x_1  -x_3   0      0     0      0    0      0      0      x_4    0      0       0    -x_0   0      0      |
              {4} | 0       0     0     0       0     0      0     0      0     0       0       0       0     0    0       0    0     0    0      0    -x_4   -x_2   -x_1  -x_1   x_0  0      0      0      0      x_3    0       0    0      0      0      |
              {4} | 0       0     0     0       0     0      0     0      0     0       0       0       0     0    0       0    0     0    0      0    0      0      0     0      0    x_4    x_3    -x_1   -x_0   0      0       -x_2 0      0      0      |
              {4} | 0       0     0     0       0     0      0     0      0     0       0       0       0     0    0       0    0     0    0      0    0      0      0     0      0    0      0      0      0      -x_4   -x_3    x_3  x_2    x_1    -x_0   |

                            19
o8 : S-module, quotient of S
i9 : assert(2 == rank FHM)
i10 : assert elapsedTime isIndecomposable FHM
 -- .828132s elapsed
i11 : assert({FHM} == summands FHM)
i12 : assert FHM.cache.isIndecomposable

See also

Ways to use isIndecomposable:

  • isIndecomposable(Module)

For the programmer

The object isIndecomposable is a method function with options.


The source of this document is in DirectSummands/docs.m2:680:0.