Here's the problem. For an elliptic curve defined over a ring, not a field, the _point_class (which is the class used to hold its points) is the class EllipticCurvePoint, but that class has almost no methods at all defined for it, not even an __init__ method. By contrast, for elliptic curves defined over fields the point class is EllipticCurvePoint_field (or EllipticCurvePoint_finite_field, etc), which all have a huge amount of functionality.
One could defined a new class called something like EllipticCurvePoint_commutative_ring, and move most of the functionality from the field class to the ring class, but that would be a lot of work, and there would be a danger that the operations over fields would be slowed down. And one would have to decide how to deal with the group law now only being partial (which I know can be done, but I forget the details). It would be a good student project to at least handle the case where the base ring was of the form Integers(n), where the error message produced by trying to invert a non-invertible constant would helpfully tell you the factorization of the modulus. John On Apr 11, 5:17 am, Alec Mihailovs <alec.mihail...@gmail.com> wrote: > On Apr 10, 8:27 pm, Robert Bradshaw <rober...@math.washington.edu> > wrote: > > > This particular point however seems to have order 3 on both E(GF(67)) > > and E(GF(89)). > > E=EllipticCurve([1,R(1)]) > > seems to be working, > > 7*E([0,1]) > > Traceback (click to the left of this block for traceback) > ... > ZeroDivisionError: Inverse of 5092 does not exist > > Alec -- To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to sage-support+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-support URL: http://www.sagemath.org To unsubscribe, reply using "remove me" as the subject.