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

Old description:

> If `F(t1, t2)` is a formal group law, then `F(t1, t2) = t1 + t2 (mod
> t1*t2)`.  So in particular, the coefficients of `t1^i` and `t2^i` are
> zero for all `i > 1`.  However the formal group law of an elliptic curve
> as returned by Sage includes (at least) the terms `-a1^2*t1^3` and
> `-a1^2*t2^2`, as the following example shows:
> {{{
> sage: P.<a1, a2, a3, a4, a6> = PolynomialRing(ZZ, 5)
> sage: E = EllipticCurve(list(P.gens()))
> sage: F = E.formal().group_law(prec = 4)
> sage: t2 = F.parent().gen()
> sage: t1 = F.parent().base_ring().gen()
> sage: F(t1, 0)
> t1 - a1^2*t1^3   # should be t1
> sage: F(0, t2)
> t2 - a1^2*t2^3
> }}}
> Note also that the coefficient of `t1^2*t2 + t1*t2^2` returned by sage is
> `-a1^2 - a2`, whereas, according to Silverman AEC IV.1, it should be
> simply `-a2`.

New description:

 If `F(t1, t2)` is a formal group law, then `F(t1, t2) = t1 + t2 (mod
 t1*t2)`.  So in particular, the coefficients of `t1^i` and `t2^i` are zero
 for all `i > 1`.  However the formal group law of an elliptic curve as
 returned by Sage includes (at least) the terms `-a1^2*t1^3` and
 `-a1^2*t2^2`, as the following example shows:
 {{{
 sage: P.<a1, a2, a3, a4, a6> = PolynomialRing(ZZ, 5)
 sage: E = EllipticCurve(list(P.gens()))
 sage: F = E.formal().group_law(prec = 4)
 sage: t2 = F.parent().gen()
 sage: t1 = F.parent().base_ring().gen()
 sage: F(t1, 0)
 t1 - a1^2*t1^3   # should be t1
 sage: F(0, t2)
 t2 - a1^2*t2^3
 }}}
 Note also that the coefficient of `t1^2*t2 + t1*t2^2` returned by sage is
 `-a1^2 - a2`, whereas, according to Silverman AEC IV.1, it should be
 simply `-a2`.

 This was obtained in Sage 4.4.4 on MacOS X 10.5.8 (32 bit).

--

Comment(by hlaw):

 Added my Sage version and system info.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9646#comment:1>
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