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.