Macaulay2 » Documentation
Packages » MatrixFactorizations :: map(ZZdFactorization,ZZdFactorization,HashTable)
next | previous | forward | backward | up | index | toc

map(ZZdFactorization,ZZdFactorization,HashTable) -- make a map of ZZ/d-graded factorizations

Description

A map of ZZ/d-graded factorizations $f : C \rightarrow D$ of degree $d$ is a sequence of maps $f_i : C_i \rightarrow D_{d+i}$. No relationship between the maps $f_i$ and and the differentials of either $C$ or $D$ is assumed.

We construct a map of factorizations by specifying the individual maps between the terms.

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

The keys in the hash table index the terms in the source of the map. If a key is missing, that map is taken to be the zero map. We illustrate by constructing a map of factorizations having nonzero degree, and omitting one key in the hash table.

i13 : E = D[1]

       8      8      8
o13 = S  <-- S  <-- S
                     
      0      1      0

o13 : ZZdFactorization
i14 : g = map(E, C, hashTable {}, Degree => 1)

o14 = 0

o14 : ZZdFactorizationMap
i15 : assert isWellDefined g
i16 : assert isHomogeneous g
i17 : assert(degree g == 1)
i18 : assert not isFactorizationMorphism g --since the map has nonzero degree
i19 : assert isCommutative g
i20 : assert(source g == C)
i21 : assert(target g == E)

This is the primary constructor used by all of the more user friendly methods for constructing a chain complex.

Caveat

This constructor minimizes computation and does very little error checking. To verify that a complex is well constructed, use isWellDefined(ZZdFactorizationMap).

See also

Ways to use this method:


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