#5948: Coleman integrals of df*f
--------------------------------+-------------------------------------------
 Reporter:  jen                 |       Owner:  robertwb  
     Type:  defect              |      Status:  new       
 Priority:  major               |   Milestone:  sage-3.4.2
Component:  algebraic geometry  |    Keywords:            
--------------------------------+-------------------------------------------
 This is a problem arising from the computation of iterated Coleman
 integrals. It seems that (single) Coleman integrals of df*f for f coming
 from the MW-reduction are wrong.

 Here's the setup:
 {{{
 sage: R.<x> = QQ['x']
 sage: E= HyperellipticCurve(x^3-4*x+4)
 sage: K = Qp(5,10)
 sage: EK = E.change_ring(K)
 sage: P = EK(2,2)
 sage: Q = EK(-2,-2)
 sage: P = EK.teichmuller(P)
 sage: Q = EK.teichmuller(Q)
 sage: import sage.schemes.elliptic_curves.monsky_washnitzer as
 monsky_washnitzer
 sage: M_frob, forms =
 monsky_washnitzer.matrix_of_frobenius_hyperelliptic(EK)
 sage: f = forms[0]
 }}}

 We know that int(df df,P,Q) = 1/2*int(df,P,Q)^2^, where the integral
 on the LHS is iterated and the integral on the RHS is a usual Coleman
 integral. Using a single Coleman integral to compute this gives

 {{{
 sage: 1/2*EK.coleman_integral(f.diff(),P,Q)^2
 3*5^2 + 5^3 + 5^4 + 5^5 + 4*5^6 + 2*5^7 + 4*5^8 + 5^9 + 3*5^10 + 4*5^11 +
 O(5^12)
 }}}
 We also can expand int(df df,P,Q) = f(Q)*(f(Q)-f(P)) - int(df*f,P,Q) (*)

 Now let's check the things on the RHS of (*)

 {{{
 sage: EK.coleman_integral(-f.diff(),P,Q) == f(Q[0],Q[1])-f(P[0],P[1])
 True
 }}}

 So the first term is computed consistently (modulo the minor problem
 with f.diff() -- see #5947). The second term is the problem, and here's
 why:
 integrating by parts, we have
 int(f*df,P,Q) + int(df*f, P,Q) = f^2^(Q)-f^2^(P), which gives
 int(df*f,P, Q) = 1/2*(f^2^(Q)-f^2^(P)).                   (**)

 Computing the LHS of (**)  gives:

 {{{
 sage: EK.coleman_integral(-f.diff()*f,P,Q)
 2*5^2 + 2*5^3 + 2*5^4 + 5^6 + 5^7 + 4*5^8 + 2*5^10 + 3*5^11 + O(5^12)
 }}}

 Computing the RHS of (**) gives
 {{{
 sage: g = f^2
 sage: 1/2*(g(Q[0],Q[1])-g(P[0],P[1]))
 2*5^2 + 2*5^3 + 2*5^6 + 4*5^7 + 3*5^8 + 2*5^9 + 2*5^11 + O(5^12)
 }}}

 So they're good up to 2 digits, but no more. The RHS is the correct one:

 {{{
 sage: f(Q[0],Q[1])*(f(Q[0],Q[1])-f(P[0],P[1])) -
 1/2*(g(Q[0],Q[1])-g(P[0],P[1])) ==
 1/2*EK.coleman_integral(-f.diff(),P,Q)^2
 True
 }}}

 Thus the bug is with

 {{{
 EK.coleman_integral(-f0.diff()*f0,P,Q)
 }}}

 I looked at the code briefly, but at first glance, it doesn't look like
 the coercion into MonskyWashnitzerDifferentialRing changes much :

 {{{
 sage: EK.coleman_integral(-f0.diff()*f0,P,Q,True)         #skipping
 the coercion step
 2*5^2 + 2*5^3 + 2*5^4 + 5^6 + 5^7 + 4*5^8 + 5^11 + O(5^12)
 sage: EK.coleman_integral(-f0.diff()*f0,P,Q,False)       #the usual
 2*5^2 + 2*5^3 + 2*5^4 + 5^6 + 5^7 + 4*5^8 + 2*5^10 + 3*5^11 + O(5^12)
 }}}

 So maybe it's something with the reduction?

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/5948>
Sage <http://sagemath.org/>
Sage - Open Source Mathematical Software: Building the Car Instead of 
Reinventing the Wheel

--~--~---------~--~----~------------~-------~--~----~
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