This package provides for the truncation of a graded ring, or a graded module or ideal over a graded ring. Truncation is functorial: it can be applied to matrices as well, and the truncation of a composition of maps is the composition of the truncations.
If R is a ℤ^{r}-graded ring, and M is a graded module, and D is a (finite) set of degrees in ℤ^{r}, then the truncation truncate(D, M) is
where the sum is over all m ∈ℤ^{r}, which are component-wise greater than at least one element d ∈D.
This definition makes the truncation into a submodule in the case when all degrees are non-negative. In the case when some degree components are negative, this is likely not a submodule.
This package handles the multi-graded case correctly, at least for the case of non-negative degree vectors for the variables, and the truncate function is functorial (see truncate(List,Matrix)).
The behavior of truncate has changed as of Macaulay2 version 1.13. This is a (potentially) breaking change. Before, it used a less useful notion of truncation, involving the heft vector, and was often not what one wanted in the multi-graded case. Additionally, in the tower ring case, when the coefficient ring had variables of nonzero degree, sometimes incorrect answers resulted.
This documentation describes version 0.7 of Truncations.
The source code from which this documentation is derived is in the file Truncations.m2.