Macaulay2 » Documentation
Packages » MatrixFactorizations :: higherHomotopyFactorization
next | previous | forward | backward | up | index | toc

higherHomotopyFactorization -- Constructs the matrix factorization associated with a system of higher homotopies

Description

For each sequence of elements $f_1 , \dots , f_c \in S$ annihilating the homology of a complex, there is an associated system of higher homotopies that can be used to construct a matrix factorization of $f_1 t_1 + f_2 t_2 + \cdots + f_c t_c \in S[t_1, \dots , t_c]$. When $c= 1$, this simply recovers a matrix factorization of $f = f_1$. This function uses existing commands from the CompleteIntersectionResolutions package.

i1 : S = ZZ/101[x,y,z]

o1 = S

o1 : PolynomialRing
i2 : K = koszulComplex vars S

      1      3      3      1
o2 = S  <-- S  <-- S  <-- S
                           
     0      1      2      3

o2 : Complex
i3 : L = {x^2,y^2,z^2}

       2   2   2
o3 = {x , y , z }

o3 : List
i4 : H = higherHomotopyFactorization(L, K)

                4                4                4
o4 = (S[t ..t ])  <-- (S[t ..t ])  <-- (S[t ..t ])
         1   3            1   3            1   3
                                        
     0                1                0

o4 : ZZdFactorization
i5 : H.dd

                    4                                                 4
o5 = 1 : (S[t ..t ])  <----------------------------------- (S[t ..t ])  : 0
             1   3       {0, 1} | xt_1 -y   -z    0    |       1   3
                         {0, 1} | yt_2 x    0     -z   |
                         {0, 1} | zt_3 0    x     y    |
                         {0, 3} | 0    zt_3 -yt_2 xt_1 |

                    4                                                4
     0 : (S[t ..t ])  <---------------------------------- (S[t ..t ])  : 1
             1   3       {0, 0} | x     y     z    0  |       1   3
                         {0, 2} | -yt_2 xt_1  0    z  |
                         {0, 2} | -zt_3 0     xt_1 -y |
                         {0, 2} | 0     -zt_3 yt_2 x  |

o5 : ZZdFactorizationMap
i6 : isdFactorization H

             2      2      2
o6 = (true, x t  + y t  + z t )
               1      2      3

o6 : Sequence
i7 : H' = higherHomotopyFactorization(x^3+y^3+z^3, K)

      4      4      4
o7 = S  <-- S  <-- S
                    
     0      1      0

o7 : ZZdFactorization
i8 : H'.dd

          4                            4
o8 = 1 : S  <------------------------ S  : 0
               {1} | x2 -y -z  0  |
               {1} | y2 x  0   -z |
               {1} | z2 0  x   y  |
               {3} | 0  z2 -y2 x2 |

          4                             4
     0 : S  <------------------------- S  : 1
               {0} | x   y   z  0  |
               {2} | -y2 x2  0  z  |
               {2} | -z2 0   x2 -y |
               {2} | 0   -z2 y2 x  |

o8 : ZZdFactorizationMap

The terms of the higher homotopies can be accessed from the differentials. For instance, each component of a higher homotopy is a map $C_i \to C_{i+t}$ for some odd integer $t$. The user can access this component of the higher homotopies as follows:

i9 : dH0 = H'.dd_0;

             4      4
o9 : Matrix S  <-- S
i10 : dH1 = H'.dd_1;

              4      4
o10 : Matrix S  <-- S
i11 : dH0_[0]^[1] --the higher homotopy K_0 --> K_1

o11 = {1} | x2 |
      {1} | y2 |
      {1} | z2 |

              3      1
o11 : Matrix S  <-- S
i12 : dH0_[2]^[3] --the higher homotopy K_2 --> K_3

o12 = {3} | z2 -y2 x2 |

              1      3
o12 : Matrix S  <-- S
i13 : dH0_[2]^[1] --the original differential of the Koszul complex

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

              3      3
o13 : Matrix S  <-- S
i14 : dH1_[1]^[2] --the higher homotopy K_1 --> K_2

o14 = {2} | -y2 x2  0  |
      {2} | -z2 0   x2 |
      {2} | 0   -z2 y2 |

              3      3
o14 : Matrix S  <-- S

Note that the construction of higher homotopies does not require that the starting resolution is finite. One can attempt to build factorizations from any complex as long as the ring elements annihilate the homology:

i15 : Q = ZZ/101[x,y]

o15 = Q

o15 : PolynomialRing
i16 : K = koszulComplex vars Q;
i17 : C = complex {K.dd_1, map(source K.dd_1, target K.dd_2, K.dd_2*K.dd_1),  K.dd_2}

       1      2      2      1
o17 = Q  <-- Q  <-- Q  <-- Q
                            
      0      1      2      3

o17 : Complex
i18 : isWellDefined C

o18 = true
i19 : Cn = higherHomotopyFactorization(x^3+y^3, C)

       3      3      3
o19 = Q  <-- Q  <-- Q
                     
      0      1      0

o19 : ZZdFactorization
i20 : Cn.dd

           3                          3
o20 = 1 : Q  <---------------------- Q  : 0
                {1} | x2 -xy -y2 |
                {1} | y2 x2  xy  |
                {2} | xy -y2 x2  |

           3                       3
      0 : Q  <------------------- Q  : 1
                {0} | x  y 0  |
                {1} | 0  x -y |
                {1} | -y 0 x  |

o20 : ZZdFactorizationMap
i21 : Cn.dd^2

           3                                 3
o21 = 0 : Q  <----------------------------- Q  : 0
                {0} | x3+y3 0     0     |
                {1} | 0     x3+y3 0     |
                {1} | 0     0     x3+y3 |

           3                                 3
      1 : Q  <----------------------------- Q  : 1
                {1} | x3+y3 0     0     |
                {1} | 0     x3+y3 0     |
                {2} | 0     0     x3+y3 |

o21 : ZZdFactorizationMap

This function can also be used to construct matrix factor

See also

Ways to use higherHomotopyFactorization:

  • higherHomotopyFactorization(List,Complex)
  • higherHomotopyFactorization(RingElement,Complex)

For the programmer

The object higherHomotopyFactorization is a method function.


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