Macaulay2 » Documentation
Packages » MatrixFactorizations :: isWellDefined(ZZdFactorizationMap)
next | previous | forward | backward | up | index | toc

isWellDefined(ZZdFactorizationMap) -- whether a map of ZZ/d-graded factorizations is well-defined

Description

A map of factorizations $f : C \to D$ of degree $d$ is a sequence of maps $f_i : C_i \to D_{d+i}$. No relationship is required between these maps and the differentials in the source and target.

This routine checks that $C$ and $D$ are well-defined factorizations, and that, for each $f_i$, the source and target equal $C_i$ and $D_{d+i}$, respectively. If the variable debugLevel is set to a value greater than zero, then information about the nature of any failure is displayed.

Unlike the isWellDefined(ZZdFactorization), the basic constructors for ZZ/d-graded factorization maps are all but assured to be well defined. The only case that could cause a problem is if one constructs the source or target complex, and those are not well defined.

i1 : S = ZZ/101[a,b,c]

o1 = S

o1 : PolynomialRing
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 : use S

o6 = S

o6 : PolynomialRing
i7 : H = hashTable { 2 => map(C_0, D_0, matrix {{0, 0, -c, -b, 0, -c, 0, 0}, {0, 0, 0, 0, -c, 0, 0, 0}, {0, 0,
              0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, b, 0, 0, 0}}),
         1 => map(C_1, D_1, matrix {{0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, -c, b, c, 0, 0}, {-c, 0, 0,
              0, 0, 0, 0, 0}, {b, 0, 0, 0, 0, 0, 0, 0}})
         }

o7 = HashTable{1 => {4} | 0  0 0 0  0 0 0 0 |  }
                    {4} | 0  0 0 -c b c 0 0 |
                    {4} | -c 0 0 0  0 0 0 0 |
                    {4} | b  0 0 0  0 0 0 0 |
               2 => {3} | 0 0 -c -b 0  -c 0 0 |
                    {3} | 0 0 0  0  -c 0  0 0 |
                    {3} | 0 0 0  0  0  0  0 0 |
                    {3} | 0 0 0  0  b  0  0 0 |

o7 : HashTable
i8 : f = map(C, D, H)

          4                                   8
o8 = 0 : S  <------------------------------- S  : 0
               {3} | 0 0 -c -b 0  -c 0 0 |
               {3} | 0 0 0  0  -c 0  0 0 |
               {3} | 0 0 0  0  0  0  0 0 |
               {3} | 0 0 0  0  b  0  0 0 |

          4                                 8
     1 : S  <----------------------------- S  : 1
               {4} | 0  0 0 0  0 0 0 0 |
               {4} | 0  0 0 -c b c 0 0 |
               {4} | -c 0 0 0  0 0 0 0 |
               {4} | b  0 0 0  0 0 0 0 |

o8 : ZZdFactorizationMap
i9 : assert isWellDefined f
i10 : assert isHomogeneous f
i11 : assert(degree f == 0)
i12 : assert isFactorizationMorphism f

We construct two random maps of factorizations, and check to see that, as should be the case, both are well defined.

i13 : g = randomFactorizationMap(C,D)

           4                                                                                                                       8
o13 = 0 : S  <------------------------------------------------------------------------------------------------------------------- S  : 0
                {3} | 24a-36b-30c  -38a-16b+39c -28a-47b+38c -16a+7b+15c  -38a+33b+40c 2a+29b-47c   32a-9b-32c   -33a-19b+17c |
                {3} | -29a+19b+19c 21a+34b+19c  2a+16b+22c   -23a+39b+43c 11a+46b-28c  15a-37b-13c  -20a+24b-30c -20a+44b-39c |
                {3} | -10a-29b-8c  -47a-39b-18c 45a-34b-48c  -17a-11b+48c a-3b+22c     -10a+30b-18c -48a-15b+39c 36a+9b-39c   |
                {3} | -22a-29b-24c -13a-43b-15c -47a+47b+19c 36a+35b+11c  -47a-23b-7c  39a+27b-22c  33b-49c      4a+13b-26c   |

           4                                                                                                                     8
      1 : S  <----------------------------------------------------------------------------------------------------------------- S  : 1
                {4} | 22a-49b-11c  -28a-6b+35c -49a-13b+4c  -48a-29b-48c -22a+10b+7c 30a-46b+49c  -18a+27b-21c -28a+47b-28c |
                {4} | -8a+43b-8c   -9a-35b+6c  30a-47b+27c  30a-37b+47c  30a+13b-17c -18a+42b+23c 23a-37b-23c  6a-9b-33c    |
                {4} | 36a-3b-22c   40a+3b-31c  -40a+37b-35c -49a+28b-18c -13a+3b-41c -28a+15b+18c 44a-39b+20c  28a-29b+26c  |
                {4} | -30a+41b+16c 25a-2b-41c  -31a-39b-31c 46a+b+40c    8a+8b-29c   -16a-46b+12c 19a-47c      5a-37b-33c   |

o13 : ZZdFactorizationMap
i14 : assert isWellDefined g
i15 : assert not isCommutative g
i16 : h = randomFactorizationMap(C,D, Cycle => true)

           4                                                                                                                   8
o16 = 0 : S  <--------------------------------------------------------------------------------------------------------------- S  : 0
                {3} | 28a+18b-25c -3a+15b+35c -25a+28b+10c 38a+47b+45c  38a+17b-12c  44a+9b+23c  -30a-30b+5c  2a+36b+34c  |
                {3} | 46a-22b-33c 32a-42b-16c -a-3b+15c    16a+2b-42c   -38a+39b-12c 28a-35b-7c  5a-24b+29c   33a+5b-4c   |
                {3} | -40a+48b-4c 23a-20b+29c -30a+16b+40c -31a-18b+35c -5a+34b+40c  37a-11b+36c -28a+24b+49c 12a-35b-14c |
                {3} | 29a-13b+42c -36a+4b-46c 5a+20b+33c   33a-35b-37c  14a+49b-7c   24a+46b-11c -29a-20b+5c  31a+21b-50c |

           4                                                                                                                     8
      1 : S  <----------------------------------------------------------------------------------------------------------------- S  : 1
                {4} | -5a+2b-11c   40a+35b-37c  -23a+24b+8c 30a-5b-2c    -31a-39b+42c 37a+22b+7c   -28a+42b+44c 12a+3b+9c   |
                {4} | -38a+35b-7c  28a+46b-42c  -3a-20b+37c -25a+21b+17c -38a+49b-33c -44a-13b+12c 30a+4b+22c   -2a+20b-26c |
                {4} | -38a+18b+23c -46a-11b+45c -32a+24b-9c a-35b-7c     16a+34b-25c  28a+48b+12c  5a-20b-13c   33a+16b+10c |
                {4} | 14a-47b-36c  -29a+9b-35c  36a-30b-18c -5a+36b+12c  33a+17b+4c   24a+18b+40c  -29a+15b-4c  31a+28b-6c  |

o16 : ZZdFactorizationMap
i17 : assert isWellDefined h
i18 : assert isFactorizationMorphism h

This method also checks the following aspects of the data structure:

  • The underlying hash table has exactly the expected keys, namely, source, target, degree, map, cache
  • The ring of the source and target are the same
  • The source and target are well defined complexes
  • The degree is an integer
  • All keys in the map field are integers, in the range of the concentration of the source
  • The source and target of each $f_i$ is as expected
  • If the isCommutative key is present in the cache table, then commutativity of the map with the differentials is checked

See also

Ways to use this method:


The source of this document is in MatrixFactorizations/MatrixFactorizationsDOC.m2:2794:0.