Given two rational divisors, this method returns true if they linearly equivalent after clearing denominators. Otherwise it returns false. It does not check if a large enough multiple makes them linearly equivalent.
i1 : R = QQ[x, y, z] / ideal(x * y - z^2); |
i2 : D = divisor({1/2, 3/4}, {ideal(x, z), ideal(y, z)}, CoeffType => QQ) o2 = 3/4*Div(y, z) + 1/2*Div(x, z) o2 : QWeilDivisor on R |
i3 : E = divisor({3/4, 5/2}, {ideal(y, z), ideal(x, z)}, CoeffType => QQ) o3 = 3/4*Div(y, z) + 5/2*Div(x, z) o3 : QWeilDivisor on R |
i4 : isQLinearEquivalent(D, E) o4 = true |
In the above ring, every pair of divisors is Q-linearly equivalent because the Weil divisor class group is isomorphic to Z/2.
If IsGraded=>true (the default is false), then it treats the divisors as if they are divisors on the Proj of their ambient ring.
i5 : R = QQ[x, y, z] / ideal(x * y - z^2); |
i6 : D = divisor({1/2, 3/4}, {ideal(x, z), ideal(y, z)}, CoeffType => QQ) o6 = 1/2*Div(x, z) + 3/4*Div(y, z) o6 : QWeilDivisor on R |
i7 : E = divisor({3/2, -1/4}, {ideal(y, z), ideal(x, z)}, CoeffType => QQ) o7 = -1/4*Div(x, z) + 3/2*Div(y, z) o7 : QWeilDivisor on R |
i8 : isQLinearEquivalent(D, E, IsGraded => true) o8 = true |
i9 : isQLinearEquivalent(3*D, E, IsGraded => true) o9 = false |