next | previous | forward | backward | up | top | index | toc | Macaulay2 website
TestIdeals :: FPureModule

FPureModule -- compute the submodule of the canonical module stable under the image of the trace of Frobenius

Synopsis

Description

Given a ring $R$ with canonical module $\omega$, this function computes the image of $F^e_* \omega \to \omega$ for $e >> 0$. This image is sometimes called the HSLG module (named for Hartshorne-Speiser, Lyubeznik, and Gabber), and it roughly tells us where a ring is non-$F$-injective. It can also be used to compute the maximal $F$-pure sub-Cartier module of a given rank-1 Cartier module (represented as an ideal). The name of the function is based on this interpretation.

Specifically, this function returns a sequence (FPMod, canMod, frobTrace, count), where canMod is a canonical module of the ring (expressed as an ideal), FPMod is the HSLG module, given as a submodule of canMod, frobTrace is a list of elements of the ambient polynomial ring representing the trace of Frobenius on the canonical module, and count is the number of times the trace of Frobenius was computed before the image stabilized, sometimes called the HSLG number of the canonical module as a Cartier module.

i1 : R = ZZ/7[x,y,z]/(x^5 + y^5 + z^5);
i2 : (FPMod, canMod, frobTrace, count) = FPureModule(R);
i3 : canMod --the ambient canonical module

o3 = ideal 1

o3 : Ideal of R
i4 : FPMod --the F-pure submodule of the canonical module

             3     2     2   2           2    3     2   2    3
o4 = ideal (z , y*z , x*z , y z, x*y*z, x z, y , x*y , x y, x )

o4 : Ideal of R
i5 : frobTrace --the element representing trace of Frobenius

       30    25 5    20 10    15 15    10 20    5 25    30    25 5     20 5 5
o5 = {x   - x  y  + x  y   - x  y   + x  y   - x y   + y   - x  z  + 2x  y z 
     ------------------------------------------------------------------------
         15 10 5     10 15 5     5 20 5    25 5    20 10     15 5 10  
     - 3x  y  z  - 3x  y  z  + 2x y  z  - y  z  + x  z   - 3x  y z   -
     ------------------------------------------------------------------------
      10 10 10     5 15 10    20 10    15 15     10 5 15     5 10 15    15 15
     x  y  z   - 3x y  z   + y  z   - x  z   - 3x  y z   - 3x y  z   - y  z  
     ------------------------------------------------------------------------
        10 20     5 5 20    10 20    5 25    5 25    30
     + x  z   + 2x y z   + y  z   - x z   - y z   + z  }

o5 : List
i6 : count --how many times it took until the image stabilized

o6 = 2

Sometimes it is convenient to specify the ambient canonical module across multiple calls of FPureModule. This can be done by using the option CanonicalIdeal. One can also pass it something other than the canonical module as well (for example, a submodule of the canonical module).

Likewise, one can use the GeneratorList option to specify the dual Frobenius action on the canonical module (or ideal playing the role of the canonical module).

In the following example, the non-$F$-pure ideal of a $\mathbb{Q}$-Gorenstein ring is computed by hijacking this functionality.

i7 : T = ZZ/7[a,b];
i8 : S = ZZ/7[x,y,z,w];
i9 : f = map(T, S, {a^3, a^2*b, a*b^2, b^3});

o9 : RingMap T <--- S
i10 : R = S/(ker f);
i11 : J = ideal 1_R;

o11 : Ideal of R
i12 : u = QGorensteinGenerator(1, R);
i13 : FPureModule(CanonicalIdeal => J, GeneratorList => {u})

                           2 6 12    3 4 13    3 5 11     4 3 12     5   13 
o13 = (ideal 1, ideal 1, {x y z   + x y z   + x y z  w + x y z  w + x y*z  w
      -----------------------------------------------------------------------
         12 6 2    3 6 9 2    4 4 10 2    5 2 11 2    6 12 2    13 4 3  
      + y  z w  + x y z w  + x y z  w  + x y z  w  + x z  w  + y  z w  +
      -----------------------------------------------------------------------
         11 5 3    2 9 6 3    4 5 8 3    5 3 9 3    6   10 3      12 3 4  
      x*y  z w  + x y z w  + x y z w  + x y z w  + x y*z  w  + x*y  z w  +
      -----------------------------------------------------------------------
       2 10 4 4    3 8 5 4    4 6 6 4    5 4 7 4    6 2 8 4    7 9 4  
      x y  z w  + x y z w  + x y z w  + x y z w  + x y z w  + x z w  +
      -----------------------------------------------------------------------
         13   5    2 11 2 5    3 9 3 5    4 7 4 5    5 5 5 5    6 3 6 5  
      x*y  z*w  + x y  z w  + x y z w  + x y z w  + x y z w  + x y z w  +
      -----------------------------------------------------------------------
       7   7 5    2 12 6    3 10   6    4 8 2 6    5 6 3 6    6 4 4 6  
      x y*z w  + x y  w  + x y  z*w  + x y z w  + x y z w  + x y z w  +
      -----------------------------------------------------------------------
       7 2 5 6    8 6 6    4 9 7    5 7   7    6 5 2 7    7 3 3 7    8   4 7
      x y z w  + x z w  + x y w  + x y z*w  + x y z w  + x y z w  + x y*z w 
      -----------------------------------------------------------------------
         6 6 8    7 4   8    8 2 2 8    9 3 8    8 3 9    9     9    10 10
      + x y w  + x y z*w  + x y z w  + x z w  + x y w  + x y*z*w  + x  w  },
      -----------------------------------------------------------------------
      0)

o13 : Sequence

Additionally, one can specify a pair ($R$, $f^{ t}$), as long as $t$ is a rational number with a denominator prime to the characteristic of the ring.

i14 : R = ZZ/7[x,y];
i15 : M = FPureModule(5/6, y^2 - x^3);
i16 : M#1 -- the canonical module

o16 = ideal 1

o16 : Ideal of R
i17 : M#0 -- the F-pure submodule

o17 = ideal 1

o17 : Ideal of R
i18 : N = FPureModule(9/10, y^2 - x^3);
i19 : N#0 -- the F-pure submodule

o19 = ideal (y, x)

o19 : Ideal of R

Finally, one can specify a pair ($R$, $f_1^{t_1}\cdots f_n^{t_n}$), even when $R$ is not regular (although $R$ is required to be $\mathbb{Q}$-Gorenstein, with index not divisible by the characteristic).

i20 : R = ZZ/3[x,y,z]/(x^2 - y*z);
i21 : f = y;
i22 : g = z;
i23 : FPureModule({1/2, 1/2, 1/2}, {y, z, y + z})

                                   4    2       2 2
o23 = (ideal (z, y, x), ideal 1, {x  + x y*z + y z }, 1)

o23 : Sequence

The option FrobeniusRootStrategy is passed to internal frobeniusRoot calls.

See also

Ways to use FPureModule :

For the programmer

The object FPureModule is a method function with options.