#7927: Extend coleman integration to handle Weierstrass points
-----------------------------+----------------------------------------------
Reporter: robertwb | Owner: was
Type: defect | Status: needs_work
Priority: major | Milestone: sage-4.3.3
Component: number theory | Keywords:
Author: | Upstream: N/A
Reviewer: | Merged:
Work_issues: |
-----------------------------+----------------------------------------------
Comment(by kedlaya):
It appears I spoke to soon. An example which used to work but is now
broken:
{{{
sage: R.<x> = QQ['x']
sage: H = HyperellipticCurve(x^3+1)
sage: K = Qp(5,8)
sage: HK = H.change_ring(K)
sage: P = HK(0,1)
sage: Q = HK.lift_x(5)
sage: HK.tiny_integrals_on_basis(P,Q)
---------------------------------------------------------------------------
ValueError Traceback (most recent call
last)
/home/r1/kedlaya/.sage/temp/dwork.mit.edu/31681/_home_r1_kedlaya__sage_init_sage_0.py
in <module>()
/scratch/sage-4.2.1/local/lib/python2.6/site-
packages/sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.pyc
in tiny_integrals_on_basis(self, P, Q)
298 R = PolynomialRing(self.base_ring(), ['x', 'y'])
299 x, y = R.gens()
--> 300 return self.tiny_integrals([x**i for i in
range(2*self.genus())], P, Q)
301
302
/scratch/sage-4.2.1/local/lib/python2.6/site-
packages/sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.pyc
in tiny_integrals(self, F, P, Q)
250 P and Q MUST be in the same residue disk for this result
to make sense.
251 """
--> 252 x, y, z = self.local_analytic_interpolation(P, Q)
#homogeneous coordinates
253 x = x/z
254 y = y/z
/scratch/sage-4.2.1/local/lib/python2.6/site-
packages/sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.pyc
in local_analytic_interpolation(self, P, Q)
82 """
83 prec = self.base_ring().precision_cap()
---> 84 if self.is_same_disc(P,Q) == False:
85 raise ValueError, "%s and %s are not in the same
residue disc"%(P,Q)
86 disc = self.residue_disc(P)
/scratch/sage-4.2.1/local/lib/python2.6/site-
packages/sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.pyc
in is_same_disc(self, P, Q)
238 False
239 """
--> 240 if self.residue_disc(P) == self.residue_disc(Q):
241 return True
242 else:
/scratch/sage-4.2.1/local/lib/python2.6/site-
packages/sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.pyc
in residue_disc(self, P)
203 yPv = P[1].valuation()
204 F = self.base_ring().residue_field()
--> 205 HF = self.change_ring(F)
206 if P == self(0,1,0):
207 return HF(0,1,0)
/scratch/sage-4.2.1/local/lib/python2.6/site-
packages/sage/schemes/hyperelliptic_curves/hyperelliptic_generic.pyc in
change_ring(self, R)
78 y = self._printing_ring.gen()
79 x = self._printing_ring.base_ring().gen()
---> 80 return HyperellipticCurve(f.change_ring(R), h,
"%s,%s"%(x,y))
81
82 def _repr_(self):
/scratch/sage-4.2.1/local/lib/python2.6/site-
packages/sage/schemes/hyperelliptic_curves/constructor.pyc in
HyperellipticCurve(f, h, names, PP)
94 return HyperellipticCurve_g2_finite_field(PP, f, h,
names=names, genus=g)
95 else:
---> 96 return HyperellipticCurve_finite_field(PP, f, h,
names=names, genus=g)
97 elif is_RationalField(R):
98 if g == 2:
/scratch/sage-4.2.1/local/lib/python2.6/site-
packages/sage/schemes/hyperelliptic_curves/hyperelliptic_generic.pyc in
__init__(self, PP, f, h, names, genus)
66 names = names.split(",")
67 self._names = names
---> 68 P1 = PolynomialRing(R,name=names[0])
69 P2 = PolynomialRing(P1,name=names[1])
70 self._PP = PP
/scratch/sage-4.2.1/local/lib/python2.6/site-
packages/sage/rings/polynomial/polynomial_ring_constructor.pyc in
PolynomialRing(base_ring, arg1, arg2, sparse, order, names, name,
implementation)
341 raise TypeError, "if second arguments is a string
with no commas, then there must be no other non-optional arguments"
342 name = arg1
--> 343 R = _single_variate(base_ring, name, sparse,
implementation)
344 else:
345 # 2-4. PolynomialRing(base_ring, names,
order='degrevlex'):
/scratch/sage-4.2.1/local/lib/python2.6/site-
packages/sage/rings/polynomial/polynomial_ring_constructor.pyc in
_single_variate(base_ring, name, sparse, implementation)
393 def _single_variate(base_ring, name, sparse, implementation):
394 import sage.rings.polynomial.polynomial_ring as m
--> 395 name = normalize_names(1, name)
396 key = (base_ring, name, sparse, implementation)
397 R = _get_from_cache(key)
/scratch/sage-4.2.1/local/lib/python2.6/site-
packages/sage/structure/parent_gens.so in
sage.structure.parent_gens.normalize_names
(sage/structure/parent_gens.c:2089)()
/scratch/sage-4.2.1/local/lib/python2.6/site-
packages/sage/structure/parent_gens.so in
sage.structure.parent_gens._certify_names
(sage/structure/parent_gens.c:1647)()
ValueError: variable names must be alphanumeric, but one is '(1 +
O(5^8))*x' which is not.
}}}
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/7927#comment:5>
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.