The set of ZZ/d-graded factorizations maps forms a module over the underlying ring. These methods implement the basic operations of addition, subtraction, and scalar multiplication.
i1 : S = ZZ/101[a,b];
|
i2 : R = S/(a^3+b^3);
|
i3 : m = ideal vars R
o3 = ideal (a, b)
o3 : Ideal of R
|
i4 : C = tailMF m
2 2 2
o4 = S <-- S <-- S
0 1 0
o4 : ZZdFactorization
|
i5 : D = tailMF (m^2)
3 3 3
o5 = S <-- S <-- S
0 1 0
o5 : ZZdFactorization
|
i6 : f = randomFactorizationMap(D, C, Cycle => true, InternalDegree => 1)
3 2
o6 = 0 : S <----------------------- S : 0
{3} | 36 24a-30b |
{3} | 30 36a+24b |
{3} | 24 -30a-36b |
3 2
1 : S <------------------- S : 1
{5} | 36 24 |
{5} | -30 -36 |
{5} | 24 -30 |
o6 : ZZdFactorizationMap
|
i7 : g = randomFactorizationMap(D, C, Boundary => true)
3 2
o7 = 0 : S <---------------------------------- S : 0
{3} | -29ab+10b2 -10a2b-29b3 |
{3} | 19ab+29b2 -29a2b+19b3 |
{3} | 19ab+8b2 -8a2b+19b3 |
3 2
1 : S <-------------------------------- S : 1
{5} | -29ab-19b2 -10ab+8b2 |
{5} | -19ab-29b2 29ab-10b2 |
{5} | 19ab+19b2 -8ab-29b2 |
o7 : ZZdFactorizationMap
|
i8 : use S;
|
i9 : f+g
3 2
o9 = 0 : S <--------------------------------------------- S : 0
{3} | -29ab+10b2+36 -10a2b-29b3+24a-30b |
{3} | 19ab+29b2+30 -29a2b+19b3+36a+24b |
{3} | 19ab+8b2+24 -8a2b+19b3-30a-36b |
3 2
1 : S <-------------------------------------- S : 1
{5} | -29ab-19b2+36 -10ab+8b2+24 |
{5} | -19ab-29b2-30 29ab-10b2-36 |
{5} | 19ab+19b2+24 -8ab-29b2-30 |
o9 : ZZdFactorizationMap
|
i10 : f-g
3 2
o10 = 0 : S <-------------------------------------------- S : 0
{3} | 29ab-10b2+36 10a2b+29b3+24a-30b |
{3} | -19ab-29b2+30 29a2b-19b3+36a+24b |
{3} | -19ab-8b2+24 8a2b-19b3-30a-36b |
3 2
1 : S <--------------------------------------- S : 1
{5} | 29ab+19b2+36 10ab-8b2+24 |
{5} | 19ab+29b2-30 -29ab+10b2-36 |
{5} | -19ab-19b2+24 8ab+29b2-30 |
o10 : ZZdFactorizationMap
|
i11 : -f
3 2
o11 = 0 : S <------------------------ S : 0
{3} | -36 -24a+30b |
{3} | -30 -36a-24b |
{3} | -24 30a+36b |
3 2
1 : S <------------------- S : 1
{5} | -36 -24 |
{5} | 30 36 |
{5} | -24 30 |
o11 : ZZdFactorizationMap
|
i12 : 3*f
3 2
o12 = 0 : S <------------------------ S : 0
{3} | 7 -29a+11b |
{3} | -11 7a-29b |
{3} | -29 11a-7b |
3 2
1 : S <------------------- S : 1
{5} | 7 -29 |
{5} | 11 -7 |
{5} | -29 11 |
o12 : ZZdFactorizationMap
|
i13 : 0*f
o13 = 0
o13 : ZZdFactorizationMap
|
i14 : a*f
3 2
o14 = 0 : S <-------------------------- S : 0
{3} | 36a 24a2-30ab |
{3} | 30a 36a2+24ab |
{3} | 24a -30a2-36ab |
3 2
1 : S <--------------------- S : 1
{5} | 36a 24a |
{5} | -30a -36a |
{5} | 24a -30a |
o14 : ZZdFactorizationMap
|
i15 : assert(0*f == 0)
|
i16 : assert(1*f == f)
|
i17 : assert((-1)*f == -f)
|
i18 : assert(-(f-g) == g-f)
|
i19 : assert((a+b)*f == a*f + b*f)
|
i20 : assert(a*(f+g) == a*f + a*g)
|