Wrong use of minimal polynomial function in MAGMA?

202 Views Asked by At

I wrote the following MAGMA code

K := pAdicField(3, 100);
R<x> := PolynomialRing(K);
f := x^4 - 3*x^2 + 18;
L := SplittingField(f);

r27 := Roots(x^2 - (-2/7), L)[1][1];
alpha := Roots(f, L)[1][1];
imalpha := (2*alpha^2 - 3)*r27 / alpha;

d := alpha + imalpha;
b := alpha*d;
c := -2*alpha*d/(alpha+imalpha);
a := imalpha*c;

beta := 4*a^3*b - 6*a^2*c*d - 6*a*b*c^2 + 72*c^3*d;
R<x> := PolynomialRing(L);
Roots(x^2 - beta,L);

The output shows that the element $\beta$ defined there has no roots in the field $L$ (which is also defined in the code).

Next, I define $L_1$ to be the extension defined by the polynomial $x^2 - \beta$ (since it has degree $2$, I can also take the splitting field of this polynomial):

g := x^2 - beta;
L1 := SplittingField(g);

Next I define $\gamma$ to be a square root of $\beta$ (i.e. $L_1=L(\gamma)$). Now I am interested in studying the extension $L_1/K$ (and not $L_1/L$). In particular, I would like to compute the Galois group of $L_1/K$.

Since there is no easy way for MAGMA to compute the Galois group of $L_1/K$, my approach was to

  • compute the minimal polynomial of $\gamma$ over $K$ (which we call $h$ here),
  • take the splitting field of $f \cdot h$ and
  • derive the field $L_1$ from this splitting field.

So I started to write the following code:

gamma := Roots(g,L1)[1][1];
R<x> := PolynomialRing(K);
h := MinimalPolynomial(gamma,K);

If this minimal polynomial function works, it should give us $h(\gamma) = 0$. However, if I type this

IsWeaklyZero(Evaluate(h, gamma));

then I get false.

Could you please explain to me what went wrong here? And is there an alternative approach to my problem?