#9646: Incorrect calculation of elliptic curve formal group law
-------------------------------+--------------------------------------------
   Reporter:  hlaw             |       Owner:  cremona                        
       Type:  defect           |      Status:  needs_review                   
   Priority:  major            |   Milestone:  sage-5.0                       
  Component:  elliptic curves  |    Keywords:  elliptic curve formal group law
     Author:                   |    Upstream:  N/A                            
   Reviewer:                   |      Merged:                                 
Work_issues:                   |  
-------------------------------+--------------------------------------------

Comment(by wuthrich):

 ... and now to the other thing. As I played around with this, I found that
 I get different results than the
 [http://www.math.brown.edu/~jhs/AEC/AECErrata.pdf Errata] of
 
[http://books.google.co.uk/books?id=Z90CA_EUCCkC&lpg=PR1&ots=3K8lmtWd1a&dq=silverman%20arithmetic%20of%20elliptic%20curves&pg=PA120#v=onepage&q&f=false
 Silverman]. So I had to dig a little deeper and I found that the formula
 in Silverman are not correct.

 Here is an example. Let E be the elliptic curve `y^2 + y = x^3+1` Because
 `a1=a2=0`, the formula in the middle of page 120 of Silverman tells us
 that

 `F(t,t) = [2](t) = 2*t + t^4 + ... `

 But I claim that it should be `2*t -7*t^4`. Here is an example.

 {{{
 sage: K = Qp(43,5)
 sage: E = EllipticCurve(K,[0,0,1,0,1])
 sage: Q = E(-779/43^2,-125945/43^3)
 sage: tQ =-Q[0]/Q[1]
 sage: tQ
 24*43 + 4*43^2 + 32*43^3 + 41*43^4 + 34*43^5 + O(43^6)
 }}}

 so the point lies in the formal group. We use the multiplication law on
 the curve and find
 {{{
 sage: ttwoQ = -(2*Q)[0]/(2*Q)[1]
 sage: ttwoQ
 5*43 + 9*43^2 + 21*43^3 + 38*43^4 + 37*43^5 + O(43^6)
 }}}

 {{{
 sage: sage: 2*tQ +tQ^4
 5*43 + 9*43^2 + 21*43^3 + 28*43^4 + 37*43^5 + O(43^6)
 sage: sage: 2*tQ -7*tQ^4
 5*43 + 9*43^2 + 21*43^3 + 38*43^4 + 37*43^5 + O(43^6)
 }}}

 shows that -7 is correct. I have added a docstring in `mult_by_n` to
 illustrate that our formula is correct, because this function is computed
 without using `group_law` if the base ring is a field of char 0 (instead
 it uses the multiplication on the curve).

 In fact, the error appears as a sign error in the formula for `z_3`. The
 corrected formula should read

 `F(z_1,z_2) = z_1+z_2 -a_1 z_1z_2 -a_2(z_1^2 z_2+z_1 z_2^2) - 2a_3 z_1^3
 z_2 +(a_1 a_2-3 a_3) z_1^2 z_2^2 - 2a_3 z_1 z_2^3 + ...`

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9646#comment:6>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to