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?
You are considering the elliptic curve $y^2 = x^3 + 1$. You are right that $[2](2,3) = (0,1)$:
But also $[2](0,-1) = (0,1)$:
So $(2,3)$ and $(0,-1)$ are both candidates $R$ such that $[2]R = (0,1)$.
The function
ellisdivisiblegives one such $R$, in this case the latter.The function
liftis 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 ofellisdivisiblethere is an example of an elliptic curve over a number field, andliftis used there because the output is easier on the eye. Compare: