A ZZ/d-graded factorization F of a ring element f is a ZZ/d-graded complex of free R-modules equipped with a degree -1 (mod d) endomorphism $\text{d}^F$ such that $(\text{d}^F)^d = f * id_F$. In practice, a ZZdFactorization may be visualized as a sequence of R-module maps:
$$F_0 \leftarrow F_1 \leftarrow \cdots \leftarrow F_{d-1}$$
with the caveat that $d^F_0 : F_0 \to F_{d-1}$, since one should count degree modulo d. Any 2-periodic complex may be reinterpretted as a ZZ/2-graded factorization of 0, and likewise a matrix factorization of a ring element f is equivalently a ZZ/2-graded factorization of f. Because of their similarity with complexes, much of the functionality and syntax for this package closely resembles the Complexes package, with some key differences.
Firstly, the output string of a ZZdFactorization and ZZdFactorizationMap is meant to illustrate the periodic nature of a ZZ/d-graded factorization.
|
|
|
|
A ZZ/d-graded factorization does not have a concentration, but instead has a period. The period is a very important invariant, since almost all of the methods implemented depend on the period of the factorization, and will give legitimately different outputs as the period varies.
|
|
|
|
|
As seen in the above, many constructions of factorizations with periods $>2$ require the user to adjoin or specify a primitive root of unity. For an in-depth discussion on all the methods implemented for accomplishing this, see adjoinRoot.
Finally, every factorization (assuming it is well-defined) has an associated potential, which is the polynomial $f$ such that all $d$-fold compositions of the differentials are equal to $f$ times the identity. This potential can be accessed as follows:
|
|
|
|
Much of the syntax and functionality of the types ZZdFactorization and ZZdFactorizationMap are based on current functionalities for the analogous objects in the Complexes package, so there should be essentially no learning curve for users already familiar with working with chain complexes.
This documentation describes version 0.1 of MatrixFactorizations, released August 13, 2025.
If you have used this package in your research, please cite it as follows:
|
The object MatrixFactorizations is a package, defined in MatrixFactorizations.m2, with auxiliary files in MatrixFactorizations/.
The source of this document is in MatrixFactorizations/MatrixFactorizationsDOC.m2:57:0.