Symbolic point in an elliptic curve over $\mathbb{Q}$ in SageMath

122 Views Asked by At

I want to study the behavior of polynomials sitting in the co-ordinates of multiples of a rational point of an elliptic curve over $\mathbb{Q}, $ $E(\mathbb{Q}).$ Suppose if we take a point $P = (s,t) \in E(\mathbb{Q}).$ And then we take iteration the point $P$ like $nP , n \in \mathbb{Z}$. Then we will have $nP = (f_{n1}/g_{n1}, f_{n2}/g_{n2})$ where $f_{ni}, g_{ni}$ are polynomials in the variables $s,t$. I want to see those polynomials by using symbolic expression in sage. I tried declaring two symbolic variables $s,t$ but when I assigned the point $P = (s,t)$ error was shown. How to get those polynomials using SageMath?

1

There are 1 best solutions below

3
On

If you were intent on making your approach work then in principle one could do the following. Let $E$ be the elliptic curve defined over $\mathbb{Q}(a,b)$ (i.e., specialising $a,b$ you get an elliptic curve over $\mathbb{Q}$) given by

$$f(x,y) = y^2 -( x^3 + ax + b) = 0$$

The idea is not to consider $E$ as an elliptic curve over $\mathbb{Q}(a,b)$, but instead as defining a curve over the function field $\mathbb{Q}(a,b)(E)$ (i.e., an elliptic curve with coefficients in $\mathbb{Q}(a,b)(E)$ with coefficients actually living in $\mathbb{Q}(a,b)$).

In this case $P = (s,t)$ is a generic point on $E$, and we can perform the usual manipulations. In Magma one could do this as

K<a,b> := FunctionField(Rationals(), 2);
E := EllipticCurve([a,b]);
F<s,t> := FunctionField(E);
E_F := BaseChange(E, F);
P := E_F![s,t];

Note that computations will get expensive fast.

In practice it will be much easier to take the general point summation formulae and repeatedly apply them (if you want to get to large values of $n$, then you'll want to "double and add"). To do this, define some function field $\mathbb{Q}(a,b,s,t, s',t')$ (in Magma you'd do this with FunctionField(Rationals(), 6), not sure what the syntax is in Sage) then define functions giving the numerator and denominators of $(s,t) + (s',t')$ and $2(s,t)$. By iteratively composing these you'll obtain the formulae you want.