Lines passing through many points of the form $(c^n,c^m)$ For $c>1$ consider the subset $X\subset \mathbb R^2$ consisting of all points $(c^n,c^m)$ where $n,m\in \mathbb Z$.
Question. Suppose $L\subset \mathbb R^2$ is a line that is not horizontal, not vertical and doesn't pass through $(0,0)$. What is the maximal number of points from $X$ that $L$ can contain? (you can vary $c$)
PS. It would be great even to prove that such a number is bounded (if this is so). So far best examples have $4$ points on one line (the first one by David Speyer in the comments).
 A: I wrote Mathematica code to look for solutions to this, and I find that all the solutions with exponents up to $\pm30$ have only four points.
I looked for solutions in the form $$\{\{a,b\},\,p(x)\}$$ representing the line through $(1,1)$ whose next point is at $(x^a,x^b)$, where $p$ is irreducible, $a>0$, and $x>1$ is a root of $p$.
For instance, the line
through the points
$$\{\{x^0,x^0\},\{x^3,x^8\},\{x^4,x^{10}\},\{x^9,x^{18}\}\}$$
has the solution
$$\{\{3,8\},1+x^2+x^4-x^5-x^7\}.$$
All the solutions so far have polynomials with only $\pm1$ coefficients, usually with all the positives before the negatives. So from here someone may want to search for other solutions with similar coefficient patterns.
Meanwhile here is the code I used, with commentary.
We represent the pair of points $(x^a,x^b)$ and $(x^c,x^d)$ by the quadruple $a,b,c,d$, and loop over quadruples with $-n<a,b,c,d<n$.
Simplify[Det[{{1, 1, 1}, {1, x^a, x^b}, {1, x^c, x^d}}]]
poly[{a_, b_, c_, d_}] := (-x^a + x^b + x^c - x^(b+c) - x^d + x^(a+d)) / x^Min[a, b, c, d]
bigfactor[p_] := Select[First /@ FactorList[p], (# /. x->1) (# /. x->2) < 0 &]
normalize[p_] := p/Sign[p /. x->0]
solution[v_] := {v[[1 ;; 2]], v // poly // bigfactor // First // normalize}
solution[{3, 8, 4, 10}]

For any $a,b,c,d$, there is a polynomial which vanishes when $(x^0,x^0)$, $(x^a,x^b)$ and $(x^c,x^d)$ are collinear. It has the especially simple form $-x^a + x^b + x^c - x^{b+c} - x^d + x^{a+d}$ if $a,b,c,d$ are all positive, and can be shifted from that by $x^{\min(a,b,c,d)}$ if one of the variables is negative. We want an $x>1$ which is a root of this polynomial.
In other words, we want a factor of this polynomial with a root greater than 1. So we look for an irreducible factor which has different signs at 1 and at 2; since this factor always seems to be unique, we take only the first such factor. As an example, this procedure gets us from the quadruple $(3,8,4,10)$ to the solution above.
poly[{a, b, c, d}] /. x->2 // Simplify
poly02[{a_, b_, c_, d_}] := -2^a + 2^b + 2^c - 2^(b+c) - 2^d + 2^(a+d)
D[poly[{a, b, c, d}], {x, 2}] /. x->1 // Simplify
poly21[{a_, b_, c_, d_}] := a d - b c
goodquad[v_] := (v[[3]] > v[[1]] > 0) && (poly02[v] poly21[v] < 0)
quadruples[n_] := Select[Tuples[Range[n, -n], 4], goodquad]
quadruples[7]

We only need to consider quadruples $a,b,c,d$ which yield polynomials with roots bigger than $1$. Given the form of the polynomial, it will always have a double root at $1$, and always have the same sign at $2$ as it does for all higher values. So it is enough to look at quadruples for which poly''(1) poly(2) < 0. We also restrict to $c>a>0$.
bestof[n_] := bestof[n] = Commonest[solution /@ quadruples[n]]
check[b_, v_] := PolynomialMod[poly[Join[b[[1]], v]], b[[2]]]
exponents[b_, n_] := Select[Tuples[Range[-n, n], 2], check[b, #] == 0 &]
exponents[n_] := exponents[bestof[n] // Last, n]
bestof[19]
exponents[19]

We find the solution for all quadruples under consideration (and this is the computationally expensive step). E.g., the solution above occurs for the two quadruples $(3,8,4,10)$ and $(3,8,9,18)$. We take the solutions which appear most often, hoping to find one which appears three times even though all of the current examples appear only once or twice.
In order to make the solutions easy to count, we excluded the $c$'s and $d$'s from them. So after finding a commonly occurring solution, we can (cheaply) loop through all the possible $c$'s and $d$'s to see which points are on the associated line.
This approach is $O(n^4)$, since it involves looping through quadruples. It takes about a minute for the case $n=19$. Fortunately it never uses explicit algebraic numbers or real approximations; it sticks to integers and polynomials with integer coefficients, which lets it loop through the possibilities quickly.
