Description
Two ZZ/d-graded factorization maps are equal if they have the same source, the same target, and $f_i = g_i$ for all $i$.
i1 : S = ZZ/101[a,b,c];
|
i2 : R = S/(a^2+b^2+c^2);
|
i3 : m = ideal vars R
o3 = ideal (a, b, c)
o3 : Ideal of R
|
i4 : C = tailMF m
4 4 4
o4 = S <-- S <-- S
0 1 0
o4 : ZZdFactorization
|
i5 : D = tailMF (m^2)
8 8 8
o5 = S <-- S <-- S
0 1 0
o5 : ZZdFactorization
|
i6 : f = id_C
4 4
o6 = 0 : S <------------------- S : 0
{3} | 1 0 0 0 |
{3} | 0 1 0 0 |
{3} | 0 0 1 0 |
{3} | 0 0 0 1 |
4 4
1 : S <------------------- S : 1
{4} | 1 0 0 0 |
{4} | 0 1 0 0 |
{4} | 0 0 1 0 |
{4} | 0 0 0 1 |
o6 : ZZdFactorizationMap
|
i7 : assert(f == 1)
|
i8 : f === id_C[-1][1]
o8 = false
|
i9 : f == id_C[-1][1]
o9 = true
|
A factorization map is equal to zero if all the maps are zero. This could require computation to determine if something that is superficially not zero is in fact zero.
i10 : assert(0 * id_C == 0)
|
i11 : use S;
|
i12 : E = koszulMF({a,b,c}, a^3 + b^3 + c^3)
4 4 4
o12 = S <-- S <-- S
0 1 0
o12 : ZZdFactorization
|
i13 : g = randomFactorizationMap(E, E)
4 4
o13 = 0 : S <----------------------- S : 0
| 24 19 -8 -38 |
| -36 19 -22 -16 |
| -30 -10 -29 39 |
| -29 -29 -24 21 |
4 4
1 : S <----------------------- S : 1
| 34 -18 -28 16 |
| 19 -13 -47 22 |
| -47 -43 38 45 |
| -39 -15 2 -34 |
o13 : ZZdFactorizationMap
|
i14 : h = inducedMap(coker g, target g)
4
o14 = 0 : cokernel | 24 19 -8 -38 | <----- S : 0
| -36 19 -22 -16 | 0
| -30 -10 -29 39 |
| -29 -29 -24 21 |
4
1 : cokernel | 34 -18 -28 16 | <----- S : 1
| 19 -13 -47 22 | 0
| -47 -43 38 45 |
| -39 -15 2 -34 |
o14 : ZZdFactorizationMap
|
i15 : assert(prune h == 0)
|
Testing whether a map is equal to 1 is a shorthand for determining if the complex map is the identity. Although the matrices may appear to be the identity, the map is not the identity when the source and target are not equal.
i16 : g = randomFactorizationMap(C, C, InternalDegree=>1, Cycle=>true)
4 4
o16 = 0 : S <------------------------------------------------------------- S : 0
{3} | 8a-17b+36c 26a+36b-45c 8a-24b-39c -19a-50b-30c |
{3} | 47b+14c 39a-33b-39c 49a-45b-7c 15a+25b-29c |
{3} | -21a-23b+17c -11a+42b-24c 42a+5b-11c -48a-11b+48c |
{3} | 8a-16b-4c a+49b+2c 2a-43b-47c 43a-6b+35c |
4 4
1 : S <------------------------------------------------------------- S : 1
{4} | 42a-33b+35c 21a-25b+2c -11a+45b-4c -48a-47b+47c |
{4} | -8a-49b-29c 8a-6b-39c -26a-43b+14c 19a-16b+7c |
{4} | 49a-42b-30c -11b-45c 39a+5b+36c 15a-23b+39c |
{4} | 2a-36b-48c -8a-50b+24c a-24b-17c 43a-17b-11c |
o16 : ZZdFactorizationMap
|
i17 : h = inducedMap(coker g, target g)
4
o17 = 0 : cokernel {3} | 8a-17b+36c 26a+36b-45c 8a-24b-39c -19a-50b-30c | <------------------- S : 0
{3} | 47b+14c 39a-33b-39c 49a-45b-7c 15a+25b-29c | {3} | 1 0 0 0 |
{3} | -21a-23b+17c -11a+42b-24c 42a+5b-11c -48a-11b+48c | {3} | 0 1 0 0 |
{3} | 8a-16b-4c a+49b+2c 2a-43b-47c 43a-6b+35c | {3} | 0 0 1 0 |
{3} | 0 0 0 1 |
4
1 : cokernel {4} | 42a-33b+35c 21a-25b+2c -11a+45b-4c -48a-47b+47c | <------------------- S : 1
{4} | -8a-49b-29c 8a-6b-39c -26a-43b+14c 19a-16b+7c | {4} | 1 0 0 0 |
{4} | 49a-42b-30c -11b-45c 39a+5b+36c 15a-23b+39c | {4} | 0 1 0 0 |
{4} | 2a-36b-48c -8a-50b+24c a-24b-17c 43a-17b-11c | {4} | 0 0 1 0 |
{4} | 0 0 0 1 |
o17 : ZZdFactorizationMap
|
i18 : assert(h != 1)
|
Testing for equality is not the same testing for isomorphism. In particular, different presentations of a complex need not be equal.
i19 : D = prune image g
4 4 4
o19 = S <-- S <-- S
0 1 0
o19 : ZZdFactorization
|
i20 : p = D.cache.pruningMap
4
o20 = 0 : image {3} | 8a-17b+36c 26a+36b-45c 8a-24b-39c -19a-50b-30c | <------------------- S : 0
{3} | 47b+14c 39a-33b-39c 49a-45b-7c 15a+25b-29c | {4} | 1 0 0 0 |
{3} | -21a-23b+17c -11a+42b-24c 42a+5b-11c -48a-11b+48c | {4} | 0 1 0 0 |
{3} | 8a-16b-4c a+49b+2c 2a-43b-47c 43a-6b+35c | {4} | 0 0 1 0 |
{4} | 0 0 0 1 |
4
1 : image {4} | 42a-33b+35c 21a-25b+2c -11a+45b-4c -48a-47b+47c | <------------------- S : 1
{4} | -8a-49b-29c 8a-6b-39c -26a-43b+14c 19a-16b+7c | {5} | 1 0 0 0 |
{4} | 49a-42b-30c -11b-45c 39a+5b+36c 15a-23b+39c | {5} | 0 1 0 0 |
{4} | 2a-36b-48c -8a-50b+24c a-24b-17c 43a-17b-11c | {5} | 0 0 1 0 |
{5} | 0 0 0 1 |
o20 : ZZdFactorizationMap
|
i21 : p == 1
o21 = false
|
i22 : assert(coker p == 0 and ker p == 0)
|
i23 : assert(prune p == 1)
|