next | previous | forward | backward | up | top | index | toc | packages | Macaulay2 website
FrobeniusThresholds :: compareFPT

compareFPT -- determine whether a number is less than, greater than, or equal to the F-pure threshold



Let $f$ be an element of a $\mathbb{Q}$-Gorenstein ring of positive characteristic $p$, whose index is not divisible by $p$. Given a rational number $t$, the command compareFPT(t, f) returns -1 if $t$ is less than the $F$-pure threshold of $f$, 1 if $t$ is greater than the $F$-pure threshold, or 0 if $t$ equals the $F$-pure threshold.

i1 : R = ZZ/7[x,y];
i2 : f =  x^3 - y^2;
i3 : compareFPT(1/2, f)

o3 = -1
i4 : compareFPT(5/6, f)

o4 = 0
i5 : compareFPT(6/7, f)

o5 = 1

As noted, this function can be used in a singular ring of characteristic $p>0$ that is strongly $F$-regular, as long as $p$ does not divide the $\mathbb{Q}$-Gorenstein index. For instance, in the following example, $x$ defines a Cartier divisor that is twice one of the rulings of the cone.

i6 : R = ZZ/5[x,y,z]/(x*y - z^2);
i7 : compareFPT(1/3, x)

o7 = -1
i8 : compareFPT(1/2, x)

o8 = 0
i9 : compareFPT(13/25, x)

o9 = 1

Consider a Veronese subring (whose inclusion in the ambient polynomial ring is ├ętale in codimension 1), so the $F$-pure threshold of the given polynomial (in this case 19/125) should be independent of which ring we are in.

i10 : T = ZZ/5[a,b];
i11 : S = ZZ/5[x,y,z,w];
i12 : f = map(T, S, {a^3, a^2*b, a*b^2, b^3});

o12 : RingMap T <--- S
i13 : R = S/ker f;
i14 : g = x^7 - w^3;
i15 : h = f(sub(g, S))

       21    9
o15 = a   - b

o15 : T
i16 : compareFPT(19/125, g)

o16 = 0
i17 : compareFPT(19/125, h)

o17 = 0
i18 : compareFPT(19/124, g)

o18 = 1
i19 : compareFPT(19/125 - 1/1000, g)

o19 = -1

Setting the AtOrigin option to true (its default value is false) will tell the function to consider the $F$-pure threshold at the origin.

i20 : R = ZZ/7[x,y];
i21 : f = (x + 1)^3 - (y + 3)^2;
i22 : compareFPT(5/6, f)

o22 = 0
i23 : compareFPT(5/6, f, AtOrigin => true)

o23 = -1

If the ambient ring $R$ is not a domain, the option AssumeDomain should be set to false. We assume that the ring is a domain by default, in order to speed up the computation.

If the Gorenstein index of $R$ is known, the user should set the option QGorensteinIndex to this value. Otherwise, the function attempts to find the Gorenstein index of $R$, assuming it is between 1 and the value passed to the option MaxCartierIndex (default value 10).

The option FrobeniusRootStrategy is passed to internal calls of functions from the TestIdeals package. The two valid values for FrobeniusRootStrategy are Substitution and MonomialBasis.

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

See also

Ways to use compareFPT :

For the programmer

The object compareFPT is a method function with options.