paladino on Fri, 11 Oct 2013 15:17:06 +0200

 Re: Degree extension

Dear Bill,

Your explanation is very clear and
it is very useful for me.

With my best regards,

Laura

> On Thu, Oct 10, 2013 at 05:57:06PM +0200, paladino@mat.unical.it wrote:
>> Dear All,
>>
>> I am Laura, a new member of the list of the
>> users of PARI.
>
> Welcome!
>
>> I have a question. I have the roots of
>> some polynomials of the form y^2=x^3+Ax+B.
>> For example p:=y^2=x^3+2*x+5.
>> I call a, b and c the roots of p.
>> I would like to calculate the degree
>> of the number field
>>
>> Q(sqrt(a-b),sqrt(a-c),sqrt(b-c),sqrt(-1)).
>>
>> Is it possible with PARI?
>
> Yes, this is possible
> Let P=x^3+A*x+B be your polynomial
> and K=Q(sqrt(a-b),sqrt(a-c),sqrt(b-c),sqrt(-1))
>
> 1) Build the Galois closure of P as follow:
> S=polcompositum(P,P)[2];
>   (This depends on the Galois group of P, but this will work in both case)
>
> 2) Compute the roots of P in the field Q[X]/P:
> N=nfroots(subst(S,x,'alpha),P);
>   Now the roots are given by a=N[1], b=N[2], c=N[3]
>   in term of a root alpha of S.
>
> 3) Compute the minimal polynomial of a-b as follow
> Mab=minpoly(N[1]-N[2]);
>   By Galois theory, it has the same degree as S.
>
> 4) The minimal polynomial of sqrt(a-b) is a factor of Mab(x^2)
> Msab=factor(subst(Mab,x,x^2))[1,1]
>
> 5) Build the tensor product Q[x]/Msab \otimes Q(sqrt(-1))
> MsabI = polcompositum(Msab,x^2+1)[1]
>
> 6) Factor Msab over L=Q[X]/MsabI:
> R=nffactor(subst(MsabI,x,'beta),Msab);
>   This will be given in term of a root beta of MsabI.
>
> 7.1) If Msab split in linear factor, then K=L and the degree
> is poldegree(MsabI). This can be checked with
> poldegree(Msab)==#R[,1]
>
> 7.2) otherwise, we have to go one step higher. Set
> MsabcI=rnfequation(subst(MsabI,x,'beta),R[3,1]);
>
> In that case K=Q[X]/MsabcI and the degree is poldegree(MsabcI)
>
> Cheers,
> Bill.
>