Let $P_1(x_1,y_1),P_2(x_2,y_2)...P_n(x_n,y_n)$ be $n$ rational points on given Elliptic curve. How do we prove they are independent? Are there any theorems/results/algorithms/softwares to prove their independence?
-
3$\begingroup$ In general, this is a difficult problem. I think that they are $\Bbb Z$-linearly independent iff the determinant of the matrix $(\langle P_i, P_j \rangle)_{i,j}$ is not zero, where $\langle -,- \rangle$ is the Néron-Tate height pairing. $\endgroup$– WatsonCommented Dec 1, 2018 at 15:14
-
$\begingroup$ @Watson The application of this result is exactly what I found in one of the papers. But, I am not able to find resources/references for this result? $\endgroup$– ershCommented Dec 1, 2018 at 18:06
-
2$\begingroup$ See §2.7 in Lozano-Robledo Elliptic curves, modular forms, and their L-functions, or prop. 4.10 here (click on "view" on the bottom of the page). $\endgroup$– WatsonCommented Dec 1, 2018 at 18:46
-
$\begingroup$ Thank you! This is very helpful! $\endgroup$– ershCommented Dec 1, 2018 at 22:07
1 Answer
This has already somewhat been answered in the comments but I'd like to add a little example of a Sage session playing with this.
The point is that the canonical height pairing is a symmetric bilinear map $$ E(\mathbf Q ) \times E(\mathbf Q) \to \mathbf R $$ so if there is a linear relationship between some points, there should be the same relationship between all of their heights.
You should be able to do all of this in a Sage session (Sage is free!) (there was a bug with the rational_points command in some recent versions of sage so that might not work depending on your version)
Let's start with a not-so-randomly-chosen elliptic curve (I picked this one to have rank 4 so that this would be interesting, see http://www.lmfdb.org/EllipticCurve/Q/?rank=4)
sage: E = EllipticCurve([1, -1, 0, -79, 289])
sage: E.rational_points(bound=10)
[(-10 : 3 : 1),
(-10 : 7 : 1),
(-9 : -10 : 1),
(0 : 1 : 0),
(3 : -10 : 1),
(3 : 7 : 1),
(4 : -7 : 1),
(4 : 3 : 1),
(5 : -3 : 1),
(5 : -2 : 1),
(6 : -5 : 1),
(6 : -1 : 1),
(7 : -10 : 1),
(7 : 3 : 1),
(8 : 7 : 1)]
sage: L = E.rational_points(bound=10)
L
is the list of a whole bunch of points we found now
We take the pairing matrix of the first two points, looks rank 1 so determinant 0!
sage: E.height_pairing_matrix(L[0:2])
[ 2.38682061714418 -2.38682061714418]
[-2.38682061714418 2.38682061714418]
and it is! we should expect this though, points 0 and 1 have the same x-coord so are inverses of each other
sage: E.height_pairing_matrix(L[0:2]).determinant()
0.000000000000000
what about points 1,2?
sage: E.height_pairing_matrix(L[1:3])
[ 2.38682061714418 0.126691370405363]
[0.126691370405363 2.68947630168514]
doesn't look rank $\lt 2$ at all! though it is always symmetric
Similar for points 7,8
sage: E.height_pairing_matrix(L[7:9])
[ 1.17647633591898 0.167621062889770]
[0.167621062889770 1.20262600414243]
sage: E.height_pairing_matrix(L[7:9]).determinant()
1.38676421411007
We can try 3 other points now
sage: L[5:10:2]
[(3 : 7 : 1), (4 : 3 : 1), (5 : -2 : 1)]
sage: E.height_pairing_matrix(L[5:10:2]).determinant()
1.30015022478383
this is clearly non-zero so assuming correctness of the software these three points are independent.
What about non-independence, in general it is notoriously hard to prove real numbers are zero on a computer, leading to problems when trying to prove dependence in general. With rational points of elliptic curves though we are fundamentally in a finitely generated abelian group though, so we can do more
Here are 4 points, which don't have an obvious relationship by glancing at!
sage: L[4:12:2]
[(3 : -10 : 1), (4 : -7 : 1), (5 : -3 : 1), (6 : -5 : 1)]
sage: E.height_pairing_matrix(L[4:12:2])
[ 1.72683492334016 -0.959801459379726 0.222652978555837 0.767033463960439]
[-0.959801459379726 1.17647633591898 -0.167621062889770 0.216674876539249]
[ 0.222652978555837 -0.167621062889770 1.20262600414243 0.0550319156660674]
[ 0.767033463960439 0.216674876539249 0.0550319156660674 0.983708340499687]
Looks like the determinant is zero:
sage: E.height_pairing_matrix(L[4:12:2]).det()
-2.66453525910038e-15
So are they dependent? Lets give the matrix we think has some kernel a name.
sage: M = E.height_pairing_matrix(L[4:12:2])
Sage will complain if you ask it for the kernel as we are over the reals to some finite precision, so we use a little trick:
sage: M.change_ring(QQ).eigenvectors_right()
[(1.833143676963028?e-16,
[(1, 1.000000000000000?, 1.?e-16, -1.000000000000000?)],
1),
(1.135131138616548?,
[(1, -2.478168820884934?, -8.24803196664211?, -1.478168820884934?)],
1),
(1.289199998123811?,
[(1, 3.978262464606312?, -1.966228843927413?, 4.978262464606312?)],
1),
(2.665314467160902?,
[(1, -0.615399695397310?, 0.2372153947344239?, 0.3846003046026902?)],
1)]
So it looks like $(1,1,0,-1)$ is a kernel vector (i.e. $L[4] + L[6] = L[10]$)
sage: M*matrix([[1],[1],[0],[-1]])
[ 0.000000000000000]
[ 5.55111512312578e-17]
[-5.55111512312578e-17]
[-1.11022302462516e-16]
sage: L[4] + L[6] - L[10]
(0 : 1 : 0)
indeed this is a relation.
-
$\begingroup$ That is very helpful . Thanks for your time! $\endgroup$– ershCommented Dec 4, 2018 at 1:12