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

- Usage:
    `isSimpleNormalCrossing(f)`
    `isSimpleNormalCrossing(P)`
- Inputs:
  - f, a ring element, a polynomial
  - P, a product expression, a product of polynomials
- Optional inputs:
  - AtOrigin => a Boolean value, default value true, tells the function whether to consider only the behavior at the origin
  - Verbose => a Boolean value, default value false, whether the output is to be verbose
- Outputs:
  - a Boolean value, true if the factors of f are in simple normal crossing, false otherwise

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

- `isSimpleNormalCrossing(Product)`
- `isSimpleNormalCrossing(RingElement)`

## For the programmer

The object isSimpleNormalCrossing is a method function with options.

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/FrobeniusThresholds/SpecialFThresholdsDoc.m2:51:0.