While graded minimal free resolutions are useful for studying quasicoherent sheaves over projective space, when working over a product of projective spaces or, more generally, over smooth projective toric varieties, graded minimal free resolutions over the Cox ring seem too restricted by algebraic structure that is in some sense unimportant geometrically. By allowing a limited amount of homology, virtual resolutions offer a more flexible alternative for studying toric subvarieties when compared to minimal graded free resolutions.

Introduced by Berkesch, Erman, and Smith in *Virtual resolutions for a product of projective spaces* (see arXiv:1703.07631) if *X* is a smooth toric variety, *S* the Cox ring of *X* graded by the Picard group of *X*, and *B⊂S* the irrelevant ideal of *X*, then a virtual resolution of a graded *S*-module *M* is a complex of graded free *S*-modules, which sheafifies to a resolution of the associated sheaf of *M*.

This package provides tools for constructing and studying virtual resolutions for products of projective spaces. In particular, it implements a number of the methods for constructing virtual resolutions for products of projective spaces as introduced by Berkesch, Erman, and Smith. This package also contains methods for constructing curves in *ℙ ^{1}×ℙ^{2}*, as these are a natural source for interesting virtual resolutions.

As a running example, consider three points *([1:1],[1:4])*, *([1:2],[1:5])*, and *([1:3],[1:6])* in *ℙ ^{1} ×ℙ^{1}*.

i1 : X = toricProjectiveSpace(1)**toricProjectiveSpace(1); |

i2 : S = ring X; |

i3 : B = ideal X; o3 : Ideal of S |

i4 : J = saturate(intersect( ideal(x_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); o4 : Ideal of S |

i5 : minres = res J; |

i6 : multigraded betti minres 0 1 2 3 o6 = 0: 1 . . . 2: . ab . . 3: . a3+a2b+ab2+b3 . . 4: . . 2a3b+2a2b2+2ab3 . 5: . . . a3b2+a2b3 o6 : MultigradedBettiTally |

As described in Algorithm 3.4 of Berkesch, Erman, and Smith’s paper, one may construct a virtual resolution of a module from its graded minimal free resolution and an element of the multigraded Castelnuovo-Mumford regularity of the module. (See Maclagan and Smith’s paper *Multigraded Castelnuovo-Mumford Regularity* (arXiv:math/0305214) for the definition of multigraded regularity.) Building on the TateOnProducts package, this package contains a function allowing one to compute the minimal elements of the multigraded Castelnuovo-Mumford regularity of a *B*-saturated module.

Continuing the example from above, we see that *(2,0)* is an element of the multigraded regularity of *S/J*. From this we can compute a virtual resolution of *S/J*.

i7 : multigradedRegularity(X, J) o7 = {{0, 2}, {1, 1}, {2, 0}} o7 : List |

i8 : vres = virtualOfPair(J, {{3,1}}) 1 3 2 o8 = S <-- S <-- S <-- 0 0 1 2 3 o8 : ChainComplex |

i9 : multigraded betti vres 0 1 2 o9 = 0: 1 . . 2: . ab . 3: . a3+a2b . 4: . . 2a3b o9 : MultigradedBettiTally |

Notice that this virtual resolution of *S/J* is much shorter and thinner than the graded minimal free resolution of *S/J*. This is a common theme: virtual resolutions tend to be much shorter and less wide than graded minimal free resolutions over the Cox ring, but they still preserve geometric information about *S/J*.

In addition to the functions highlighted above, the VirtualResolutions package contains a number of other tools for constructing and studying virtual resolutions. In particular, there are functions to construct virtual resolutions for zero dimensionsal subschemes, to check whether a complex is a virtual resolution, and to construct curves in *ℙ ^{1}×ℙ^{2}*.

The following people have generously contributed code or worked on our code.

- Functions and commands
- curveFromP3toP1P2 -- creates the ideal of a curve in P^1xP^2 from the ideal of a curve in P^3
- findGensUpToIrrelevance -- creates a list of subsets of the minimal generators that generate a given ideal up to saturation
- isVirtual -- checks if a chain complex is a virtual resolution of a given module
- multigradedRegularity -- computes the minimal elements of the multigraded regularity of a module over a multigraded ring
- randomCurveP1P2 -- creates the ideal of a random curve in P^1xP^2
- randomMonomialCurve -- creates the ideal of a random monomial curve of degree (d,e) in P^1xP^2
- randomRationalCurve -- creates the ideal of a random rational curve of degree (d,e) in P^1xP^2
- resolveViaFatPoint -- returns a virtual resolution of a zero-dimensional scheme
- virtualOfPair -- creates a virtual resolution from a free resolution by keeping only summands of specified degrees

- Symbols
- Attempt -- limit number of attempts for randomCurveP1P2
- GeneralElements -- combines generators of same degree into a general linear combination
- PreserveDegree -- Determines if curve is disjoint from base loci