# isQuasiLinear -- checks whether degrees in the resolution of a truncation are at most those of the irrelevant ideal

## Synopsis

• Usage:
isQuasiLinear(d,M)
• Inputs:
• d, a list, a multidegree at which to truncate the module
• M, , a module over a multigraded ring $S$
• Optional inputs:
• IrrelevantIdeal => an ideal, default value null, the irrelevant ideal of $S$
• Outputs:

## Description

This function truncates the module $M$ at degree $d$ and compares the twists appearing in its resolution with those appearing in the resolution of $S/B$, where $S$ is the ring of $M$ and $B$ the irrelevant ideal. If for some $i$ the i-th step of the resolution contains a summand $S(-c-d)$ such that no summand of the i-th step of the resolution of $S/B$ has generator of degree greater than $c$ then the output will be false.

If the option IrrelevantIdeal is not specified it will be calculated assuming that $S$ is the coordinate ring of a product of projective spaces.

 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 : d = {4,3,2} o4 = {4, 3, 2} o4 : List i5 : isLinearComplex res prune truncate({4,3,2},M) o5 = false i6 : isQuasiLinear(d,M) o6 = true

The condition comes from Theorem 2.9 in Berkesch, Erman, and Smith's paper "Virtual Resolutions for a Product of Projective Spaces." The ChainComplex and BettiTally usages take the resolution of the truncation (or some other virtual resolution) directly.

## Caveat

If the resolution of the truncation is longer than the resolution of $S/B$ then isQuasiLinear will return false.

## Ways to use isQuasiLinear :

• "isQuasiLinear(BettiTally)"
• "isQuasiLinear(ChainComplex)"
• "isQuasiLinear(List,Module)"

## For the programmer

The object isQuasiLinear is .