| 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!