next | previous | forward | backward | up | index | toc

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

## Description

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:
• fpt computes (or estimates) the $F$-pure threshold.
• isFJumpingExponent checks whether a given number is an $F$-jumping exponent.
• compareFPT determines whether the given number is greater than, less than, or equal to the $F$-pure threshold.
• frobeniusNu is a function whose normalized value provides a canonical estimate for the $F$-pure threshold, $F$-thresholds, and more.
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) 18 o4 = -- 65 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

Acknowledgements:

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.

Contributors

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

## Certification Version 2.1 of this package was accepted for publication in volume 11 of The Journal of Software for Algebra and Geometry on 11 September 2020, in the article The FrobeniusThresholds package for Macaulay2. That version can be obtained from the journal or from the Macaulay2 source code repository.

## Version

This documentation describes version 2.1 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/.

## Exports

• 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
• frobeniusNu -- computes the largest power of an ideal not contained in a specified Frobenius power
• 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
• Methods
• "compareFPT(Number,RingElement)" -- see compareFPT -- determine whether a number is less than, greater than, or equal to the F-pure threshold
• "fpt(List,List)" -- see fpt -- attempt to compute the F-pure threshold of a polynomial at the origin or globally
• "fpt(RingElement)" -- see fpt -- attempt to compute the F-pure threshold of a polynomial at the origin or globally
• "frobeniusNu(ZZ,Ideal)" -- see frobeniusNu -- computes the largest power of an ideal not contained in a specified Frobenius power
• "frobeniusNu(ZZ,Ideal,Ideal)" -- see frobeniusNu -- computes the largest power of an ideal not contained in a specified Frobenius power
• "frobeniusNu(ZZ,RingElement)" -- see frobeniusNu -- computes the largest power of an ideal not contained in a specified Frobenius power
• "frobeniusNu(ZZ,RingElement,Ideal)" -- see frobeniusNu -- computes the largest power of an ideal not contained in a specified Frobenius power
• "isFJumpingExponent(Number,RingElement)" -- see isFJumpingExponent -- whether a given number is an F-jumping exponent
• "isFPT(Number,RingElement)" -- see isFPT -- checks whether a given rational number is the F-pure threshold
• "isSimpleNormalCrossing(Product)" -- see isSimpleNormalCrossing -- whether a polynomial is a product of factors that are in simple normal crossing
• "isSimpleNormalCrossing(RingElement)" -- see isSimpleNormalCrossing -- whether a polynomial is a product of factors that are in simple normal crossing
• Symbols
• Bounds -- an option for the function fpt specifying lower and upper bounds for the F-pure threshold
• ContainmentTest -- an option for the function frobeniusNu 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 frobeniusNu to return a list of successive nu values
• Search -- an option for the function frobeniusNu 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 frobeniusNu to use special algorithms to speed up computations

## For the programmer

The object FrobeniusThresholds is .