# Truncations -- truncations of graded ring, ideals and modules

## Description

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 $\ZZ^r$-graded ring, and $M$ is a graded module, and $D$ is a (finite) set of degrees in $\ZZ^r$, then the truncation truncate(D, M) is $$M_{\ge D} = \oplus_{m} M_m,$$ where the sum is over all $m \in \ZZ^r$, which are component-wise greater than at least one element $d \in 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)).

## Caveat

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.

## Version

This documentation describes version 0.7 of Truncations.

## Source code

The source code from which this documentation is derived is in the file Truncations.m2.

## For the programmer

The object Truncations is .