This function returns true if the divisor is effective (all coefficients nonnegative), otherwise it returns false.
i1 : R = ZZ/31[x, y, u, v] / ideal(x * y - u * v); |
i2 : D1 = divisor({1, -2, 3, -4}, {ideal(x, u), ideal(x, v), ideal(y, u), ideal(y, v)}) o2 = -4*Div(y, v) + Div(x, u) + -2*Div(x, v) + 3*Div(y, u) o2 : WeilDivisor on R |
i3 : D2 = divisor({1, 39, 5, 27}, {ideal(x, v), ideal(y, v), ideal(x, u), ideal(x, u)}) o3 = Div(x, v) + 39*Div(y, v) + 32*Div(x, u) o3 : WeilDivisor on R |
i4 : isEffective( D1 ) o4 = false |
i5 : isEffective( D2 ) o5 = true |
The object isEffective is a method function.