# 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
• Outputs:

## Description

Given an ideal, a module, or a free resolution, this function keeps only the summands in the minimal graded free resolution generated in degrees in L. 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 [BES]. See Algorithm 3.4 of [BES,arXiv:1703.07631] for further details.

For example, consider the ideal of three points in 1×ℙ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 1×ℙ1.

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

Finally, we check that the result is indeed virtual.

 ```i7 : isVirtual(J,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)