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

# isNullHomotopic(ZZdFactorizationMap) -- whether a map of ZZ/d-graded factorizations is null-homotopic

- Function: isNullHomotopic
- Usage:
    `isNullHomotopic f`
- Inputs:
  - f, a map of ZZ/d-graded factorizations,
- Outputs:
  - a Boolean value, that is true when $f$ is null-homotopic

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

This procedure also works for complex maps whose degree is non-zero.

    i13 : f = randomFactorizationMap(D, D[2], Boundary => true, Degree => 1)

               2                                             2
    o13 = 1 : S  <----------------------------------------- S  : 0
                    {1} | 15a2+38ab+48b2 46a2-44ab-44b2 |
                    {2} | 39b            -22a-32b       |

               2                                   2
          0 : S  <------------------------------- S  : 1
                    | 25a+40b 45a2-41ab+25b2  |
                    | -a+36b  -15a2-38ab+27b2 |

    o13 : ZZdFactorizationMap

    i14 : assert isNullHomotopic f

    i15 : h = nullHomotopy f

               2                  2
    o15 = 0 : S  <-------------- S  : 0
                    | -16 21 |
                    | 39  34 |

               2                           2
          1 : S  <----------------------- S  : 1
                    {1} | 19 -47a-39b |
                    {2} | 0  0        |

    o15 : ZZdFactorizationMap

    i16 : assert isNullHomotopyOf(h, f)

## See also

- Basic invariants and properties -- information about accessing basic features
- isNullHomotopyOf(ZZdFactorizationMap,ZZdFactorizationMap) -- whether the first map of ZZ/d-graded factorizations is a null homotopy for the second
- nullHomotopy(ZZdFactorizationMap) -- a map which is a candidate for being a null homotopy
- 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:

- isNullHomotopic(ZZdFactorizationMap) -- whether a map of ZZ/d-graded factorizations is null-homotopic

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