#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.