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

isCartier -- whether a Weil divisor is Cartier

Synopsis

Description

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 = 2*Div(x, u) + -3*Div(y, v)

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 = 2*Div(x, u) + -3*Div(y, v)

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 = Div(x, z) + 2*Div(y, z)

o14 : WeilDivisor on R
i15 : isCartier(D, IsGraded => true)

o15 = true

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 isCartier :

For the programmer

The object isCartier is a method function with options.