Skip to main content
3 of 3
Fixed obvious typos.
David White
  • 30.3k
  • 9
  • 154
  • 250

Sage: Evaluation precision for elliptic curves over p-adic fields

Consider the elliptic curve $E: y^2 = x^3 + 23x+11$ over p-adic fields. In Sage I use:

k = GF(257)
E = EllipticCurve(k,[23,11])
kp = Qp(257,5) # 257-adic Field with capped relative precision 5
Ep = E.change_ring(kp)

Now, Ep is the Elliptic Curve defined by y^2 = x^3 + (23+O(257))*x + (11+O(257)) over 257-adic Field with capped relative precision 5.

On this curve there is a point with coordinates (7,258). In Sage:

s = Ep([7,258])
print s
(7 + O(257^5) : 1 + 257 + O(257^5) : 1 + O(257^5))

So far so good, everything works as expected.

s has order 83. Therefore 84*s=s. In Sage:

t=84*s
print t
(7 + O(257) : 1 + O(257) : 1 + O(257^5))

Notice how this is indeed the same expression as for s, but evaluated only to lowest order in the p-adic expansion.

My question is: How can I evaluate (and display) t to higher orders in the p-adic expansion. Specifically in the example above: How do I recover that the second coordinate of t is 1 + 257 + O(257^5) rather than just 1 + O(257)?