What is the function of lift(Q) in PARI/GP?

515 Views Asked by At

I would like to call PARI/GP from Python. I need to use ellisdivisible(E; P; n;{&Q}) function of PARI (see function no 3.15.35 on page 441 in this link:)

Given $E=K$ a number field and $P$ in $E(K)$ return 1 if $P = [n]R$ for some $R$ in $E(K)$ and set $Q$ to one such $R$; and return 0 otherwise.

There is a option lift(Q), what does it do? It does not gives $R$, I tried the following example -

parisize = 8000000, primelimit = 500000
 > E = ellinit([0,0,0,0,1])
%1 = [0, 0, 0, 0, 1, 0, 0, 4, 0, 0, -864, -432, 0, Vecsmall([1]), [Vecsmall([128, -1])], [0, 0, 0, 0, 0, 0, 0, 0]]
>  P = [0,1]
%2 = [0, 1]
> ellisdivisible(E,P,2, &Q)
%3 = 1
> lift(Q)
%4 = [0, -1]

But $R=(2, 3),[2] R=[2](2, 3)=P$. So, what does lift(Q) do?

1

There are 1 best solutions below

2
On BEST ANSWER

You are considering the elliptic curve $y^2 = x^3 + 1$. You are right that $[2](2,3) = (0,1)$:

? ellmul(E,[2,3],2)
%2 = [0, 1]

But also $[2](0,-1) = (0,1)$:

? ellmul(E,[0,-1],2)
%3 = [0, 1]

So $(2,3)$ and $(0,-1)$ are both candidates $R$ such that $[2]R = (0,1)$.

The function ellisdivisible gives one such $R$, in this case the latter.

The function lift is for lifting e.g. (vectors of) integers modulo $p$ to (vectors of) integers, or (vectors of) polynomials modulo $f$ to (vectors of) polynomials. There is no use for this here, because you are already working over the integers/rationals. In the documentation of ellisdivisible there is an example of an elliptic curve over a number field, and lift is used there because the output is easier on the eye. Compare:

? Q
%4  = [Mod(-t^7 - t^6 - t^5 - t^4 + 1, t^10 + t^9 + t^8 + t^7 + t^6 + t^5 + t^4 + t^3 + t^2 + t + 1), Mod(-t^9 - 2*t^8 - 2*t^7 - 3*t^6 - 3*t^5 - 2*t^4 - 2*t^3 - t^2 - 1, t^10 + t^9 + t^8 + t^7 + t^6 + t^5 + t^4 + t^3 + t^2 + t + 1)]
? lift(Q)
%5 = [-t^7 - t^6 - t^5 - t^4 + 1, -t^9 - 2*t^8 - 2*t^7 - 3*t^6 - 3*t^5 - 2*t^4 - 2*t^3 - t^2 - 1]