# isSNC -- whether the divisor is simple normal crossings

## Synopsis

• Usage:
isSNC( D )
• Inputs:
• Optional inputs:
• IsGraded => , default value false, specify that we should do this computation on a projective algebraic variety
• Outputs:

## Description

This function returns true if the divisor is simple normal crossings, this includes checking that the ambient ring is regular.

 i1 : R = QQ[x, y, z] / ideal(x * y - z^2 ); i2 : D = divisor({1, -2}, {ideal(x, z), ideal(y, z)}) o2 = -2*Div(y, z) + Div(x, z) o2 : WeilDivisor on R i3 : isSNC( D ) o3 = false
 i4 : R = QQ[x, y]; i5 : D = divisor(x*y*(x+y)) o5 = Div(x+y) + Div(y) + Div(x) o5 : WeilDivisor on R i6 : isSNC( D ) o6 = false
 i7 : R = QQ[x, y]; i8 : D = divisor(x*y*(x+1)) o8 = Div(y) + Div(x) + Div(x+1) o8 : WeilDivisor on R i9 : isSNC( D ) o9 = true

If IsGraded is set to true (default false), then the divisor is treated as if it is on the $Proj$ of the ambient ring. In particular, non-SNC behavior at the origin is ignored.

 i10 : R = QQ[x, y, z] / ideal(x * y - z^2 ); i11 : D = divisor({1, -2}, {ideal(x, z), ideal(y, z)}) o11 = Div(x, z) + -2*Div(y, z) o11 : WeilDivisor on R i12 : isSNC( D, IsGraded => true ) o12 = true
 i13 : R = QQ[x, y]; i14 : D = divisor(x*y*(x+y)) o14 = Div(x+y) + Div(y) + Div(x) o14 : WeilDivisor on R i15 : isSNC( D, IsGraded => true ) o15 = true
 i16 : R = QQ[x,y,z]; i17 : D = divisor(x*y*(x+y)) o17 = Div(x) + Div(x+y) + Div(y) o17 : WeilDivisor on R i18 : isSNC( D, IsGraded => true) o18 = false

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.

## Ways to use isSNC :

• "isSNC(BasicDivisor)"

## For the programmer

The object isSNC is .