# linearTruncationsBound -- bounds the region where truncations of a module have linear resolutions

## Synopsis

• Usage:
linearTruncationsBound M
• Inputs:
• M, , a multigraded module
• Outputs:
• a list, containing multidegrees where the truncation of M will have a linear resolution

## Description

Using only the multigraded betti numbers of a $\ZZ^r$-graded module $M$, this function identifies multidegrees at which the truncation of $M$ will have a linear minimal resolution (i.e. where the resolution will satisfy isLinearComplex).

 i1 : S = ZZ/101[x_0,x_1,y_0,y_1,z_0,z_1,Degrees=>{{1,0,0},{1,0,0},{0,1,0},{0,1,0},{0,0,1},{0,0,1}}] o1 = S o1 : PolynomialRing i2 : I = ideal(x_0*x_1*y_0*z_0^2, x_1^2*y_0^2*y_1^2*z_0^2, x_0^3*y_0*z_1, x_0^2*x_1*y_1*z_0*z_1, x_0*x_1^2*y_1^2*z_0^3, x_1^3*y_0^2*y_1*z_1^2) 2 2 2 2 2 3 2 2 2 3 3 2 2 o2 = ideal (x x y z , x y y z , x y z , x x y z z , x x y z , x y y z ) 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 o2 : Ideal of S i3 : M = S^1/I o3 = cokernel | x_0x_1y_0z_0^2 x_1^2y_0^2y_1^2z_0^2 x_0^3y_0z_1 x_0^2x_1y_1z_0z_1 x_0x_1^2y_1^2z_0^3 x_1^3y_0^2y_1z_1^2 | 1 o3 : S-module, quotient of S i4 : L = linearTruncationsBound M o4 = {{4, 3, 3}, {4, 4, 2}} o4 : List i5 : apply(L, d -> isLinearComplex res prune truncate(d,M)) o5 = {true, true} o5 : List

The output is a list of the minimal multidegrees $d$ such that the sum of the positive coordinates of $b-d$ is at most $i$ for all degrees $b$ appearing in the i-th step of the resolution of $M$.

 i6 : elapsedTime linearTruncations({{2,2,2},{4,4,4}}, M) -- 6.03636 seconds elapsed o6 = {{4, 3, 3}, {4, 4, 2}} o6 : List i7 : elapsedTime linearTruncationsBound M -- 0.0318198 seconds elapsed o7 = {{4, 3, 3}, {4, 4, 2}} o7 : List

## Caveat

In general linearTruncationsBound will not find the minimal degrees where $M$ has a linear resolution but will be faster than repeatedly truncating $M$.

## See also

• isLinearComplex -- tests whether a complex of graded modules is linear
• linearTruncations -- finds minimal multidegree(s) in a given range where the resolution of a truncated module is linear

## Ways to use linearTruncationsBound :

• "linearTruncationsBound(Module)"

## For the programmer

The object linearTruncationsBound is .