# frobeniusRoot -- compute a Frobenius root

## Synopsis

• Usage:
frobeniusRoot(e, I)
frobeniusRoot(e, M)
frobeniusRoot(e, A)
frobeniusRoot(e, expList, idealList)
frobeniusRoot(e, expList, idealList, I)
frobeniusRoot(e, m, I)
frobeniusRoot(e, a, f)
frobeniusRoot(e, a, f, I)
• Inputs:
• e, an integer, the order of the Frobenius root
• I, an ideal, in a polynomial ring over a finite field of characteristic p
• M, , a submodule of a free module of a polynomial ring over a finite field of characteristic p
• A, , with entries in a polynomial ring over a finite field of characteristic p
• idealList, a list, containing ideals I_1,\ldots,I_n
• expList, a list, containing exponents a_1,\ldots,a_n to which the ideals in idealList will be raised
• m, an integer, the exponent to which I will be raised, before taking the Frobenius root
• f, , a polynomial over a finite field of characteristic p
• a, an integer, the exponent to which f will be raised, before taking the Frobenius root
• Optional inputs:
• FrobeniusRootStrategy => , default value Substitution, controls the strategy used by this function
• Outputs:
• an ideal, the p^e-th Frobenius root of I (or I_1^{a_1}\ldots I_n^{a_n}, I_1^{a_1}\ldots I_n^{a_n}I, I^m, (f^a), f^aI, depending on the arguments passed)
• , the p^e-th Frobenius root of the module M
• , whose image is the p^e-th Frobenius root of the image of the matrix A

## Description

In a polynomial ring $R = k[x_1, \ldots, x_n]$ with cofficients in a field of positive characteristic $p$, the $p^e$-th Frobenius root $I^{[1/p^e]}$ of an ideal $I$ is the smallest ideal $J$ such that $I\subseteq J^{[p^e]}$ (= frobeniusPower(p^e, J)). Similarly, if $M$ is a submodule of $R^k$, the $p^e$-th Frobenius root of $M$, denoted $M^{[1/p^e]}$, is the smallest submodule $V$ of $R^k$ such that $M\subseteq V^{[p^e]}$. The function frobeniusRoot computes such ideals and submodules.

There are many ways to call frobeniusRoot. The simplest way is to call frobeniusRoot(e, I), which computes $I^{[1/p^e]}$.

 i1 : R = ZZ/5[x,y,z]; i2 : I = ideal(x^50*z^95, y^100 + z^27); o2 : Ideal of R i3 : frobeniusRoot(2, I) 4 o3 = ideal (z, y ) o3 : Ideal of R

The function frobeniusRoot works over arbitrary finite fields.

 i4 : p = 3; i5 : R = GF(p^2)[x,y,z]; i6 : I = ideal(a^(2*p)*x^p + y*z^p + x^p*y^p); o6 : Ideal of R i7 : frobeniusRoot(1, I) o7 = ideal (z, x*y + (a + 1)x) o7 : Ideal of R

In the following example, for a submodule $M$ of $R^2$, frobeniusRoot(1, M) computes the smallest submodule $V$ of $R^2$ such that $M \subseteq V^{}$.

 i8 : R = ZZ/2[a,b,c,d]; i9 : A = matrix {{a^4 + a*b*c^2 + a*b*c*d, a^2* b}, {a^2*c*d^3 , a^3* c*d + a^3 *d^2 + b*c*d^3}}; 2 2 o9 : Matrix R <--- R i10 : M = image A; i11 : frobeniusRoot(1, M) o11 = image {-2} | 1 0 0 | {0} | 0 d a | 2 o11 : R-module, submodule of R

For ease of use, one can also simply pass a matrix $A$ whose image is $M$, and frobeniusRoot(1, A) returns a matrix whose image is $V$.

 i12 : frobeniusRoot(1, A) o12 = {-2} | 1 0 0 | {0} | 0 d a | 2 3 o12 : Matrix R <--- R

Often, one wants to compute a Frobenius root of some product of powers of ideals, $I_1^{a_1}\cdots I_n^{a_n}$. This is best accomplished by calling frobeniusRoot(e, \{a_1,\ldots,a_n\}, \{I_1,\ldots,I_n\}).

 i13 : R = ZZ/5[x,y,z]; i14 : I1 = ideal(x^10, y^10, z^10); o14 : Ideal of R i15 : I2 = ideal(x^20*y^100, x + z^100); o15 : Ideal of R i16 : I3 = ideal(x^50*y^50*z^50); o16 : Ideal of R i17 : time J1 = frobeniusRoot(1, {8, 10, 12}, {I1, I2, I3}); -- used 1.04421 seconds o17 : Ideal of R i18 : time J2 = frobeniusRoot(1, I1^8*I2^10*I3^12); -- used 5.67672 seconds o18 : Ideal of R i19 : J1 == J2 o19 = true

For legacy reasons, the last ideal in the list can be specified separately, using frobeniusRoot(e, \{a_1,\ldots,a_n\}, \{I_1,\ldots,I_n\}, I). The last ideal, I, is just raised to the first power.

The following are additional ways of calling frobeniusRoot:

$\bullet$ frobeniusRoot(e, m, I) computes the $p^e$-th Frobenius root of the ideal $I^m$.

$\bullet$ frobeniusRoot(e, a, f) computes the $p^e$-th Frobenius root of the principal ideal ($f^{ a}$).

$\bullet$ frobeniusRoot(e, a, f, I) computes the $p^e$-th Frobenius root of the product $f^{ a}I$.

There are two valid inputs for the option FrobeniusRootStrategy, namely Substitution and MonomialBasis. In the computation of the $p^e$-th Frobenius root of an ideal $I$, each generator $f$ of $I$ is written in the form $f = \sum a_i^{p^e} m_i$, where each $m_i$ is a monomial whose exponents are less than $p^e$; then the collection of all the $a_i$, obtained for all generators of $I$, generates the Frobenius root $I^{[1/p^e]}$. Substitution and MonomialBasis use different methods for gathering these $a_i$, and sometimes one method is faster than the other.

• frobenius -- compute a Frobenius power of an ideal or a matrix
• frobeniusPower -- compute a (generalized) Frobenius power of an ideal

## Ways to use frobeniusRoot :

• "frobeniusRoot(ZZ,Ideal)"
• "frobeniusRoot(ZZ,List,List)"
• "frobeniusRoot(ZZ,List,List,Ideal)"
• "frobeniusRoot(ZZ,Matrix)"
• "frobeniusRoot(ZZ,Module)"
• "frobeniusRoot(ZZ,MonomialIdeal)"
• "frobeniusRoot(ZZ,ZZ,Ideal)"
• "frobeniusRoot(ZZ,ZZ,RingElement)"
• "frobeniusRoot(ZZ,ZZ,RingElement,Ideal)"

## For the programmer

The object frobeniusRoot is .