John Cremona on Thu, 14 May 2026 12:48:02 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: helping nfinit


Additional comment: in the degree 45  example I have a2=Mod(x,pol) and
call nfinit([pol,10^8]) to get an approximate integral basis.  Then I
take a3 and express it in terms of this basis and find that there is a
denominator of 2212345606483230394808424686337987206942529433283581982292749351268269613568089770201
(which is prime).  So I know that the order I computed has index
divisible by this large prime.  How can I use that information,
perhaps calling nfinit again, to get a better (possibly still not
maximal) order containing a3 as well as a2?

John

On Thu, 14 May 2026 at 11:03, John Cremona <john.cremona@gmail.com> wrote:
>
> In gp, ?nfinit says that the first parameter must be a polynomial.
> The longer documentation in ??nfinit says that the first parameter can
> be a pair or triple [pol,B], [pol,B,P] or [pol,listP] where B is a
> lift of an integral basis, P and listP are lists of primes.   But the
> example given if nfinit([pol,10^3]) which shows that the second
> parameter can be a bound on the primes and not just a list of primes.
> Perhaps this should be corrected (if I am right)?
>
> Also, the situation I am in is that as well as a polynomial pol (monic
> irreducible and integral) defining the field, I have a collection of
> known algebraic integers a2=Mod(g2,pol), a3=Mod(g3,pol), ....   It
> seems that knowing these should help nfinit but I don't see an easy
> way of doing so.   In one example, the degree is 45, the minpolys of
> a2 and a3 (both of full degree) have discriminants which are too large
> to factor but the gcd of their discriminants -- which is the field
> discriminant times a much smaller square -- can be factored.  In my
> example that gcd is 2^10 times an integer with 117 digits which can be
> factored in reasonable time (under a minute on my 10-year-old laptop)
> as the product of 709, 11652785276119009306943,
> 33453572138997299442641,
> 3430518186990900226076508080139548308272997052056646116033470256885927.
>   If I do nfinit([pol,plist]) where plist contains 2 and these primes
> then I can see that the field discriminant is just their product (with
> no factor of 2 and all is well).  So this is an example where knowing
> just pol=minpoly(a2) it is impossible (in practice) to get an integral
> basis, but knowing minpoly(a3) also makes it possible.
>
> Hence my feature request would be to all nfinit to be given a list of
> polynomials, rather than just one, with the assumption that they do
> all define the same field.
>
> John
>
> PS I have given away some hints as to where this example comes from!