Ask Your Question

Revision history [back]

It's also possible to do the calculation in plain SageMath but we need to help it because creating arbitrary extensions of p-adic fields is currently not implemented.

First, we can create the field F:

sage: F.<t> = Qq(3^8)
sage: F
3-adic Unramified Extension Field in a
defined by x^8 + 2*x^5 + x^4 + 2*x^2 + 2*x + 2

Then we create $L'$. For this, we need to find an uniformizer. For this, we factor the polynomial f(x) = x^4 - 3*x^2 + 18 over F.

Unfortunately, factorization is also not implemented. So we do it by hand as follows:

sage: S.<x> = F[]
sage: f = x^4 - 3*x^2 + 18
sage: g = x^2 - x + 2   # f(x) = 9 * g(x^2/3)
sage: rootsmodp = g.change_ring(F.residue_field()).roots()
sage: b = g.hensel_lift(F(rootsmodp[0][0]).lift_to_precision())
sage: f0 = x^2 - 3*b
sage: f % f0
0

Now we can build the extension:

sage: Lp.<alpha> = F.extension(f0)
sage: Lp
3-adic Eisenstein Extension Field in alpha
defined by x^2 + 4236577851*a^7 + 26772/7805*a^6
- 117429/7789*a^5 - 175194/1681*a^4 - 111303/22931*a^3
+ 5787134532*a^2 + 8260845189*a + 109059/13295 over its base field
sage: f(alpha)
O(alpha^44)

In order to define $\varphi$, we first define the automorphism of $F$; it is actually just the Frobenius:

sage: Frob = F.frobenius_endomorphism()
sage: zeta5 = F.primitive_root_of_unity(5)
sage: Frob(zeta5) == zeta5^3
True

As noticed by saraedum, there are two possibilities for $\varphi$ depending on the choose of the square root of $-\frac 2 7$.

sage: beta = (2*alpha^2 - 3)*F(-2/7).sqrt() / alpha
sage: phi1 = Lp.hom([beta], base_map=Frob)
sage: phi2 = Lp.hom([-beta], base_map=Frob)

Finally, we can check whether $\varphi_1$ (resp. $\varphi_2$) fixes $\sqrt 3$ or $\sqrt{-3}$:

sage: sqrt3 = Lp(3).sqrt()
sage: phi1(sqrt3) == sqrt3
False
sage: phi2(sqrt3) == sqrt3
True

sage: sqrtm3 = Lp(-3).sqrt()
sage: phi1(sqrtm3) == sqrtm3
True
sage: phi2(sqrtm3) == sqrtm3
False

It's also possible to do the calculation in plain SageMath but we need to help it because creating arbitrary extensions of p-adic fields is currently not implemented.

First, we can create the field F:$F$:

sage: F.<t> = Qq(3^8)
sage: F
3-adic Unramified Extension Field in a
defined by x^8 + 2*x^5 + x^4 + 2*x^2 + 2*x + 2

Then we create $L'$. $LF$. For this, we need to find an uniformizer. For this, we factor the polynomial f(x) $f(x) = x^4 - 3*x^2 + 18 3x^2 + 18$ over F.$F$.

Unfortunately, factorization is also not implemented. So we do it by hand as follows:

sage: S.<x> = F[]
sage: f = x^4 - 3*x^2 + 18
sage: g = x^2 - x + 2   # f(x) = 9 * g(x^2/3)
sage: rootsmodp = g.change_ring(F.residue_field()).roots()
sage: b = g.hensel_lift(F(rootsmodp[0][0]).lift_to_precision())
sage: f0 = x^2 - 3*b
sage: f % f0
0

Now we can build the extension:

sage: Lp.<alpha> LF.<alpha> = F.extension(f0)
sage: Lp
LF
3-adic Eisenstein Extension Field in alpha
defined by x^2 + 4236577851*a^7 + 26772/7805*a^6
- 117429/7789*a^5 - 175194/1681*a^4 - 111303/22931*a^3
+ 5787134532*a^2 + 8260845189*a + 109059/13295 over its base field
sage: f(alpha)
O(alpha^44)

In order to define $\varphi$, we first define the automorphism of $F$; it is actually just the Frobenius:

sage: Frob = F.frobenius_endomorphism()
sage: zeta5 = F.primitive_root_of_unity(5)
sage: Frob(zeta5) == zeta5^3
True

As noticed by saraedum, there are two possibilities for $\varphi$ depending on the choose of the square root of $-\frac 2 7$.

sage: beta = (2*alpha^2 - 3)*F(-2/7).sqrt() 3) * sqrt(F(-2/7)) / alpha
sage: phi1 = Lp.hom([beta], base_map=Frob)
sage: phi2 = Lp.hom([-beta], base_map=Frob)

Finally, we can check whether $\varphi_1$ (resp. $\varphi_2$) fixes $\sqrt 3$ or $\sqrt{-3}$:

sage: sqrt3 = Lp(3).sqrt()
sqrt(LF(3))
sage: phi1(sqrt3) == sqrt3
False
sage: phi2(sqrt3) == sqrt3
True

sage: sqrtm3 = Lp(-3).sqrt()
sqrt(LF(-3))
sage: phi1(sqrtm3) == sqrtm3
True
sage: phi2(sqrtm3) == sqrtm3
False

It's also possible to do the calculation in plain SageMath but we need to help it because creating arbitrary extensions of p-adic fields is currently not implemented.

First, we can create the field $F$:

sage: F.<t> = Qq(3^8)
sage: F
3-adic Unramified Extension Field in a
defined by x^8 + 2*x^5 + x^4 + 2*x^2 + 2*x + 2

Then we create $LF$. For this, we need to find an uniformizer. For this, we factor the polynomial $f(x) = x^4 - 3x^2 + 18$ over $F$.

Unfortunately, factorization is also not implemented. So we do it by hand as follows:

sage: S.<x> = F[]
sage: f = x^4 - 3*x^2 + 18
sage: g = x^2 - x + 2   # f(x) = 9 * g(x^2/3)
sage: rootsmodp = g.change_ring(F.residue_field()).roots()
sage: b = g.hensel_lift(F(rootsmodp[0][0]).lift_to_precision())
sage: f0 = x^2 - 3*b
sage: f % f0
0

Now we can build the extension:

sage: LF.<alpha> = F.extension(f0)
sage: LF
3-adic Eisenstein Extension Field in alpha
defined by x^2 + 4236577851*a^7 + 26772/7805*a^6
- 117429/7789*a^5 - 175194/1681*a^4 - 111303/22931*a^3
+ 5787134532*a^2 + 8260845189*a + 109059/13295 over its base field
sage: f(alpha)
O(alpha^44)

In order to define $\varphi$, we first define the automorphism of $F$; it is actually just the Frobenius:

sage: Frob = F.frobenius_endomorphism()
sage: zeta5 = F.primitive_root_of_unity(5)
sage: Frob(zeta5) == zeta5^3
True

As noticed by saraedum, there are two possibilities for $\varphi$ depending on the choose choice of the square root of $-\frac 2 7$.

sage: beta = (2*alpha^2 - 3) * sqrt(F(-2/7)) / alpha
sage: phi1 = Lp.hom([beta], base_map=Frob)
sage: phi2 = Lp.hom([-beta], base_map=Frob)

Finally, we can check whether $\varphi_1$ (resp. $\varphi_2$) fixes $\sqrt 3$ or $\sqrt{-3}$:

sage: sqrt3 = sqrt(LF(3))
sage: phi1(sqrt3) == sqrt3
False
sage: phi2(sqrt3) == sqrt3
True

sage: sqrtm3 = sqrt(LF(-3))
sage: phi1(sqrtm3) == sqrtm3
True
sage: phi2(sqrtm3) == sqrtm3
False

It's also possible to do the calculation in plain SageMath but we need to help it because creating arbitrary extensions of p-adic fields is currently not implemented.

First, we can create the field $F$:

sage: F.<t> = Qq(3^8)
sage: F
3-adic Unramified Extension Field in a
defined by x^8 + 2*x^5 + x^4 + 2*x^2 + 2*x + 2

Then we create $LF$. For this, we need to find an uniformizer. For this, we factor the polynomial $f(x) = x^4 - 3x^2 + 18$ over $F$.

Unfortunately, factorization is also not implemented. So we do it by hand as follows:

sage: S.<x> = F[]
sage: f = x^4 - 3*x^2 + 18
sage: g = x^2 - x + 2   # f(x) = 9 * g(x^2/3)
sage: rootsmodp = g.change_ring(F.residue_field()).roots()
sage: b = g.hensel_lift(F(rootsmodp[0][0]).lift_to_precision())
b, c = g.roots(multiplicities=False)
sage: f0 = x^2 - 3*b
sage: f % f0
0

Now we can build the extension:

sage: LF.<alpha> = F.extension(f0)
sage: LF
3-adic Eisenstein Extension Field in alpha
defined by x^2 + 4236577851*a^7 + 26772/7805*a^6
- 117429/7789*a^5 - 175194/1681*a^4 - 111303/22931*a^3
+ 5787134532*a^2 + 8260845189*a + 109059/13295 over its base field
sage: f(alpha)
O(alpha^44)

In order to define $\varphi$, we first define the automorphism of $F$; it is actually just the Frobenius:

sage: Frob = F.frobenius_endomorphism()
sage: zeta5 = F.primitive_root_of_unity(5)
sage: Frob(zeta5) == zeta5^3
True

As noticed by saraedum, there are two possibilities for $\varphi$ depending on the choice of the square root of $-\frac 2 7$.

sage: beta = (2*alpha^2 - 3) * sqrt(F(-2/7)) / alpha
sage: phi1 = Lp.hom([beta], LF.hom([beta], base_map=Frob)
sage: phi2 = Lp.hom([-beta], LF.hom([-beta], base_map=Frob)

Finally, we can check whether $\varphi_1$ (resp. $\varphi_2$) fixes $\sqrt 3$ or $\sqrt{-3}$:

sage: sqrt3 = sqrt(LF(3))
sage: phi1(sqrt3) == sqrt3
False
sage: phi2(sqrt3) == sqrt3
True

sage: sqrtm3 = sqrt(LF(-3))
sage: phi1(sqrtm3) == sqrtm3
True
sage: phi2(sqrtm3) == sqrtm3
False