| John Cremona on Fri, 15 May 2026 09:56:48 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: helping nfinit |
Thanks a lot for that, Bill!
In this example all the ap that I provided had the same denominator
with respect to the initial basis, and that denominator was prime,
which was helpful. Otherwise we would have had to factor all the
denominators and add those to the list.
John
On Thu, 14 May 2026 at 18:51, Bill Allombert
<Bill.Allombert@math.u-bordeaux.fr> wrote:
>
> On Thu, May 14, 2026 at 02:04:17PM +0100, John Cremona wrote:
> > See the attached file! Thanks,
>
> Do as follow:
>
> nf=nfinit([Q,10^6]);
> nfcertify(nf)
> %19 = [6545425927932356901494416423294075041914373124232366212427536292711211115092291924219244742700889697195903116862082970096708935542231381790884680695406022141577020301773656087196727705609299355376619483658182120111992825560366764255151018277314518895454382258049199871732323792656601]
>
> This is not empty, so nf is not proven correct.
>
> Rewrite a2-a97 in the integral basis and compute theire denominators:
>
> S=Set([denominator(nfalgtobasis(nf,eval(Str("a",p))))|p<-primes([1,100])])
> %32 = [1,2212345606483230394808424686337987206942529433283581982292749351268269613568089770201]
> isprime(S[2])
> %33 = 1
> so S[2] is a prime
> Now recompute the nf with S[2] added:
> nf=nfinit([Q,concat(factor(nf.disc,10^6)[,1],S[2])]);
> ? nfcertify(nf)
> %49 = [1337309617924137708872456535490394688536813660755945721823016779604603757989222447784404850926480400514955370596201]
>
> So now you have to factor this number, but this is not too hard.
>
> F=factor(nfcertify(nf)[1])[,1]
> %50 = [11652785276119009306943,33453572138997299442641,3430518186990900226076508080139548308272997052056646116033470256885927]~
>
> Add the factor to the list:
>
> nf=nfinit([Q,concat([factor(nf.disc,10^6)[,1],F,S[2]])]);
> nfcertify(nf)
> %52 = []
>
> Now it is proven correct (note that it was already correct at the previous step, but this was not proven).
>
> Cheers,
> Bill.