# virtualOfPair -- creates a virtual resolution from a free resolution by keeping only summands of specified degrees

## Synopsis

• Usage:
virtualOfPair(I, L)
virtualOfPair(M, L)
virtualOfPair(C, L)
• Inputs:
• I, an ideal, ideal over multigraded ring
• M, , module over multigraded ring
• C, , free resolution of a module
• L, a list, multidegrees of summands to keep
• Optional inputs:
• LengthLimit => ..., default value infinity, stop when the virtual resolution reaches this length
• Outputs:

## Description

Given an ideal I or module M and a list of multidegrees L, this function produces a chain complex by iteratively computing syzygies in degrees in L. In particular, if the list L contains only one element which is in the multigraded regularity of M plus the dimension vector, the output will be the virtual resolution of a pair as defined in Section 1 of [BES20]. See Algorithm 3.4 of [BES20, arXiv:1703.07631] for further details.

If a resolution for the object exists in the cache or when the input is a chain complex C, virtualOfPair uses this information by simply removing the summands in degrees not in L. This option is useful when a minimal free resolution of M can be more efficiently computed in the engine or is already known. Otherwise, induced Schreyer orders are used to speed up the computation of syzygies. Note that this speedup is often very significant.

When L contains more than one multidegree, summands with degrees in at least one member of L are kept.

For example, consider the ideal of three points in $\PP^1\times\PP^1$.

 i1 : X = toricProjectiveSpace(1) ** toricProjectiveSpace(1); i2 : S = ring X; B = ideal X; o3 : Ideal of S i4 : J = saturate(intersect( ideal(x_1 - 1*x_0, x_3 - 4*x_2), ideal(x_1 - 2*x_0, x_3 - 5*x_2), ideal(x_1 - 3*x_0, x_3 - 6*x_2)), B) 3 2 2 3 2 o4 = ideal (3x x + x x - x x , 120x - 74x x + 15x x - x , 120x x - 0 2 1 2 0 3 2 2 3 2 3 3 1 2 ------------------------------------------------------------------------ 2 2 2 2 2 3 34x x x - 2x x + 3x x , 40x x + 6x x - 13x x x - 3x x , 6x - 1 2 3 0 3 1 3 1 2 0 3 0 1 3 1 3 0 ------------------------------------------------------------------------ 2 2 3 11x x + 6x x - x ) 0 1 0 1 1 o4 : Ideal of S

We can now compute its minimal free resolution and a virtual resolution. One can show that $(2,0)$ is in the multigraded regularity of this example. Thus, since we want to compute a virtual resolution we apply virtualOfPair to the element $(3,1)$ since $(3,1)=(2,0)+(1,1)$ and $(1,1)$ is the dimension vector for $\PP^1\times\PP^1$.

 i5 : minres = res J 1 5 6 2 o5 = S <-- S <-- S <-- S <-- 0 0 1 2 3 4 o5 : ChainComplex i6 : vres = virtualOfPair(J, {{3,1}}) --(3,1) = (2,0) + (1,1) 1 3 2 o6 = S <-- S <-- S <-- 0 <-- 0 0 1 2 3 4 o6 : ChainComplex

Notice that the virtual resolution of the pair $(S^1/J, (2,0))$ is shorter and thinner than the graded minimal free resolution of $S^1/J$.

Finally, we check that the result is indeed virtual.

 i7 : isVirtual(B, vres) o7 = true

## Caveat

Given an element of the multigraded regularity, one must add the dimension vector of the product of projective spaces for this to return a virtual resolution.

## Ways to use virtualOfPair :

• "virtualOfPair(ChainComplex,List)"
• "virtualOfPair(Ideal,List)"
• "virtualOfPair(Module,List)"

## For the programmer

The object virtualOfPair is .