next | previous | forward | backward | up | top | index | toc | Macaulay2 website
VirtualResolutions :: isVirtual

isVirtual -- checks whether a chain complex is a virtual resolution



Given the irrelevant ideal irr of a NormalToricVariety and a chain complex C, isVirtual returns true if C is a virtual resolution of some module. If not, it returns false. This is done by checking that the higher homology groups of Care supported on the irrelevant ideal.

If debugLevel is larger than zero, the homological degree where isVirtual fails is printed.

i1 : R = ZZ/101[s,t];
i2 : isVirtual(ideal(s,t),res ideal(t))

o2 = true

Continuing our running example of three points $([1:1],[1:4])$, $([1:2],[1:5])$, and $([1:3],[1:6])$ in $\PP^1 \times \PP^1$, we can check whether the virtual complex we compute below and in other places is in fact virtual.

i3 : Y = toricProjectiveSpace(1)**toricProjectiveSpace(1);
i4 : S = ring Y;
i5 : B = ideal Y;

o5 : Ideal of S
i6 : 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);

o6 : Ideal of S
i7 : minres = res J;
i8 : vres = virtualOfPair(J,{{3,1}});
i9 : isVirtual(B,vres)

o9 = true

Finally, we can also use the Determinantal strategy, which implements Theorem 1.3 of [Loper, arXiv:1904.05994].

i10 : isVirtual(B,vres,Strategy=>Determinantal)

o10 = true

Ways to use isVirtual :

For the programmer

The object isVirtual is a method function with options.