# Elliptic curve defined over completion

I have an elliptic curve E defined over the rationals and K is an imaginary quadratic field. I have a Heegner point P for E over K. I also have a rational prime p. Let q be a prime of K above p. I would like to use Sage to check whether the point P is divisible by p in E(K) and also in E(Kq) where Kq is the completion of K at the prime q. To check this in E(K) is easy; one can use the heegner_index() function or one can use the division_points() function. I am wondering if there is a way in Sage to do my required check in E(Kq). It seems to me that completions of number fields at finite primes are not defined in Sage.

edit retag close merge delete

Sort by ยป oldest newest most voted

Sage does have p-adic fields, but no-one has yet implemented completions of number fields at finite places (see K.completeion? where K is a number field). You should still be able to manually construct the apprpriate p-adic field and base-change the elliptic curve to it.

Here's an example with a split prime, which is easier:

sage: K.<a> = NumberField(x^2 - x + 1)
sage: Q7 = Qp(7, prec=20)
sage: e1, e2 = K.embeddings(Q7)
sage: E = EllipticCurve('389a1').change_ring(K)
sage: Q = E.gens()[0]; Q
(-1 : 1 : 1)
sage: Q.division_points(5)
[]
sage: E.change_ring(e1)(Q).division_points(5)
[(2*7 + 5*7^2 + 3*7^4 + 6*7^5 + 3*7^6 + 4*7^7 + 7^8 + 7^9 + 4*7^10 + 3*7^11 + 4*7^12 + 3*7^13 + 7^14 + 5*7^16 + 4*7^18 + 5*7^19 + O(7^20) : 6 + 3*7 + 7^2 + 4*7^3 + 5*7^5 + 5*7^7 + 2*7^8 + 6*7^9 + 6*7^10 + 3*7^11 + 5*7^12 + 6*7^14 + 5*7^15 + 4*7^16 + 7^17 + 6*7^18 + O(7^20) : 1 + O(7^20))]

more