If no degree is specified, then a random list of degrees with values ranging from 1 to 10 is chosen. If no parameters on the presentation matrix are specified, then random values between 1 and 10 are chosen. It is highly recommended that one specifies bounds when working over a ring with more than 3 variables, since the computations may get out of hand if the presentation size is randomly chosen to be too large. This function is mostly meant as a helper function for generating interesting examples of matrix factorizations en masse. Note that for certain parameters this function may take some time to run, since the code will continue to generate examples until it obtains a well-defined matrix factorization (if it does not do this, the ranks of the modules in resulting factorization may not be equal).
i1 : Q = ZZ/101[x_1..x_3]
o1 = Q
o1 : PolynomialRing
|
i2 : f = random(2,Q)
2 2 2
o2 = 24x - 36x x - 29x - 30x x + 19x x + 19x
1 1 2 2 1 3 2 3 3
o2 : Q
|
i3 : C = randomTailMF(f, 4, 8, 5)
8 8 8
o3 = Q <-- Q <-- Q
0 1 0
o3 : ZZdFactorization
|
i4 : C.dd
8 8
o4 = 1 : Q <--------------------------------------------------------------------------------------------------------------------------------------------------------- Q : 0
{4} | 46x_3 -41x_3 39x_3 -40x_3 24x_1+48x_2+47x_3 -47x_2+31x_3 -40x_2-31x_3 -8x_2-32x_3 |
{4} | 4x_3 -15x_1+5x_3 32x_1-24x_3 4x_1-29x_2-45x_3 -49x_2-28x_3 -40x_1+8x_2+23x_3 -33x_1+24x_2-29x_3 7x_1+25x_2+38x_3 |
{4} | -35x_2-10x_3 40x_2+42x_3 24x_1+4x_2+22x_3 -42x_2-14x_3 -5x_2-41x_3 -41x_2+25x_3 13x_2+32x_3 46x_2+35x_3 |
{4} | -13x_3 -15x_3 -14x_3 22x_3 31x_2-34x_3 24x_1-36x_2-23x_3 -41x_2-31x_3 -35x_2+44x_3 |
{4} | -41x_2+12x_3 24x_1+22x_2-5x_3 50x_3 21x_3 26x_3 49x_3 -36x_3 9x_3 |
{4} | -22x_3 33x_3 38x_3 22x_3 20x_2+23x_3 11x_2-49x_3 24x_1-12x_2+19x_3 16x_2-48x_3 |
{4} | 24x_1+43x_2+21x_3 24x_2+44x_3 -27x_3 -42x_3 29x_3 41x_3 -13x_3 -46x_3 |
{4} | 17x_3 15x_2+43x_3 -32x_2-50x_3 24x_1-40x_2+45x_3 26x_2-42x_3 40x_2-30x_3 33x_2+49x_3 -7x_2+27x_3 |
8 8
0 : Q <---------------------------------------------------------------------------------------------------------------------------------------------------- Q : 1
{3} | 3x_3 21x_3 11x_3 -13x_3 -x_2-35x_3 21x_3 x_1+43x_2-40x_3 -27x_3 |
{3} | 41x_3 42x_3 -16x_3 -12x_3 x_1+6x_2+21x_3 34x_3 48x_2+50x_3 30x_3 |
{3} | -4x_2+48x_3 -21x_2-5x_3 x_1-41x_2-46x_3 13x_2-22x_3 -19x_2+33x_3 -21x_2-4x_3 -28x_2-8x_3 -20x_2-7x_3 |
{3} | 41x_2+27x_3 x_2+25x_3 -6x_3 -16x_3 -3x_3 -35x_3 -47x_3 x_1+39x_3 |
{3} | x_1+47x_2+x_3 30x_2+19x_3 -40x_2-48x_3 -28x_2+43x_3 44x_2+22x_3 -16x_2+19x_3 -44x_3 -5x_2+49x_3 |
{3} | 45x_2-7x_3 5x_2+37x_3 27x_2+27x_3 x_1+42x_2-27x_3 41x_2+49x_3 17x_2-32x_3 30x_3 16x_2+35x_3 |
{3} | 16x_2-22x_3 41x_2-22x_3 -21x_2-48x_3 30x_2-22x_3 13x_2+48x_3 x_1-33x_2+14x_3 43x_3 10x_2+28x_3 |
{3} | 17x_2-27x_3 -11x_1+34x_2+2x_3 -19x_1+22x_2+12x_3 49x_1+16x_2+4x_3 31x_1-4x_2-41x_3 48x_1+7x_2+12x_3 -33x_3 -15x_1+28x_2-40x_3 |
o4 : ZZdFactorizationMap
|
i5 : C.dd^2
8 8
o5 = 0 : Q <----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Q : 0
{3} | 24x_1^2-36x_1x_2-29x_2^2-30x_1x_3+19x_2x_3+19x_3^2 0 0 0 0 0 0 0 |
{3} | 0 24x_1^2-36x_1x_2-29x_2^2-30x_1x_3+19x_2x_3+19x_3^2 0 0 0 0 0 0 |
{3} | 0 0 24x_1^2-36x_1x_2-29x_2^2-30x_1x_3+19x_2x_3+19x_3^2 0 0 0 0 0 |
{3} | 0 0 0 24x_1^2-36x_1x_2-29x_2^2-30x_1x_3+19x_2x_3+19x_3^2 0 0 0 0 |
{3} | 0 0 0 0 24x_1^2-36x_1x_2-29x_2^2-30x_1x_3+19x_2x_3+19x_3^2 0 0 0 |
{3} | 0 0 0 0 0 24x_1^2-36x_1x_2-29x_2^2-30x_1x_3+19x_2x_3+19x_3^2 0 0 |
{3} | 0 0 0 0 0 0 24x_1^2-36x_1x_2-29x_2^2-30x_1x_3+19x_2x_3+19x_3^2 0 |
{3} | 0 0 0 0 0 0 0 24x_1^2-36x_1x_2-29x_2^2-30x_1x_3+19x_2x_3+19x_3^2 |
8 8
1 : Q <----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Q : 1
{4} | 24x_1^2-36x_1x_2-29x_2^2-30x_1x_3+19x_2x_3+19x_3^2 0 0 0 0 0 0 0 |
{4} | 0 24x_1^2-36x_1x_2-29x_2^2-30x_1x_3+19x_2x_3+19x_3^2 0 0 0 0 0 0 |
{4} | 0 0 24x_1^2-36x_1x_2-29x_2^2-30x_1x_3+19x_2x_3+19x_3^2 0 0 0 0 0 |
{4} | 0 0 0 24x_1^2-36x_1x_2-29x_2^2-30x_1x_3+19x_2x_3+19x_3^2 0 0 0 0 |
{4} | 0 0 0 0 24x_1^2-36x_1x_2-29x_2^2-30x_1x_3+19x_2x_3+19x_3^2 0 0 0 |
{4} | 0 0 0 0 0 24x_1^2-36x_1x_2-29x_2^2-30x_1x_3+19x_2x_3+19x_3^2 0 0 |
{4} | 0 0 0 0 0 0 24x_1^2-36x_1x_2-29x_2^2-30x_1x_3+19x_2x_3+19x_3^2 0 |
{4} | 0 0 0 0 0 0 0 24x_1^2-36x_1x_2-29x_2^2-30x_1x_3+19x_2x_3+19x_3^2 |
o5 : ZZdFactorizationMap
|
i6 : isWellDefined C
o6 = true
|
i7 : f == potential C
o7 = true
|
i8 : D = randomTailMF(f, 3, 5) --without specifying generator degrees
4 4 4
o8 = Q <-- Q <-- Q
0 1 0
o8 : ZZdFactorization
|
i9 : isdFactorization D
2 2 2
o9 = (true, 24x - 36x x - 29x - 30x x + 19x x + 19x )
1 1 2 2 1 3 2 3 3
o9 : Sequence
|
i10 : S = ZZ/101[a,b,c];
|
i11 : g = a^3 + b^3 + c^3;
|
i12 : E = randomTailMF(g) --without specifying presentation bounds or degree bounds
24 24 24
o12 = S <-- S <-- S
0 1 0
o12 : ZZdFactorization
|
i13 : isdFactorization E
3 3 3
o13 = (true, a + b + c )
o13 : Sequence
|