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 C are 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 ℙ1 ×ℙ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 arXiv:1904.05994.
i10 : isVirtual(B,vres,Strategy=>Determinantal) o10 = true |