# isFPT -- checks whether a given rational number is the F-pure threshold

## Synopsis

• Usage:
isFPT(t, f)
• Inputs:
• t, , a rational number candidate for the $F$-pure threshold of f
• f, , in a $\mathbb{Q}$-Gorenstein ring of positive characteristic $p$, whose index is not divisible by $p$
• Optional inputs:
• AssumeDomain => , default value true, indicates whether the ambient ring of f is an integral domain
• FrobeniusRootStrategy => , default value Substitution, passed to computations in the TestIdeals package
• AtOrigin => , default value false, tells the function whether to consider only the behavior at the origin
• MaxCartierIndex => an integer, default value 10, sets the maximum $\mathbb{Q}$-Gorenstein index to search for
• QGorensteinIndex => an integer, default value 0, specifies the $\mathbb{Q}$-Gorenstein index of the ring
• Verbose => , default value false, whether the output is to be verbose
• Outputs:
• , reporting whether t is the $F$-pure threshold of f

## Description

Consider an element $f$ of a $\mathbb{Q}$-Gorenstein ring of positive characteristic $p$ (of $\mathbb{Q}$-Gorenstein index not divisible by $p$), and a rational number $t$. If $t$ is the $F$-pure threshold of $f$, then the command isFPT(t, f) outputs true, and otherwise, it outputs false.

 i1 : R = ZZ/11[x,y]; i2 : f = x^3 + y^2; i3 : isFPT(9/11, f) o3 = true i4 : isFPT(9/12, f) o4 = false

We also include an example in a singular ambient ring.

 i5 : T = ZZ/7[a,b]; i6 : S = ZZ/7[x,y,z,w]; i7 : f = map(T, S, {a^3, a^2*b, a*b^2, b^3}); o7 : RingMap T <--- S i8 : R = S/ker f; i9 : isFPT(1/3, x) o9 = true i10 : isFPT(1/3 + 1/10000, x) o10 = false i11 : isFPT(1/3 - 1/10000, x) o11 = false

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

 i12 : R = ZZ/11[x,y,z]/(x^2 - y*(z - 1)); i13 : isFPT(1/2, z - 1) o13 = true i14 : isFPT(1/2, z - 1, AtOrigin => true) o14 = false

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 of FrobeniusRootStrategy are Substitution and MonomialBasis.

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