Macaulay2 » Documentation
Packages » FrobeniusThresholds :: isSimpleNormalCrossing
next | previous | forward | backward | up | index | toc

isSimpleNormalCrossing -- whether a polynomial is a product of factors that are in simple normal crossing

Synopsis

Description

Let $f$ be a polynomial or an object of class Product representing a factorization of a polynomial $f$. The function isSimpleNormalCrossing returns true if the distinct factors of $f$ are in simple normal crossing, or in other words, if at each point those factors, locally analytically, form part of a regular system of parameters.

i1 : R = ZZ/7[x,y,z];
i2 : isSimpleNormalCrossing(x^3*y^2)

o2 = true
i3 : isSimpleNormalCrossing(x^2 - y^2)

o3 = true
i4 : isSimpleNormalCrossing(x*y*(x - y))

o4 = false
i5 : isSimpleNormalCrossing(x^2 - y*z)

o5 = false

The option AtOrigin (default value true) is used to specify whether to work at the origin (when true) or globally (when false).

i6 : R = QQ[x,y,z];
i7 : f = (y - (x - 1)^2)*y^2; --SNC at the origin, but not globally
i8 : isSimpleNormalCrossing(f)

o8 = true
i9 : isSimpleNormalCrossing(f, AtOrigin => false)

o9 = false
i10 : g = (y - 1)^2 + (x - 7)^2; --doesn't even pass through the origin
i11 : isSimpleNormalCrossing(g)

o11 = true
i12 : isSimpleNormalCrossing(g, AtOrigin => false)

o12 = false
i13 : h = x*y^2*(x + 1)^3*(y - 1)^4; --SNC everywhere
i14 : isSimpleNormalCrossing(h)

o14 = true
i15 : isSimpleNormalCrossing(h, AtOrigin => false)

o15 = true

Setting the option Verbose (default value false) to true produces verbose output.

Ways to use isSimpleNormalCrossing :

For the programmer

The object isSimpleNormalCrossing is a method function with options.