John Cremona on Thu, 14 May 2026 12:04:01 +0200


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

helping nfinit


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!