Ticket #8498 (closed defect: fixed)

Opened 6 months ago

Last modified 6 months ago

bug in has_good_reduction for a point on an elliptic curve over a number field

Reported by: wuthrich Owned by: cremona
Priority: major Milestone: sage-4.3.4
Component: elliptic curves Keywords: good reduction points
Cc: Author(s): John Cremona
Report Upstream: N/A Reviewer(s): Chris Wuthrich
Merged in: sage-4.3.4.rc0 Work issues:

Description

Jean Gillibert reported me the following bug. Define

E = EllipticCurve('11a1')
K.<t> = NumberField(x^2+47)
EK = E.base_extend(K)
T = EK(5,5)
P = EK(-2, -1/2*t - 1/2)
p = K.ideal(11)

Then the following works fine

sage: T.has_good_reduction(p)
False

but not this one :

P.has_good_reduction(p)

Attachments

trac_8498-has_good_reduction.patch Download (1.9 KB) - added by cremona 6 months ago.
Applies to 4.3.4.alpha1

Change History

  Changed 6 months ago by wuthrich

More precisely, I get the error

/home/pmzcw/prog/sage/local/lib/python2.6/site-packages/sage/schemes/elliptic_curves/ell_point.pyc in has_good_reduction(self, P)
   1554         F = Emin.defining_polynomial()
   1555         for v in F.variables():
-> 1556             if F.derivative(v)(xyz).valuation(P) == 0:
   1557                 return True
   1558         return False

/home/pmzcw/prog/sage/local/lib/python2.6/site-packages/sage/structure/element.so in sage.structure.element.Element.__getattr__ (sage/structure/element.c:2743)()

/home/pmzcw/prog/sage/local/lib/python2.6/site-packages/sage/structure/parent.so in sage.structure.parent.getattr_from_other_class (sage/structure/parent.c:2844)()

/home/pmzcw/prog/sage/local/lib/python2.6/site-packages/sage/structure/parent.so in sage.structure.parent.raise_attribute_error (sage/structure/parent.c:2611)()

AttributeError: 'sage.rings.polynomial.multi_polynomial_libsingular.MPolynomial_libsingular' object has no attribute 'valuation'

  Changed 6 months ago by cremona

I'll look into this -- my code :(

  Changed 6 months ago by cremona

This is weird: I evaluate a polynomial f in K[X,Y,Z] at a triple [x,y,z], but the value lands up not in K but in K[X,Y,Z] again (as a constant polynomial, rather than an actual constant in K). This is not what the _call__ function for multivariable polynomials says. I can fix this here, but it is symptomatic of a deeper problem.

Changed 6 months ago by cremona

Applies to 4.3.4.alpha1

  Changed 6 months ago by cremona

  • keywords good reduction points added
  • status changed from new to needs_review
  • author set to John Cremona

Patch attached, applies to 4.3.4.alpha1. I tested everything in sage/schemes/elliptic curves, and included a doctest example showing that the example above now works.

follow-up: ↓ 6   Changed 6 months ago by wuthrich

  • status changed from needs_review to positive_review
  • reviewer set to Chris Wuthrich

All tests pass. Thanks for the very fast resolution of this.

As you said, the patch fixes the problem for the has_good_reduction function, but the same issue may arise else where. Could you open another ticket for the general problem ?

in reply to: ↑ 5   Changed 6 months ago by cremona

Replying to wuthrich:

All tests pass. Thanks for the very fast resolution of this. As you said, the patch fixes the problem for the has_good_reduction function, but the same issue may arise else where. Could you open another ticket for the general problem ?

See #8502

  Changed 6 months ago by mvngu

  • status changed from positive_review to closed
  • resolution set to fixed
  • merged set to sage-4.3.4.rc0
Note: See TracTickets for help on using tickets.