Check if a Weil divisor is Cartier. For example, the following divisor is not Cartier
i1 : R = QQ[x, y, u, v] / ideal(x * y - u * v); |
i2 : D = divisor({2, -3}, {ideal(x, u), ideal(y, v)}) o2 = -3*Div(y, v) + 2*Div(x, u) o2 : WeilDivisor on R |
i3 : isCartier( D ) o3 = false |
Neither is this divisor.
i4 : R = QQ[x, y, z] / ideal(x * y - z^2 ); |
i5 : D = divisor({1, 2}, {ideal(x, z), ideal(y, z)}) o5 = 2*Div(y, z) + Div(x, z) o5 : WeilDivisor on R |
i6 : isCartier( D ) o6 = false |
Of course the next divisor is Cartier.
i7 : R = QQ[x, y, z]; |
i8 : D = divisor({1, 2}, {ideal(x), ideal(y)}) o8 = 2*Div(y) + Div(x) o8 : WeilDivisor on R |
i9 : isCartier( D ) o9 = true |
If the option IsGraded is set to true (it is false by default), this will check as if D is a divisor on the Proj of the ambient graded ring.
i10 : R = QQ[x, y, u, v] / ideal(x * y - u * v); |
i11 : D = divisor({2, -3}, {ideal(x, u), ideal(y, v)}) o11 = -3*Div(y, v) + 2*Div(x, u) o11 : WeilDivisor on R |
i12 : isCartier(D, IsGraded => true) o12 = true |
i13 : R = QQ[x, y, z] / ideal(x * y - z^2); |
i14 : D = divisor({1, 2}, {ideal(x, z), ideal(y, z)}) o14 = 2*Div(y, z) + Div(x, z) o14 : WeilDivisor on R |
i15 : isCartier(D, IsGraded => true) o15 = true |