Processing math: 100%
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

answered 7 years ago

dan_fulea gravatar image

Please let me use u and v for the elements of the fields involved.

First solution:

p = 13
R.<U> = PolynomialRing( GF(p) )
F.<u> = GF( p^p, modulus = U^p - U - 1 )
RF.<V> = PolynomialRing( F )
FF.<v> = F.extension( V^p - V - u^(p-1) )

Then FF is the required field.

Second solution.

We can try to construct the last field at once. Let us observe, that the minimal equation satisfied by x=up1=1+1/u is: xp++x2+x1=0 . For instance:

sage: (u^(p-1)) . minpoly()
x^13 + x^12 + x^11 + x^10 + x^9 + x^8 + x^7 + x^6 + x^5 + x^4 + x^3 + x^2 + x + 12

(This is my reason for avoiding x.)

Indeed: 1kp(1+1u)k=(1+1u)(1+1u)p1(1+1u)1=(1+1u)up1(1p+1up)1(1+1u)1=up1up1=1 . So the code would be:

p = 13
R.<V> = PolynomialRing( GF(p) )
FF.<v> = GF( p^(p*p), modulus = sum( [ (V^p-V)^k for k in [1..p] ] ) - 1 )

u = 1/(v^p-v-1)
u.minpoly()

The last two lines recover u in the constructed field, we have:

sage: u.minpoly()
x^13 + 12*x + 12