Macaulay2 » Documentation
Packages » TestIdeals :: ascendIdeal
next | previous | forward | backward | up | index | toc

ascendIdeal -- find the smallest ideal containing a given ideal which is compatible with a given Cartier linear map



Let $J$ be an ideal in a polynomial ring $S$ of characteristic $p>0$. An element $h$ of $S$ determines a $p^{-e}$-linear map $\phi: S \to\ S$, obtained by premultiplying the $e^{th}$ Frobenius trace on $S$ by $h$. The function ascendIdeal finds the smallest $\phi$-stable ideal of $S$ containing $J$, which is the stable value of the ascending chain $J\subseteq J + \phi(J)\subseteq J + \phi(J) + \phi^2(J)\subseteq \cdots$.

If $J$ is not an ideal of a polynomial ring, but of a quotient of a polynomial ring, ascendIdeal will do the computation with the $e^{th}$ Frobenius trace in the ambient polynomial ring, but will do the comparison, to see if stabilization has occurred, inside the quotient ring.

i1 : S = ZZ/5[x,y,z];
i2 : g = x^4 + y^4 + z^4;
i3 : h = g^4;
i4 : R = S/(g);
i5 : ascendIdeal(1, h, ideal y^3)

             2             2        2
o5 = ideal (z , y*z, x*z, y , x*y, x )

o5 : Ideal of R
i6 : ascendIdeal(1, h, ideal (sub(y, S))^3)

             2             2        2
o6 = ideal (z , y*z, x*z, y , x*y, x )

o6 : Ideal of S

The alternate ways to call the function allow the function to behave more efficiently. Indeed, frequently the polynomial passed is a power, $h^a$. If $a$ is large, it is more efficient not to compute $h^a$, but instead, to keep the exponent small by only raising $h$ to the minimal power needed to do the computation at that time.

i7 : S = ZZ/5[x,y,z];
i8 : g = x^4 + y^4 + z^4;
i9 : R = S/(g);
i10 : ascendIdeal(1, 4, g, ideal y^3)

              2             2        2
o10 = ideal (z , y*z, x*z, y , x*y, x )

o10 : Ideal of R
i11 : ascendIdeal(1, 4, g, ideal (sub(y, S))^3)

              2             2        2
o11 = ideal (z , y*z, x*z, y , x*y, x )

o11 : Ideal of S

More generally, if $h$ is a product of powers, $h = h_1^{a_1}\ldots h_n^{a_n}$, then it is more efficient to pass ascendIdeal the lists expList = \{a_1,\ldots,a_n\} and hList = \{h_1,\ldots,h_n\} of exponents and bases.

By default (when AscentCount => false), ascendIdeal just returns the stable (ascended) ideal. If, instead, AscentCount is set to true, then ascendIdeal returns a sequence whose first entry is the stable ideal, and the second is the number of steps it took for the ascending chain to stabilize and reach that ideal.

i12 : R = ZZ/5[x,y,z];
i13 : J = ideal(x^12, y^15, z^21);

o13 : Ideal of R
i14 : f = y^2 + x^3 - z^5;
i15 : ascendIdeal(1, f^4, J)

o15 = ideal (z, y, x)

o15 : Ideal of R
i16 : ascendIdeal(1, f^4, J, AscentCount => true)

o16 = (ideal (z, y, x), 3)

o16 : Sequence

The option FrobeniusRootStrategy is passed to internal frobeniusRoot calls.

This method is described in M. Katzman's Parameter-test-ideals of Cohen–Macaulay rings (Compositio Mathematica 144 (4), 933-948), under the name "star-closure". It is a key tool in computing test ideals and test modules.

See also

Ways to use ascendIdeal :

For the programmer

The object ascendIdeal is a method function with options.