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

# frobeniusTraceOnCanonicalModule -- find an element of a polynomial ring that determines the Frobenius trace on the canonical module of a quotient of that ring

## Synopsis

• Usage:
frobeniusTraceOnCanonicalModule(I, canIdeal)
• Inputs:
• I, an ideal, of a polynomial ring S; the defining ideal of a ring R
• canIdeal, an ideal, an ideal of S whose image in R = S/I is a canonical module of R
• Outputs:
• a list, consisting of elements of the ambient polynomial ring S, a linear combination of which determines the Frobenius trace on the canonical module of the quotient ring R = S/I

## Description

Given $R = S/I$, where $S$ is a polynomial ring over a field of positive characteristic $p$, there is a map $\omega_R^{1/p^e} \to \omega_R$ dual to the Frobenius map on $R$. By embedding $\omega_R$ as an ideal of $R$, one can interpret this map as a $p^{-e}$-linear map on $S$. But every $p^{-e}$-linear map on $S$ is a premultiple of the dual to Frobenius on $S$, by some element of $S$. This function finds such an element.

However, because Macaulay2 does not always properly identify an ideal as principal (even though it is), sometimes the function cannot find this single element, but instead finds a list of elements of $S$, a linear combination of which is the desired one.

The function frobeniusTraceOnCanonicalModule takes as inputs the defining ideal $I$ of $R$, and an ideal $J$ of $S$ whose image in $R$ is a canonical module of $R$.

 i1 : S = ZZ/5[x,y,z,w]; i2 : I = ker map( ZZ/5[a,b], S, {a^3, a^2*b, a*b^2, b^3} ); o2 : Ideal of S i3 : R = S/I; i4 : canIdeal = canonicalIdeal R; o4 : Ideal of R i5 : J = sub(canIdeal, S); o5 : Ideal of S i6 : frobeniusTraceOnCanonicalModule(I, J) 4 9 2 2 3 8 3 3 9 3 8 4 4 2 4 6 4 3 2 7 4 4 8 4 o6 = {x*y z w + x y z w + x y*z w + y z w + x y z w + x y z w + x z w ------------------------------------------------------------------------ 9 2 5 7 3 5 2 5 4 5 3 3 5 5 4 6 5 8 6 + y z w + x*y z w + x y z w + x y z w + x y*z w + x*y z*w + ------------------------------------------------------------------------ 2 6 2 6 3 4 3 6 4 2 4 6 5 5 6 2 7 7 3 5 7 4 3 2 7 x y z w + x y z w + x y z w + x z w + x y w + x y z*w + x y z w + ------------------------------------------------------------------------ 5 3 7 4 4 8 5 2 8 6 2 8 6 9 x y*z w + x y w + x y z*w + x z w + x y*w } o6 : List

## Ways to use frobeniusTraceOnCanonicalModule :

• "frobeniusTraceOnCanonicalModule(Ideal,Ideal)"

## For the programmer

The object frobeniusTraceOnCanonicalModule is .