|Bill Allombert on Thu, 10 Oct 2013 20:45:23 +0200|
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
|Re: Degree extension|
On Thu, Oct 10, 2013 at 05:57:06PM +0200, firstname.lastname@example.org 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); (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, b=N, c=N in term of a root alpha of S. 3) Compute the minimal polynomial of a-b as follow Mab=minpoly(N-N); 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) 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.