This package provides methods for truncation of a graded ring, or a graded module or ideal over a graded ring (see truncate(List,Module)). Truncation is functorial: it can be applied to maps of modules as well, and the truncation of a composition of maps is the composition of the truncations (see truncate(List,Matrix)).
Let $S$ be a $\ZZ^r$graded ring whose variables have nonnegative degrees and $M$ be a graded $S$module. Then for a finite subset of degrees $L\subset\ZZ^r$ the method truncate(L, M) computes $$M_{\ge L} = \bigoplus_{m\in L+\NN^r} M_m,$$ where the sum is taken over all degrees $m \in \ZZ^r$ which are componentwise greater than or equal to some degree $d\in L$. In this case the truncation is a submodule of $M$.


More generally, let $S$ be the total coordinate ring of a simplicial toric variety $X$ with Picard group $\operatorname{Pic} X$. Then for a finite subset $L\subset\operatorname{Pic} X$, the truncation $F_{\ge L}$ of a free module $F$ may be defined as the submodule generated by $$F_{\ge L} = \bigoplus_{m\in L+\operatorname{Nef} X} F_m,$$ where $\operatorname{Nef} X$ is the semigroup of nef line bundles in $\operatorname{Pic} X$ (c.f. Definition 5.1 in [MS04]). Then for a graded $S$module $M$ with presentation $0 \gets M \gets G \gets H,$ where $G$ and $H$ are free modules, the truncation $M_{\ge L}$ is the $S$module with presentation $$0 \gets M_{\ge L} \gets G_{\ge L} \gets H_{\ge L}.$$ Note that $M_{\ge L}$ is not a submodule of $M$ in general, but exact sequences are preserved and since $M/M_{\ge L}$ is annihilated by a power of the irrelevant ideal of $S$, a module and its truncation define the same sheaf.






For the most general case, if $S$ is a $\ZZ^r$graded ring where the degree components of variables may be negative, the result is the same as the above but we fix the nef cone to be the positive orthant $\NN^r$.




The polyhedral algorithms implemented in this package correctly handle many cases. The behavior of truncate changed as of Macaulay2 version 1.13 to support exterior algebras, and again in Macaulay2 version 1.19 to support Cox rings of simplicial normal toric varieties.
Lauren Cranton Heller contributed to the code and documentation for this package.
This documentation describes version 1.0 of Truncations.
The source code from which this documentation is derived is in the file Truncations.m2. The auxiliary files accompanying it are in the directory Truncations/.
The object Truncations is a package.