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 ) o1 = R o1 : QuotientRing |
i2 : D = divisor({1, -2}, {ideal(x, z), ideal(y, z)}) o2 = 1*Div(x, z) + -2*Div(y, z) of R o2 : WDiv |
i3 : isSNC( D ) o3 = false |
i4 : R = QQ[x, y] o4 = R o4 : PolynomialRing |
i5 : D = divisor(x*y*(x+y)) o5 = 1*Div(y) + 1*Div(x) + 1*Div(x+y) of R o5 : WDiv |
i6 : isSNC( D ) o6 = false |
i7 : R = QQ[x, y] o7 = R o7 : PolynomialRing |
i8 : D = divisor(x*y*(x+1)) o8 = 1*Div(y) + 1*Div(x) + 1*Div(x+1) of R o8 : WDiv |
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 in ignored. This can make it easier to be simple normal crossings.
i10 : R = QQ[x, y, z] / ideal(x * y - z^2 ) o10 = R o10 : QuotientRing |
i11 : D = divisor({1, -2}, {ideal(x, z), ideal(y, z)}) o11 = 1*Div(x, z) + -2*Div(y, z) of R o11 : WDiv |
i12 : isSNC( D, IsGraded => true ) o12 = true |
i13 : R = QQ[x, y] o13 = R o13 : PolynomialRing |
i14 : D = divisor(x*y*(x+y)) o14 = 1*Div(y) + 1*Div(x) + 1*Div(x+y) of R o14 : WDiv |
i15 : isSNC( D, IsGraded => true ) o15 = true |
i16 : R = QQ[x,y,z] o16 = R o16 : PolynomialRing |
i17 : D = divisor(x*y*(x+y)) o17 = 1*Div(x) + 1*Div(y) + 1*Div(x+y) of R o17 : WDiv |
i18 : isSNC( D, IsGraded => true) o18 = false |