# Symbolic computation of multiples of a point in elliptic curve.

Suppose we have an elliptic curve over the rational field $E(\mathbb{Q}).$ Let $P = (s,t)\in E(\mathbb{Q})$ be a point with $s,t$ being symbolic variables. Then we see that $n*P = (f_{n1}/g_{n1}, f_{n2}/g_{n2})$, where $f_{ni}, g_{ni}$ are polynomials in the variables $s,t.$ In SageMath after defining the curve and the symbolic variables $s$ and $t$ if I write $P = E(s,t)$, it is giving error. I am looking for method by which I can find all these polynomials in the variabls $s,t$ using SageMath.

edit retag close merge delete

Could you please provide your current code so that we could understand the issue ?

( 2021-10-26 12:05:22 +0100 )edit
2

Note that if $s,t$ are symbolic variables, then $(s,t)$ is not a pair of rational numbers, so it does not lie in $E(\mathbb{Q})$. Furthermore, if $s,t$ are just symbolic variables then $t^2\neq s^3+c_4s+c_6$ identically, since they are just independent variables. You'd want to work in a ring or field where you actually have $s,t$ that satisfy the relation required. The function field of $E$ would do.

( 2021-10-26 20:43:52 +0100 )edit

Sort by » oldest newest most voted

Here a code that for a given elliptic curve $E$ and an integer $n$ returns polynomials $f_{n1}, g_{n1}, f_{n2}, g_{n2}$:

def get_poly(E, n):
P.<s,t> = PolynomialRing(E.base_ring())
a = E.a_invariants()
R = P.quotient_ring(t^2 + (a[0]*s + a[2])*t - (s^3 + a[1]*s^2 + a[3]*s + a[4])).fraction_field()
Q = E.change_ring(R)(s,t) * n
return Q[0].numerator().lift(), Q[0].denominator().lift(), Q[1].numerator().lift(), Q[1].denominator().lift()


For example, get_poly( EllipticCurve(QQ,[1,2]), 2 ) gives:

(s*t^2 - 3*s^2 - 18*s + 1,  4*t^2,  t^4 + 3*s*t^2 - 9*s^2 + 36*t^2 - 54*s - 109,  8*t^3)

more