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) o1 = R o1 : QuotientRing |
i2 : D = divisor({2, -3}, {ideal(x, u), ideal(y, v)}) o2 = 2*Div(x, u) + -3*Div(y, v) of R o2 : WDiv |
i3 : isCartier( D ) o3 = false |
Neither is this divisor.
i4 : R = QQ[x, y, z] / ideal(x * y - z^2 ) o4 = R o4 : QuotientRing |
i5 : D = divisor({1, 2}, {ideal(x, z), ideal(y, z)}) o5 = 1*Div(x, z) + 2*Div(y, z) of R o5 : WDiv |
i6 : isCartier( D ) o6 = false |
Of course the next divisor is Cartier.
i7 : R = QQ[x, y, z] o7 = R o7 : PolynomialRing |
i8 : D = divisor({1, 2}, {ideal(x), ideal(y)}) o8 = 1*Div(x) + 2*Div(y) of R o8 : WDiv |
i9 : isCartier( D ) o9 = true |
If IsGraded == 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) o10 = R o10 : QuotientRing |
i11 : D = divisor({2, -3}, {ideal(x, u), ideal(y, v)}) o11 = 2*Div(x, u) + -3*Div(y, v) of R o11 : WDiv |
i12 : isCartier(D, IsGraded => true) o12 = true |
i13 : R = QQ[x, y, z] / ideal(x * y - z^2) o13 = R o13 : QuotientRing |
i14 : D = divisor({1, 2}, {ideal(x, z), ideal(y, z)}) o14 = 1*Div(x, z) + 2*Div(y, z) of R o14 : WDiv |
i15 : isCartier(D, IsGraded => true) o15 = true |