I think your comment further indicates that there seems to be a serious 
problem with how elliptic curves modulo primes powers are implemented in 
sage.

Just in case anyone is in doubt, note that sage is perfectly happy to deal 
with this point correctly if I define my curve as a plane projective curve, 
rather than an elliptic curve:

P2.<X,Y,Z> = ProjectiveSpace(Rationals(),2); P2

Projective Space of dimension 2 over Rational Field

C=P2.subscheme(Y^2*Z + Y*Z^2 - X^3 + X*Z^2); C

Closed subscheme of Projective Space of dimension 2 over Rational Field defined 
by: -X^3 + Y^2*Z + X*Z^2 + Y*Z^2

C4=C.change_ring(Integers(4)); C4

Closed subscheme of Projective Space of dimension 2 over Ring of integers 
modulo 4 defined by: -X^3 + Y^2*Z + X*Z^2 + Y*Z^2

C(2,-3,8)

(1/4 : -3/8 : 1)

C4(2,-3,8)

(2 : 1 : 0)








On Thursday, 14 May 2020 15:26:24 UTC+1, Reimundo Heluani wrote:
>
>
> On May 14, Daniel Loughran wrote: 
> >I don't follow you; given a rational point on an elliptic curve you can 
> always 
> >take its reduction modulo any integer. 
> > 
> >The equation of the projective curve is: 
> > 
> >Y^2*Z + Y*Z^2 = X^3 - X*Z^2 
> > 
> >When you plug in (X:Y:Z) = (2:1:0), all terms involving Z vanish, so you 
> are 
> >left with the equation 
> > 
> >0 = 2^3 modulo 4, 
>
> My bad, I didn't even check it, just tried: 
>
> sage: E4(2,1,0) 
> Traceback: 
> ... 
> TypeError: Coordinates [2, 1, 0] do not define a point on Elliptic Curve 
> defined by y^2 + y = x^3 + 3*x over Ring of integers modulo 4 
>
> > 
> >which indeed holds. 
> > 
> > 
> > 
> >On Thursday, 14 May 2020 13:29:32 UTC+1, Reimundo Heluani wrote: 
> > 
> >    On May 14, 'Reimundo Heluani' via sage-devel wrote: 
> >    >On May 14, Daniel Loughran wrote: 
> >    >>Hello. I think that I may have found a bug involving elliptic 
> curves 
> >    modulo 
> >    >>powers of primes. I have attached the working jupyter notebook, but 
> my 
> >    code and 
> >    >>results are also below. 
> >    >> 
> >    >>In my code I have an elliptic curve E over Q with good reduction at 
> 2 and 
> >    the 
> >    >>point P = (2:-3:8) (homogeneous coordinates). 
> >    >> 
> >    >>It is clear that the reduction modulo 4 of this point in projective 
> space 
> >    is 
> >    >>(2:1:0). 
> >    >> 
> >    >[2:1:0] is not in that curve as 
> >    > 
> >    >1^2*0 + 1*0^2 != 1^3 - 1*0^2 
> >    > 
> >    OOops, the LHS  is 2^3 - 2*0^2 but still not equal to the RHS :) 
> > 
> >    R. 
> > 
> >    > 
> >    >The reduction given by sage is however 
> >    > 
> >    >R 
> >    >> 
> >    >>However, sage is telling me that when I reduce the curve modulo 4 
> then 
> >    ask what 
> >    >>point P reduces to, I get the identity element (0:1:0). 
> >    >> 
> >    >>My guess is that sage does something like put this point into the 
> form (1 
> >    /4:-3/ 
> >    >>8:1), then notices that 4 divides the denominator of the 
> x-coordinate so 
> >    just 
> >    >>kills it. But really it should be clearing denominators before it 
> tries 
> >    to 
> >    >>reduce modulo 4. 
> >    >> 
> >    >>There is another related bug: if I try to instead reduce this point 
> >    modulo 16, 
> >    >>then I just get the error "inverse of Mod(4, 16) does not exist". I 
> guess 
> >    this 
> >    >>is a similar problem to the above. 
> >    >> 
> >    >> 
> >    >>---------------------------------------------------------- 
> >    -------------------------------------------------------------------- 
> >    >>[                    ] 
> >    >> 
> >    >>E=EllipticCurve([0, 0, 1, -1, 0]); E 
> >    >> 
> >    >>Elliptic Curve defined by y^2 + y = x^3 - x over Rational Field 
> >    >> 
> >    >> 
> >    >>[                    ] 
> >    >> 
> >    >>P=E(2,-3,8); P 
> >    >> 
> >    >>(1/4 : -3/8 : 1) 
> >    >> 
> >    >> 
> >    >>[                    ] 
> >    >> 
> >    >>E4=E.change_ring(Integers(4)); E4 
> >    >> 
> >    >>Elliptic Curve defined by y^2 + y = x^3 + 3*x over Ring of integers 
> >    modulo 4 
> >    >> 
> >    >> 
> >    >>[                    ] 
> >    >> 
> >    >>E4(P) 
> >    >> 
> >    >>(0 : 1 : 0) 
> >    >> 
> >    >> 
> >    >>[                    ] 
> >    >> 
> >    >>P2.<X,Y,Z> = ProjectiveSpace(Integers(4),2); P2 
> >    >> 
> >    >>Projective Space of dimension 2 over Ring of integers modulo 4 
> >    >> 
> >    >> 
> >    >>[                    ] 
> >    >> 
> >    >>P2(2,-3,8) 
> >    >> 
> >    >>(2 : 1 : 0) 
> >    >> 
> >    >> 
> >    >>[                    ] 
> >    >> 
> >    >>P2(0,1,0) 
> >    >> 
> >    >>(0 : 1 : 0) 
> >    >> 
> >    >> 
> >    >>[                    ] 
> >    >> 
> >    >>P2(2,-3,8)==P2(0,1,0) 
> >    >> 
> >    >>False 
> >    >> 
> >    >> 
> >    >>[                    ] 
> >    >> 
> >    >>E16=E.change_ring(Integers(16)); E16 
> >    >> 
> >    >>Elliptic Curve defined by y^2 + y = x^3 + 15*x over Ring of 
> integers 
> >    modulo 16 
> >    >> 
> >    >> 
> >    >>[                    ] 
> >    >> 
> >    >>E16(P) 
> >    >>ZeroDivisionError: inverse of Mod(4, 16) does not exist 
> >    >> 
> >    >>-- 
> >    >>You received this message because you are subscribed to the Google 
> Groups 
> >    >>"sage-devel" group. 
> >    >>To unsubscribe from this group and stop receiving emails from it, 
> send an 
> >    email 
> >    >>to [11][1]sage-...@googlegroups.com. 
> >    >>To view this discussion on the web visit [12][2]
> https://groups.google.com 
> >    /d/msgid/ 
> >    >>sage-devel/f2900af4-6aad-4450-9e12-6f1ec95596f8%[3]
> 40googlegroups.com. 
> >    >> 
> >    >>References: 
> >    >> 
> >    >>[11] mailto:[4]sage-...@googlegroups.com 
> >    >>[12] [5]https://groups.google.com/d/msgid/sage-devel/f2900af4- 
> >    6aad-4450-9e12-6f1ec95596f8%
> 40googlegroups.com?utm_medium=email&utm_source= 
> >    footer 
> >    > 
> >    > 
> >    >-- 
> >    >You received this message because you are subscribed to the Google 
> Groups 
> >    "sage-devel" group. 
> >    >To unsubscribe from this group and stop receiving emails from it, 
> send an 
> >    email to [6]sage-...@googlegroups.com. 
> >    >To view this discussion on the web visit [7]
> https://groups.google.com/d/ 
> >    msgid/sage-devel/20200514121620.GA39760%40vertex. 
> > 
> > 
> > 
> > 
> > 
> >-- 
> >You received this message because you are subscribed to the Google Groups 
> >"sage-devel" group. 
> >To unsubscribe from this group and stop receiving emails from it, send an 
> email 
> >to [8]sage-...@googlegroups.com <javascript:>. 
> >To view this discussion on the web visit [9]
> https://groups.google.com/d/msgid/ 
> >sage-devel/344c58f2-a339-43c6-8417-93d46c05d0f7%40googlegroups.com. 
> > 
> >References: 
> > 
> >[1] javascript: 
> >[2] https://groups.google.com/d/msgid/ 
> >[3] http://40googlegroups.com/ 
> >[4] javascript: 
> >[5] 
> https://groups.google.com/d/msgid/sage-devel/f2900af4-6aad-4450-9e12-6f1ec95596f8%40googlegroups.com?utm_medium=email&utm_source=footer
>  
> >[6] javascript: 
> >[7] 
> https://groups.google.com/d/msgid/sage-devel/20200514121620.GA39760%40vertex 
> >[8] mailto:sage-...@googlegroups.com <javascript:> 
> >[9] 
> https://groups.google.com/d/msgid/sage-devel/344c58f2-a339-43c6-8417-93d46c05d0f7%40googlegroups.com?utm_medium=email&utm_source=footer
>  
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/0834dcff-25e4-4baa-b9e1-fa22f35b6656%40googlegroups.com.

Reply via email to