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

## Description

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 non-negative 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 component-wise greater than or equal to some degree $d\in L$. In this case the truncation is a submodule of $M$.

 i1 : R = ZZ/101[a..d, Degrees => {1,2,3,4}]; i2 : truncate(4, ideal"a3,b3") 4 3 3 3 3 o2 = ideal (a , a b, a c, b , a d) o2 : Ideal of R

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.

 i3 : needsPackage "NormalToricVarieties"; i4 : dP6 = smoothFanoToricVariety(2, 4); i5 : S = ring dP6; i6 : M = S^{-{0,0,1,0}}; i7 : N = truncate({0,0,0,0}, M) o7 = image {0, 0, 1, 0} | x_4 x_2 | 1 o7 : S-module, submodule of S i8 : N == coker truncate({0,0,0,0}, presentation M) o8 = true

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$.

 i9 : R = ZZ/101[a..d, Degrees => {2:{1,0},{0,1},{-3,1}}]; i10 : M = R^1/ideal d o10 = cokernel | d | 1 o10 : R-module, quotient of R i11 : N = truncate({0,0}, M) o11 = cokernel | b3d ab2d a2bd a3d | 1 o11 : R-module, quotient of R i12 : isSubset(M, N) o12 = false

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.

## Contributors

Lauren Cranton Heller contributed to the code and documentation for this package.

## References

• [MS04]: Maclagan and Smith, Multigraded Castelnuovo-Mumford Regularity (see arXiv:math/0305214).

• basis -- basis or generating set of all or part of a ring, ideal or module

## Version

This documentation describes version 1.0 of Truncations.

## Source code

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/.

## Exports

• Methods
• truncate(List,Matrix) -- truncation of a map of free modules
• "truncate(ZZ,Matrix)" -- see truncate(List,Matrix) -- truncation of a map of free modules
• "truncate(List,Ideal)" -- see truncate(List,Module) -- truncation of the graded ring, ideal or module at a specified degree or set of degrees
• truncate(List,Module) -- truncation of the graded ring, ideal or module at a specified degree or set of degrees
• "truncate(List,Ring)" -- see truncate(List,Module) -- truncation of the graded ring, ideal or module at a specified degree or set of degrees
• "truncate(ZZ,Ideal)" -- see truncate(List,Module) -- truncation of the graded ring, ideal or module at a specified degree or set of degrees
• "truncate(ZZ,Module)" -- see truncate(List,Module) -- truncation of the graded ring, ideal or module at a specified degree or set of degrees
• "truncate(ZZ,Ring)" -- see truncate(List,Module) -- truncation of the graded ring, ideal or module at a specified degree or set of degrees

## For the programmer

The object Truncations is .