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

Hom(ZZdFactorization,ZZdFactorization) -- the ZZ/d-graded homomorphism factorization between two ZZ/d-graded factorizations

Description

The factorization of homomorphisms is a ZZ/d-graded factorization $D$ whose $i$th component is the direct sum of $Hom(C1_j, C2_{k})$ over all $k-j = i \mod d$. The differential on $Hom(C1_j, C2_{k})$ is the differential $Hom(id_{C1}, dd^{C2}) + t^j Hom(dd^{C1}, id_{C2})$ where $t$ is a primitive $d$th root of unity.

The use of a primitive $d$th root of unity adds some subtlety to this construction, since for $d > 2$ the user may need to adjoin a root of unity using the \texttt{adjoinRoot} command. In general, if $C1$ is a factorizations of $f$ and $C2$ is a factorization of $g$, then the Hom factorization $\operatorname{Hom} (C1,C2)$ is a factorization of the difference $g-f$.

i1 : S = ZZ/101[a..c];
i2 : f = a^3 + b^3 + c^3

      3    3    3
o2 = a  + b  + c

o2 : S
i3 : C = randomTailMF(f)

      6      6      6
o3 = S  <-- S  <-- S
                    
     0      1      0

o3 : ZZdFactorization
i4 : D = Hom(C,C)

      72      72      72
o4 = S   <-- S   <-- S
                      
     0       1       0

o4 : ZZdFactorization
i5 : isZZdComplex D

o5 = true
i6 : Q = ZZ/101[x,y];
i7 : F = randomLinearMF(2,Q)

      4      4      4
o7 = Q  <-- Q  <-- Q
                    
     0      1      0

o7 : ZZdFactorization
i8 : E = Hom(F,F)

      32      32      32
o8 = Q   <-- Q   <-- Q
                      
     0       1       0

o8 : ZZdFactorization
i9 : diffs = E.dd

          32                                                                                                                                                                   32
o9 = 1 : Q   <--------------------------------------------------------------------------------------------------------------------------------------------------------------- Q   : 0
                | -y  0    -30y -38x 0  0    0    0    0   0    0    0    0    0    0    0    y   0    0    0    0  0    0    0    x   0    0    0    x    0    0    0    |
                | 0   -y   -x   x    0  0    0    0    0   0    0    0    0    0    0    0    0   y    0    0    0  0    0    0    0   x    0    0    0    x    0    0    |
                | -x  -38x -y   0    0  0    0    0    0   0    0    0    0    0    0    0    0   0    y    0    0  0    0    0    0   0    x    0    0    0    x    0    |
                | -x  30y  0    -y   0  0    0    0    0   0    0    0    0    0    0    0    0   0    0    y    0  0    0    0    0   0    0    x    0    0    0    x    |
                | 0   0    0    0    -y 0    -30y -38x 0   0    0    0    0    0    0    0    0   0    0    0    y  0    0    0    38x 0    0    0    -30y 0    0    0    |
                | 0   0    0    0    0  -y   -x   x    0   0    0    0    0    0    0    0    0   0    0    0    0  y    0    0    0   38x  0    0    0    -30y 0    0    |
                | 0   0    0    0    -x -38x -y   0    0   0    0    0    0    0    0    0    0   0    0    0    0  0    y    0    0   0    38x  0    0    0    -30y 0    |
                | 0   0    0    0    -x 30y  0    -y   0   0    0    0    0    0    0    0    0   0    0    0    0  0    0    y    0   0    0    38x  0    0    0    -30y |
                | 0   0    0    0    0  0    0    0    -y  0    -30y -38x 0    0    0    0    30y 0    0    0    x  0    0    0    y   0    0    0    0    0    0    0    |
                | 0   0    0    0    0  0    0    0    0   -y   -x   x    0    0    0    0    0   30y  0    0    0  x    0    0    0   y    0    0    0    0    0    0    |
                | 0   0    0    0    0  0    0    0    -x  -38x -y   0    0    0    0    0    0   0    30y  0    0  0    x    0    0   0    y    0    0    0    0    0    |
                | 0   0    0    0    0  0    0    0    -x  30y  0    -y   0    0    0    0    0   0    0    30y  0  0    0    x    0   0    0    y    0    0    0    0    |
                | 0   0    0    0    0  0    0    0    0   0    0    0    -y   0    -30y -38x 38x 0    0    0    -x 0    0    0    0   0    0    0    y    0    0    0    |
                | 0   0    0    0    0  0    0    0    0   0    0    0    0    -y   -x   x    0   38x  0    0    0  -x   0    0    0   0    0    0    0    y    0    0    |
                | 0   0    0    0    0  0    0    0    0   0    0    0    -x   -38x -y   0    0   0    38x  0    0  0    -x   0    0   0    0    0    0    0    y    0    |
                | 0   0    0    0    0  0    0    0    0   0    0    0    -x   30y  0    -y   0   0    0    38x  0  0    0    -x   0   0    0    0    0    0    0    y    |
                | -y  0    0    0    0  0    0    0    x   0    0    0    x    0    0    0    y   0    -30y -38x 0  0    0    0    0   0    0    0    0    0    0    0    |
                | 0   -y   0    0    0  0    0    0    0   x    0    0    0    x    0    0    0   y    -x   x    0  0    0    0    0   0    0    0    0    0    0    0    |
                | 0   0    -y   0    0  0    0    0    0   0    x    0    0    0    x    0    -x  -38x y    0    0  0    0    0    0   0    0    0    0    0    0    0    |
                | 0   0    0    -y   0  0    0    0    0   0    0    x    0    0    0    x    -x  30y  0    y    0  0    0    0    0   0    0    0    0    0    0    0    |
                | 0   0    0    0    -y 0    0    0    38x 0    0    0    -30y 0    0    0    0   0    0    0    y  0    -30y -38x 0   0    0    0    0    0    0    0    |
                | 0   0    0    0    0  -y   0    0    0   38x  0    0    0    -30y 0    0    0   0    0    0    0  y    -x   x    0   0    0    0    0    0    0    0    |
                | 0   0    0    0    0  0    -y   0    0   0    38x  0    0    0    -30y 0    0   0    0    0    -x -38x y    0    0   0    0    0    0    0    0    0    |
                | 0   0    0    0    0  0    0    -y   0   0    0    38x  0    0    0    -30y 0   0    0    0    -x 30y  0    y    0   0    0    0    0    0    0    0    |
                | 30y 0    0    0    x  0    0    0    -y  0    0    0    0    0    0    0    0   0    0    0    0  0    0    0    y   0    -30y -38x 0    0    0    0    |
                | 0   30y  0    0    0  x    0    0    0   -y   0    0    0    0    0    0    0   0    0    0    0  0    0    0    0   y    -x   x    0    0    0    0    |
                | 0   0    30y  0    0  0    x    0    0   0    -y   0    0    0    0    0    0   0    0    0    0  0    0    0    -x  -38x y    0    0    0    0    0    |
                | 0   0    0    30y  0  0    0    x    0   0    0    -y   0    0    0    0    0   0    0    0    0  0    0    0    -x  30y  0    y    0    0    0    0    |
                | 38x 0    0    0    -x 0    0    0    0   0    0    0    -y   0    0    0    0   0    0    0    0  0    0    0    0   0    0    0    y    0    -30y -38x |
                | 0   38x  0    0    0  -x   0    0    0   0    0    0    0    -y   0    0    0   0    0    0    0  0    0    0    0   0    0    0    0    y    -x   x    |
                | 0   0    38x  0    0  0    -x   0    0   0    0    0    0    0    -y   0    0   0    0    0    0  0    0    0    0   0    0    0    -x   -38x y    0    |
                | 0   0    0    38x  0  0    0    -x   0   0    0    0    0    0    0    -y   0   0    0    0    0  0    0    0    0   0    0    0    -x   30y  0    y    |

          32                                                                                                                                                       32
     0 : Q   <--------------------------------------------------------------------------------------------------------------------------------------------------- Q   : 1
                | -y  0    30y 38x 0  0    0   0   0   0    0   0   0    0    0    0    y   0    0   0   0  0    0   0   x   0    0   0   x    0    0    0    |
                | 0   -y   x   -x  0  0    0   0   0   0    0   0   0    0    0    0    0   y    0   0   0  0    0   0   0   x    0   0   0    x    0    0    |
                | x   38x  -y  0   0  0    0   0   0   0    0   0   0    0    0    0    0   0    y   0   0  0    0   0   0   0    x   0   0    0    x    0    |
                | x   -30y 0   -y  0  0    0   0   0   0    0   0   0    0    0    0    0   0    0   y   0  0    0   0   0   0    0   x   0    0    0    x    |
                | 0   0    0   0   -y 0    30y 38x 0   0    0   0   0    0    0    0    0   0    0   0   y  0    0   0   38x 0    0   0   -30y 0    0    0    |
                | 0   0    0   0   0  -y   x   -x  0   0    0   0   0    0    0    0    0   0    0   0   0  y    0   0   0   38x  0   0   0    -30y 0    0    |
                | 0   0    0   0   x  38x  -y  0   0   0    0   0   0    0    0    0    0   0    0   0   0  0    y   0   0   0    38x 0   0    0    -30y 0    |
                | 0   0    0   0   x  -30y 0   -y  0   0    0   0   0    0    0    0    0   0    0   0   0  0    0   y   0   0    0   38x 0    0    0    -30y |
                | 0   0    0   0   0  0    0   0   -y  0    30y 38x 0    0    0    0    30y 0    0   0   x  0    0   0   y   0    0   0   0    0    0    0    |
                | 0   0    0   0   0  0    0   0   0   -y   x   -x  0    0    0    0    0   30y  0   0   0  x    0   0   0   y    0   0   0    0    0    0    |
                | 0   0    0   0   0  0    0   0   x   38x  -y  0   0    0    0    0    0   0    30y 0   0  0    x   0   0   0    y   0   0    0    0    0    |
                | 0   0    0   0   0  0    0   0   x   -30y 0   -y  0    0    0    0    0   0    0   30y 0  0    0   x   0   0    0   y   0    0    0    0    |
                | 0   0    0   0   0  0    0   0   0   0    0   0   -y   0    30y  38x  38x 0    0   0   -x 0    0   0   0   0    0   0   y    0    0    0    |
                | 0   0    0   0   0  0    0   0   0   0    0   0   0    -y   x    -x   0   38x  0   0   0  -x   0   0   0   0    0   0   0    y    0    0    |
                | 0   0    0   0   0  0    0   0   0   0    0   0   x    38x  -y   0    0   0    38x 0   0  0    -x  0   0   0    0   0   0    0    y    0    |
                | 0   0    0   0   0  0    0   0   0   0    0   0   x    -30y 0    -y   0   0    0   38x 0  0    0   -x  0   0    0   0   0    0    0    y    |
                | -y  0    0   0   0  0    0   0   x   0    0   0   x    0    0    0    y   0    30y 38x 0  0    0   0   0   0    0   0   0    0    0    0    |
                | 0   -y   0   0   0  0    0   0   0   x    0   0   0    x    0    0    0   y    x   -x  0  0    0   0   0   0    0   0   0    0    0    0    |
                | 0   0    -y  0   0  0    0   0   0   0    x   0   0    0    x    0    x   38x  y   0   0  0    0   0   0   0    0   0   0    0    0    0    |
                | 0   0    0   -y  0  0    0   0   0   0    0   x   0    0    0    x    x   -30y 0   y   0  0    0   0   0   0    0   0   0    0    0    0    |
                | 0   0    0   0   -y 0    0   0   38x 0    0   0   -30y 0    0    0    0   0    0   0   y  0    30y 38x 0   0    0   0   0    0    0    0    |
                | 0   0    0   0   0  -y   0   0   0   38x  0   0   0    -30y 0    0    0   0    0   0   0  y    x   -x  0   0    0   0   0    0    0    0    |
                | 0   0    0   0   0  0    -y  0   0   0    38x 0   0    0    -30y 0    0   0    0   0   x  38x  y   0   0   0    0   0   0    0    0    0    |
                | 0   0    0   0   0  0    0   -y  0   0    0   38x 0    0    0    -30y 0   0    0   0   x  -30y 0   y   0   0    0   0   0    0    0    0    |
                | 30y 0    0   0   x  0    0   0   -y  0    0   0   0    0    0    0    0   0    0   0   0  0    0   0   y   0    30y 38x 0    0    0    0    |
                | 0   30y  0   0   0  x    0   0   0   -y   0   0   0    0    0    0    0   0    0   0   0  0    0   0   0   y    x   -x  0    0    0    0    |
                | 0   0    30y 0   0  0    x   0   0   0    -y  0   0    0    0    0    0   0    0   0   0  0    0   0   x   38x  y   0   0    0    0    0    |
                | 0   0    0   30y 0  0    0   x   0   0    0   -y  0    0    0    0    0   0    0   0   0  0    0   0   x   -30y 0   y   0    0    0    0    |
                | 38x 0    0   0   -x 0    0   0   0   0    0   0   -y   0    0    0    0   0    0   0   0  0    0   0   0   0    0   0   y    0    30y  38x  |
                | 0   38x  0   0   0  -x   0   0   0   0    0   0   0    -y   0    0    0   0    0   0   0  0    0   0   0   0    0   0   0    y    x    -x   |
                | 0   0    38x 0   0  0    -x  0   0   0    0   0   0    0    -y   0    0   0    0   0   0  0    0   0   0   0    0   0   x    38x  y    0    |
                | 0   0    0   38x 0  0    0   -x  0   0    0   0   0    0    0    -y   0   0    0   0   0  0    0   0   0   0    0   0   x    -30y 0    y    |

o9 : ZZdFactorizationMap
i10 : diffs^2

o10 = 0

o10 : ZZdFactorizationMap

The homology of $E$ actually computes the stable Ext of the maximal Cohen-Macaulay module defined by the matrix factorization (up to twists).

i11 : R = Q/(potential F)

o11 = R

o11 : QuotientRing
i12 : M = coker (F.dd_0**R)

o12 = cokernel {3} | y 0    30y 38x |
               {3} | 0 y    x   -x  |
               {3} | x 38x  y   0   |
               {3} | x -30y 0   y   |

                             4
o12 : R-module, quotient of R
i13 : prune Ext^1(M,M)

o13 = cokernel {-1} | y x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
               {-1} | 0 0 y x 0 0 0 0 0 0 0 0 0 0 0 0 |
               {-1} | 0 0 0 0 y x 0 0 0 0 0 0 0 0 0 0 |
               {-1} | 0 0 0 0 0 0 y x 0 0 0 0 0 0 0 0 |
               {-1} | 0 0 0 0 0 0 0 0 y x 0 0 0 0 0 0 |
               {-1} | 0 0 0 0 0 0 0 0 0 0 y x 0 0 0 0 |
               {-1} | 0 0 0 0 0 0 0 0 0 0 0 0 y x 0 0 |
               {-1} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y x |

                             8
o13 : R-module, quotient of R
i14 : prune Ext^2(M,M)

o14 = cokernel {-2} | y x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
               {-2} | 0 0 y x 0 0 0 0 0 0 0 0 0 0 0 0 |
               {-2} | 0 0 0 0 y x 0 0 0 0 0 0 0 0 0 0 |
               {-2} | 0 0 0 0 0 0 y x 0 0 0 0 0 0 0 0 |
               {-2} | 0 0 0 0 0 0 0 0 y x 0 0 0 0 0 0 |
               {-2} | 0 0 0 0 0 0 0 0 0 0 y x 0 0 0 0 |
               {-2} | 0 0 0 0 0 0 0 0 0 0 0 0 y x 0 0 |
               {-2} | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y x |

                             8
o14 : R-module, quotient of R
i15 : prune HH E

o15 = cokernel | y x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | <-- cokernel | y x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | <-- cokernel | y x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
               | 0 0 y x 0 0 0 0 0 0 0 0 0 0 0 0 |              | 0 0 y x 0 0 0 0 0 0 0 0 0 0 0 0 |              | 0 0 y x 0 0 0 0 0 0 0 0 0 0 0 0 |
               | 0 0 0 0 y x 0 0 0 0 0 0 0 0 0 0 |              | 0 0 0 0 y x 0 0 0 0 0 0 0 0 0 0 |              | 0 0 0 0 y x 0 0 0 0 0 0 0 0 0 0 |
               | 0 0 0 0 0 0 y x 0 0 0 0 0 0 0 0 |              | 0 0 0 0 0 0 y x 0 0 0 0 0 0 0 0 |              | 0 0 0 0 0 0 y x 0 0 0 0 0 0 0 0 |
               | 0 0 0 0 0 0 0 0 y x 0 0 0 0 0 0 |              | 0 0 0 0 0 0 0 0 y x 0 0 0 0 0 0 |              | 0 0 0 0 0 0 0 0 y x 0 0 0 0 0 0 |
               | 0 0 0 0 0 0 0 0 0 0 y x 0 0 0 0 |              | 0 0 0 0 0 0 0 0 0 0 y x 0 0 0 0 |              | 0 0 0 0 0 0 0 0 0 0 y x 0 0 0 0 |
               | 0 0 0 0 0 0 0 0 0 0 0 0 y x 0 0 |              | 0 0 0 0 0 0 0 0 0 0 0 0 y x 0 0 |              | 0 0 0 0 0 0 0 0 0 0 0 0 y x 0 0 |
               | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y x |              | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y x |              | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 y x |
                                                                                                         
      0                                                1                                                0

o15 : ZZdFactorization

If one of the arguments is a module or a ring, it is considered as a factorization concentrated in degree 0.

i16 : E = Hom(C, S^2)

       12      12      12
o16 = S   <-- S   <-- S
                       
      0       1       0

o16 : ZZdFactorization
i17 : isdFactorization E

              3    3    3
o17 = (true, a  + b  + c )

o17 : Sequence

There is a simple relationship between Hom factorizations and shifts. Specifically, shifting the first argument is the same as the negative shift of the result. But shifting the second argument is only the same as the positive shift of the result up to a sign.

i18 : Hom(C[3], C) == D[-3]

o18 = false
i19 : Hom(C, C[-2]) == D[-2]

o19 = true
i20 : Hom(C, C[-3]) != D[-3]

o20 = true

Specific maps and morphisms between complexes can be obtained with the homomorphism command.

Because the Hom factorization can be regarded as the totalization of a d-periodic double complex, each term comes with pairs of indices, labelling the summands.

i21 : indices D_-1

o21 = {{0, 1}, {1, 0}}

o21 : List
i22 : components D_-1

        36   36
o22 = {S  , S  }

o22 : List
i23 : indices D_-2

o23 = {{0, 0}, {1, 1}}

o23 : List
i24 : components D_-2

        36   36
o24 = {S  , S  }

o24 : List

See also

Ways to use this method:

  • Hom(Module,ZZdFactorization)
  • Hom(Ring,ZZdFactorization)
  • Hom(ZZdFactorization,Module)
  • Hom(ZZdFactorization,Ring)
  • Hom(ZZdFactorization,ZZdFactorization) -- the ZZ/d-graded homomorphism factorization between two ZZ/d-graded factorizations

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