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