next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Divisor :: isQCartier

isQCartier -- whether m times a divisor is Cartier for any m from 1 to a fixed positive integer n1.

Synopsis

Description

Check whether $m$ times a Weil or Q-divisor $D$ is Cartier for each $m$ from 1 to a fixed positive integer n1 (if the divisor is a QWeilDivisor, it can search slightly higher than n1). If m * D1 is Cartier, it returns m. If it fails to find an m, it returns 0.

i1 : R = QQ[x, y, z] / ideal(x * y - z^2 );
i2 : D1 = divisor({1, 2}, {ideal(x, z), ideal(y, z)})

o2 = 2*Div(y, z) + Div(x, z)

o2 : WeilDivisor on R
i3 : D2 = divisor({1/2, 3/4}, {ideal(y, z), ideal(x, z)}, CoefficientType => QQ)

o3 = 1/2*Div(y, z) + 3/4*Div(x, z)

o3 : QWeilDivisor on R
i4 : isQCartier(10, D1)

o4 = 2
i5 : isQCartier(10, D2)

o5 = 8
i6 : R = QQ[x, y, u, v] / ideal(x * y - u * v);
i7 : D1 = divisor({1, 2}, {ideal(x, u), ideal(y, v)})

o7 = Div(x, u) + 2*Div(y, v)

o7 : WeilDivisor on R
i8 : D2 = divisor({1/2, -3/4}, {ideal(y, u), ideal(x, v)}, CoefficientType => QQ)

o8 = 1/2*Div(y, u) + -3/4*Div(x, v)

o8 : QWeilDivisor on R
i9 : isQCartier(10, D1)

o9 = 0
i10 : isQCartier(10, D2)

o10 = 0

If the option IsGraded is set to true (by default it is false), then it treats the divisor as a divisor on the $Proj$ of their ambient ring.

i11 : R = QQ[x, y, z] / ideal(x * y - z^2 );
i12 : D1 = divisor({1, 2}, {ideal(x, z), ideal(y, z)})

o12 = 2*Div(y, z) + Div(x, z)

o12 : WeilDivisor on R
i13 : D2 = divisor({1/2, 3/4}, {ideal(y, z), ideal(x, z)}, CoefficientType => QQ)

o13 = 1/2*Div(y, z) + 3/4*Div(x, z)

o13 : QWeilDivisor on R
i14 : isQCartier(10, D1, IsGraded => true)

o14 = 1
i15 : isQCartier(10, D2, IsGraded => true)

o15 = 4

The output value of this function is stored in the divisor's cache with the value of the last IsGraded option. If you change the IsGraded option, the value will be recomputed.

See also

Ways to use isQCartier :

For the programmer

The object isQCartier is a method function with options.