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

# nullHomotopy(ZZdFactorizationMap) -- a map which is a candidate for being a null homotopy

- Function: nullHomotopy
- Usage:
    `h = nullHomotopy f`
- Inputs:
  - f, a map of ZZ/d-graded factorizations,
- Outputs:
  - h, a map of ZZ/d-graded factorizations,

## Description

A map of ZZ/d-graded factorizations $f \colon C \to D$ is null-homotopic if there exists a map of factorizations $h : C \to D$ of degree $\deg(f)+1$, such that we have the equality \[ f = \operatorname{dd}^D h + (-1)^{\deg(f)} h \operatorname{dd}^C. \]

As a first example, we verify that the identity map on the "trivial" factorization is nullhomotopic.

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

    i2 : C = trivialMF(S^2, a^3+b^3)

          2      2      2
    o2 = S  <-- S  <-- S

         0      1      0

    o2 : ZZdFactorization

    i3 : h = map(C, C, i -> if i == 1 then id_(S^2), Degree => 1)

              2         2
    o3 = 1 : S  <----- S  : 0
                   0

              2               2
         0 : S  <----------- S  : 1
                   | 1 0 |
                   | 0 1 |

    o3 : ZZdFactorizationMap

    i4 : isWellDefined h

    o4 = true

    i5 : assert isNullHomotopyOf(h, id_C)

    i6 : assert isNullHomotopic id_C

A random map of factorizations, arising as a boundary in the associated Hom complex, is automatically null homotopic. We use the method nullHomotopy to construct a witness and verify it is a null homotopy.

    i7 : D = randomTailMF(a^3+b^3, 1,2,4)

          2      2      2
    o7 = S  <-- S  <-- S

         0      1      0

    o7 : ZZdFactorization

    i8 : D.dd

              2                                 2
    o8 = 1 : S  <----------------------------- S  : 0
                   {1} | -26b2 a2-3ab+32b2 |
                   {2} | a+3b  3a+8b       |

              2                              2
         0 : S  <-------------------------- S  : 1
                   | -3a-8b a2-3ab+32b2 |
                   | a+3b   26b2        |

    o8 : ZZdFactorizationMap

    i9 : f = randomFactorizationMap(D, D[1], Boundary => true)

              2                                   2
    o9 = 0 : S  <------------------------------- S  : 0
                   | -19a-38b -7a2+33ab-37b2 |
                   | 19a-20b  -5a2+35ab-30b2 |

              2                                            2
         1 : S  <---------------------------------------- S  : 1
                   {1} | 5a2-35ab-48b2 -4a2+24ab-42b2 |
                   {2} | 22a-11b       28a-39b        |

    o9 : ZZdFactorizationMap

    i10 : assert isNullHomotopic f

    i11 : h = nullHomotopy f

               2                           2
    o11 = 1 : S  <----------------------- S  : 0
                    {1} | -10 -29a-8b |
                    {2} | 0   -22     |

               2                   2
          0 : S  <--------------- S  : 1
                    | -29 -38 |
                    | -24 0   |

    o11 : ZZdFactorizationMap

    i12 : assert isNullHomotopyOf(h, f)

When a map of factorizations is not null-homotopic, this method nevertheless returns a map $h$ of factorizations, having the correct source, target and degree, but cannot be a null homotopy.

    i13 : g = randomFactorizationMap(D, D[1])

               2                                    2
    o13 = 0 : S  <-------------------------------- S  : 0
                    | -16a+39b 19a2-47ab-39b2  |
                    | 21a+34b  -18a2-13ab-43b2 |

               2         2
          1 : S  <----- S  : 1
                    0

    o13 : ZZdFactorizationMap

    i14 : assert not isNullHomotopic g

    i15 : h' = nullHomotopy g

               2                    2
    o15 = 1 : S  <---------------- S  : 0
                    {1} | 0 0  |
                    {2} | 0 19 |

               2         2
          0 : S  <----- S  : 1
                    0

    o15 : ZZdFactorizationMap

    i16 : assert isWellDefined h'

    i17 : assert(degree h' === degree g + 1)

    i18 : assert not isNullHomotopyOf(h', g)

## Caveat

The output is only a null homotopy when one exists.

## See also

- Making maps between factorizations -- information about the basic constructors
- isNullHomotopic(ZZdFactorizationMap) -- whether a map of ZZ/d-graded factorizations is null-homotopic
- isNullHomotopyOf(ZZdFactorizationMap,ZZdFactorizationMap) -- whether the first map of ZZ/d-graded factorizations is a null homotopy for the second
- randomFactorizationMap -- a random map of ZZ/d-graded factorizations
- Hom(ZZdFactorization,ZZdFactorization) -- the ZZ/d-graded homomorphism factorization between two ZZ/d-graded factorizations

## Ways to use this method:

- nullHomotopy(ZZdFactorizationMap) -- a map which is a candidate for being a null homotopy

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/MatrixFactorizations/MatrixFactorizationsDOC.m2:5116:0.