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.
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
-- .855938s elapsed
|
i11 : assert({FHM} == summands FHM)
|
i12 : assert FHM.cache.isIndecomposable
|