next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
FrobeniusThresholds :: FrobeniusThresholds

FrobeniusThresholds -- a package for computing F-pure thresholds and related invariants


FrobeniusThresholds is a package for computing F-pure thresholds, F-jumping exponents, and related numerical measures of singularity in positive characteristic.

The Frobenius endomorphism on a ring of prime characteristic p > 0, which sends a ring element to its p-th power, is a fundamental tool in positive characteristic commutative algebra. Kunz showed that regularity is characterized by the behavior of this map, and since then many other properties of the Frobenius map have been used to measure the 'severity' of singularities in commutative algebra. The F-pure threshold is a prominent object in this realm.

This package relies heavily on the TestIdeals package. Many special cases (binomials, diagonal polynomials, etc.) are seamlessly handled by using special algorithms found in Hernández, Hernández, and Hernández-Teixeira.

Notable functions:
The following example demonstrates some of the functionality of this package.

i1 : p = 131;
i2 : R = ZZ/p[x,y];
i3 : f = x^13 - y^5;
i4 : c = fpt(f)

o4 = --

o4 : QQ
i5 : compareFPT(c - 1/p^2, f)

o5 = -1
i6 : compareFPT(c, f)

o6 = 0
i7 : compareFPT(c + 1/p, f)

o7 = 1
i8 : isFJumpingExponent(36/65, f)

o8 = true


The authors would like to thank David Eisenbud, Daniel Grayson, Anurag Singh, Greg Smith, and Mike Stillman for useful conversations and comments on the development of this package.


We sincerely thank the following people, who contributed code to this package.



This documentation describes version 2.0 of FrobeniusThresholds.

Source code

The source code from which this documentation is derived is in the file FrobeniusThresholds.m2. The auxiliary files accompanying it are in the directory FrobeniusThresholds/.


  • Functions and commands
    • compareFPT -- determine whether a number is less than, greater than, or equal to the F-pure threshold
    • fpt -- attempt to compute the F-pure threshold of a polynomial at the origin or globally
    • isFJumpingExponent -- whether a given number is an F-jumping exponent
    • isFPT -- checks whether a given rational number is the F-pure threshold
    • isSimpleNormalCrossing -- whether a polynomial is a product of factors that are in simple normal crossing
    • nu -- computes the largest power of an ideal not contained in a specified Frobenius power
  • Symbols
    • Bounds -- an option for the function fpt specifying lower and upper bounds for the F-pure threshold
    • ContainmentTest -- an option for the function nu specifying the type of containment of powers of ideals to test
    • FinalAttempt -- an option for the function fpt to perform a final check attempting find an F-pure threshold
    • FrobeniusPower -- a valid value for the option ContainmentTest
    • FrobeniusRoot -- a valid value for the option ContainmentTest
    • GlobalFrobeniusRoot -- a valid value for the option ContainmentTest
    • GuessStrategy -- an option for the function fpt to specify the criterion used for selecting numbers to check
    • ReturnList -- an option for the function nu to return a list of successive nu values
    • Search -- an option for the function nu to specify the search method for testing containments of powers of ideals
    • StandardPower -- a valid value for the option ContainmentTest
    • UseSpecialAlgorithms -- an option for the functions fpt and nu to use special algorithms to speed up computations