John Cremona on Fri, 07 Aug 2015 10:22:14 +0200

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

Re: elllocalred vs. ellglobalred

Thanks for the explanation, Karim!

I'm not sure where pari/gp has got to regarding elliptic curves over number fields -- Bill said yesterday, I think, that his isogeny class code was developed with general number fields in mind -- but I would be happy to donate code I wrote for Sage recently (in the recent release 6.8) which handles the case of fields of class number >1.  If there is a global minimal model, it finds it (by using Kraus); if there is not -- and the obstruction is a specific ideal class which is easy to compute when you know the local minimal models -- then it gives a model which is integral at all primes, minimal at all but on prime (which is in the obstruction class) and has discriminant valuation exactly 12 greater than miniaml at that prime.

The relevant Sage code can be found at and I hope is well-enough commented to be straightforward to port, though it does rely on being able to compute the local minimal discriminant valuations, for which you will probably need Tate's algorithm over number fields unless you can want to extend Kraus + Laska (but note that in Laska's book he assumes class number 1).


On 7 August 2015 at 08:37, Karim Belabas <> wrote:
* John Cremona [2015-08-06 16:43]:
> On 6 August 2015 at 14:11, Bill Allombert <
> > wrote:
> > On Thu, Aug 06, 2015 at 01:13:30PM +0100, John Cremona wrote:
> > > For E and elliptic curve over Q,  the 3rd component of elllocalred(E,p)
> > is
> > > the [u,r,s,t]-transformation required to take E to a local minimal model
> > at
> > > p.  The 5th component of ellglobalred(E) is supposed to be a list all the
> > > elllocalred(E,p) for all bad primes;  but in the output of
> > > ellglobalred(E)[5] all the 3rd components are 0!
> >
> > The documentation says:
> >
> > * L is a vector,  whose i-th entry contains the local data at the i-th
> > prime
> >   divisor of N,  i.e.  L[i] = elllocalred(E,F[i,1]),  where the local
> >   coordinate change has been deleted, and replaced by a 0.
> >
> >
> In my version it is different:
> ?ellglobalred
> ellglobalred(E): E being an elliptic curve, returns [N,[u,r,s,t],c, faN,L],
> where N is the conductor of E, [u,r,s,t] leads to the standard
> model for E, c is the product of the local Tamagawa numbers c_p, faN is
> factor(N) and L[i] is elllocalred(E, faN[i,1]).

Well, Bill quoted the extended help (??ellglobalred), which has
been correctly updated, whereas the basic help (?ellglobalred) has not. :-(

I'm fixing that.

> so this must have changed.

Indeed, about 2 years ago : in commits 35191d80, e98a75c6, c280f9e6.

I "discovered" the (global) Laska/Kraus/Connell algorithm at that time
[ for which I later found a better presentation in your book ! ] and used it
to rewrite ellminimalmodel so that it skipped Tate's local algorithm
(elllocalred, which gives more information, of course).

As a result, the operation became quite inexpensive, and allowed to fix
in a cheaper way the (very annoying, albeit documented) bug that many functions
gave wrong results on non minimal inputs. So I rewrote all local tests in
terms of Kraus's criterion.

As a side effect of these minimality-related rewrites, I decided to delete the
(redundant) information from the ellglobalred output. And forgot to update the
basic help.


Karim Belabas, IMB (UMR 5251)  Tel: (+33) (0)5 40 00 26 17
Universite de Bordeaux         Fax: (+33) (0)5 40 00 69 50
351, cours de la Liberation
Talence (France)  [PARI/GP]