William Hart on Fri, 04 Jan 2008 17:40:42 +0100

 Relative number fields question

• To: pari-users@list.cr.yp.to
• Subject: Relative number fields question
• From: William Hart <hart_wb@yahoo.com>
• Date: Fri, 4 Jan 2008 08:33:29 -0800 (PST)
• Delivery-date: Fri, 04 Jan 2008 17:40:42 +0100
• Mailing-list: contact pari-users-help@list.cr.yp.to; run by ezmlm

```Hi all,

Given a degree three abelian extension L/K of a
quadratic field K, I am trying to find an ideal QL in
L above a given prime ideal Q in K.

I set up my base field K, and the relative extension
L/K, find an absolute equation for L/Q and define the
number field "Labs" to be the corresponding absolute
number field:

K=nfinit(y^2 + 939636383790*y +
226927609420691962278648);

g=x^3 + Mod(11067, y^2 + 939636383790*y +
226927609420691962278648)*x^2 + Mod(23329236, y^2 +
939636383790*y + 226927609420691962278648)*x +
Mod(-1/3*y - 193638491109, y^2 + 939636383790*y +
226927609420691962278648);

L=rnfinit(K,g);

Leqn=rnfequation(K,g,1)[1];

Labs=nfinit(Leqn);

I find the prime ideal factors of a certain principal
ideal in K and choose one of them, calling it Q. This
is a prime ideal of K:

Afac=idealfactor(K,[2,-2]~);

Q=Afac[1,1];

Now I want an ideal in L that is above Q, i.e. I want
to factor Q in L. There are a number of strategies.
One is to find the norm Qn of Q, which should be a
power of a prime p, factor p into prime ideals Qn_i in
Labs then drop each down into K until I find the one
that is above Q.

Qn=idealnorm(KQ);

Qn=factor(Qn)[1,1];

Qnfac=idealprimedec(Labs,Qn);

fac=idealhnf(Labs,Qnfac[1]);

Qndown=rnfidealdown(L,fac);

But Pari responds:

*** rnfidealdown: incorrect type in rnfidealabstorel.

My original code attempted to go up from the ideal Q
into L and then factor that:

QL=rnfidealup(L,Q);

But if I now do:

nfisideal(Labs,QL)

it returns false.

The following code does something (though doubtlessly
not the right thing):

QL=mathnf(Mat(nfalgtobasis(Labs,QL)));

Ql=idealfactor(Labs,QL)[1,1];

Qmodpr=nfmodprinit(Labs,Ql);

nfeltreducemodpr(Labs,Mod(1,Labs.pol),Qmodpr);

But it responds:

***   significant pointers lost in gerepile! (please
report).

Can anybody tell me what I am doing wrong!? Is this
last error a bug, and should I report it?

Is there an easy way to find an ideal of Labs above my
ideal Q?

I'm using the latest pari/gp development snapshot due
to a known bug elsewhere in the stable release which
kills other code I am using.

Regards,

Bill Hart
University of Warwick

____________________________________________________________________________________