I wonder whether the fundamental theorem of algebra holds in intuitionistic logic, using constructive complex numbers. (To get around the fact that in general we cannot compute the degree of a polynomial with arbitrary coefficients, let us assume that the polynomial is monic of degree $n$.)
My thoughts on the standard classical proofs:
- The Galois theoretic proof seems to have little promise, given that the exact structure of the Galois group of a polynomial, even for rational coefficients, is heavily dependent on the exact values of the coefficients. Also, part of the topological prerequisites for the argument is the intermediate value theorem for odd degree real polynomials -- and trying to prove that in intuitionistic logic might be involved, needing to take into account the possibility of multiple roots.
- The complex analysis proofs would need to be examined in detail, given that for example, the intermediate value theorem is not true in intuitionistic logic.
On the other hand, turning to some of the ways that roots of polymomials are actually computed in general:
- Newton's method has the issue that with some starting conditions, the method might not converge (or at some point, you might even hit a root of the derivative, so the algorithm would spin its wheels trying to find the inverse of a constructive real number which turns out to be zero). Also, the proofs I'm aware of for convergence when you start close enough to a root depend on the multiplicity of the root, and the multiplicity of the root is not decidable in a constructive setting. So, a real implementation might get away with starting with some random initial condition, hoping to get convergence from there, and maybe restarting with a new random initial condition if it doesn't reach convergence within some time. On the other hand, a constructive proof that a root exists would have to show that some initial condition exists for which Newton's method converges, in a constructive way -- for example, maybe that some grid of candidates with small enough separation must contain a candidate that will work.
- Finding an eigenvalue of the companion matrix has similar issues: the possibility that an initial vector for iterating $A^n x$ might turn out to be a bad choice; proofs of convergence that depend on the multiplicity of the eigenvalue; and so on. At least in this case, it might be easier to see a sufficient condition for $\lambda_0$ such that $A - \lambda_0 I$ has a unique eigenvalue of maximum modulus, and for $x_0$ which has a nonzero coefficient in the eigenvector for that maximum modulus eigenvalue, such that we can prove that one of some finite number of choices must work. On the other hand, I'm not as familiar with how an algorithm might be able to detect a provable situation of convergence; whereas with Newton's method, for example if you're close enough to a single root, then you should be able to detect that conditions for a constructive proof of convergence of Newton's method will hold.
To give a nonstandard algorithm, it might be possible to use a winding number sort of argument via a process which repeatedly divides a candidate region roughly in half. What I'm thinking: if you have some rectangle which avoids the roots of the polynomial, then if you partition the rectangle into small enough pieces, in principle it should be possible to get a sufficiently accurate estimate of $\oint_R \frac{f'(z)}{f(z)} dz$ to get a constructive proof of what the winding number for the image of $f$ on the rectangle must be. Therefore, if you have some candidate rectangle which you know contains exactly $d$ roots, then take $d+1$ candidates for a vertical or horizontal dividing line, one of those lines must miss all the roots. So, the algorithm here would be to test each of those lines iteratively with increasing numbers of subparts, until you find one of them which works. Then, use the winding number to decide which subrectangle to use in the next step (and alternate between finding a horizontal dividing line and finding a vertical dividing line). Eventually, you should be able to zero in on at least one root to any desired precision. However, the fact that one out of $d+1$ candidate dividing lines will work depends on classical complex analysis (maybe applying the Goedel translation will give us something good enough to work in intuitionistic logic?).
I do strongly suspect that no computable function of the coefficients giving a single complex root can be well-defined. My reasoning: if it were well-defined, then it would have to be continuous, but then for example applying it to finding solutions of $z^2 - \lambda = 0$ where $\lambda$ traces out the unit circle once would have to swap the two roots, giving a contradiction. However, allowing the function to return different constructive complex numbers for equivalent inputs of the coefficients should resolve this obstruction.