Finding all solutions to $y^3 = x^2 + x + 1$ with $x,y$ integers larger than $1$
Solution 1:
I have not verified your work. This is just to say that $y^3=x^2+x+1$ is the equation of an elliptic curve (with $j$-invariant equal to $0$). Using Sage or Magma, you can find that this elliptic curve has rank $1$ and trivial torsion subgroup. The group of rational points is generated by the point $P=(0,1)$, and the rest of the rational points are all the multiples of $P$:
\begin{align*} & \vdots \\ -3P &=\left(-\frac{703}{216},\frac{73}{36}\right)\\ -2P &=\left(18 , 7 \right)\\ -P &=\left(-1,1\right)\\ 0 & = \infty\\ P &=\left(0,1\right)\\ 2P &=\left(-19 , 7\right)\\ 3P &=\left(\frac{487}{216},\frac{73}{36}\right)\\ &\vdots \end{align*} Now one can use the rest of the theory of elliptic curves to show that the only integral points are $(18,7)$, $(-1,1)$, $(0,1)$, and $(-19,7)$. So the only solution $(x,y)$ with $x,y>1$ is $(18,7)$ as you found.
Solution 2:
Your proof is basically valid, but there are special circumstances for this particular ring of (algebraic) integers. You first need to check that $y$ can't be divisible by $3.$ Note that ( in the usual ring of integers), if we have $3$ divides $1 + x + x^{2},$ then we must have $x \equiv 1$ (mod $3$),say $x = 3z+1$ for some integer $z.$ Then $x^{2}+x +1 = 9z^{2} +9z+3,$ which is not divisible by $9,$ so $y$ is not divisible by $3.$ You are implicitly using the fact that $R = \mathbb{Z}[\omega]$ is a unique factorization domain. This is true- it is a principal ideal ring, in fact a Euclidean ring, where we define $d(a+b\omega) = a^{2}-ab +b^{2}.$ It is true, but not completely straightforward to prove, that if $u,v \in R,$ we may write $v = qu +r$ where $q,r \in R$ and either $r=0$ or $d(r) <d(u).$ The ring $R$ is sometimes known as the ring of Eisenstein integers. This $d$ function allows the usual theory of primes and unique decomosition of non-units as products of primes as developed by Euclid in the usual integers to proceed with little change (hence the expression Euclidean ring). There are, however, many rings of algebraic integers for which uniqueness of factorization fails, so this is a rather special situation. Anyway, your conclusion that $y^{3} = x^{2}+x+1 = (x-\omega)(x-\omega^{2})$ implies that $x-\omega = u(a+b\omega)^{3}$ for some unit $u$ and integers $a$ and $b$ is correct -as long as you know that $x - \omega$ and $x-\omega^{2}$ have no (non-unit) common factor in $R$. This is, in fact, true- anything which divides both $x- \omega$ and $x - \omega^{2}$ must divide $\omega - \omega^{2} = (x - \omega^{2})- (x-\omega).$ However $(\omega - \omega^{2})(\omega^{2}- \omega) = 3$, so $\omega - \omega^{2}$ does not factor further in $R$ (apart from unit factors). However, $\omega - \omega^{2}$ does not divide $y$ in $R,$ or else $3$ would divide $y^{2}$ in $\mathbb{Z},$ which we know it does not. The theory behind knowing how Mathematica finishes from this point is explained in other answers, though I believe it should be possible to devise a direct proof within $R$.
Solution 3:
As far as I can tell — with the qualification that I'm shaky on "strange integers" as well — I believe your solution and use of quadratic integers is correct and valid.
As to your embedded question about the use of computer applications in a proof or solution... It in no way invalidates your approach. However, there are several things to consider.
If you use algebra to reduce your original equation to another equation, and then rely on a computer application to find solutions of that new equation, you are simply off-loading — or, more likely, up-loading — effort to the application. That application may use extremely complex algorithms, or bounds which rely upon complicated mathematical proofs and theorems, in order to give you solutions. Hence you may have made the method more complicated than it seems at first, and possibly more complicated than it needs to be.
Methods aided by computer applications require verification of the application algorithm before the result can be fully validated. In many cases — like yours, where you have [assumedly] used a well-known, documented, and verified function in a widely-used application to determine a “complete set of solutions” — this step is easy (and usually assumed). In the case where you might have developed your own functions or full program to do the math, the application code and algorithms themselves would have to be independently validated before your result could be accepted.