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

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

- Usage:
    `higherHomotopyFactorization(L, C)`
    `higherHomotopyFactorization(f, C)`
- Inputs:
  - L, a list, A list of ring elements, usually a regular sequence
  - C, a complex, A complex whose homology is annihilated by the elements of the list
  - f, a ring element, A single ring element annihilating the homology of C
- Outputs:
  - a ZZ/d graded factorization, The matrix factorization associated with the system of higher homotopies built from C, with respect to the sequence of ring elements

## 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

- Making ZZdFactorizations -- Information about the basic constructors
- toBranchedCover -- Converts a d-fold matrix factorization into a maximal Cohen-Macaulay module over a d-fold branched cover of the potential

## 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 /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/MatrixFactorizations/MatrixFactorizationsDOC.m2:6072:0.