What does it mean to solve a polynomial equation system? For a
univariate polynomial f(X) in k[X]
apparently the answer is obvious: e.g. it is clear that the solutions
of f(X) = X2 - X are 0 and 1.
Analogously, we could then say that ``the solutions of f(X)
= X2 - 2 are 21/2 and
-21/2''.
Yes, yes, ... unless somebody asks you for a definition of 21/2 ... Well, whatever approach you use, your only possible answer is: ``21/2 and -21/2 are the solutions of X2- 2''. Apparently, we have a funny tautology: the solutions of X2- 2 are the solutions of X2 - 2!
If you are not really convinced by this, let me try a stronger example: you will agree that the solutions of the polynomial X2 + 1 are i and -i and that the imaginary number i can be defined only as that number whose square is -1, i.e. to be a solution of the polynomial X2 + 1. So we truly have a tautology: The solutions of the polynomial equation X2 + 1=0 are the two solutions of the polynomial equation X2 + 1=0.
To base a Solving Polynomial Equation Systems theory on a tautology is not a clever idea. So it is essential to understand better what does it means ``solving''.
In the classical interpretation ``solving'' polynomial equations meant to be able to compute the roots by applying the operations to the coefficients of the equations; it is even a temptation to translate this notion of ``solving'' in a more modern language, saying that solving an equation means writing a program whose input is the coefficients of the equation and the output is the roots, the allowed operations being the arithmetical operations, testing equalities and branching.
When Abel-Ruffini Theorem proved the impossibility of solving univariate polynomials with the classical notion of ``solving'', the way of getting out of this impasse was Kronecker's solution to interpret ``solving'' via the theory of algebraic extensions as producing programs which compute with the roots of a polynomial equation. The recent break-through of Computer Algebra in solving polynomial equation systems is based on following Kronecker's approach as much as possible.
For the most advanced Computer Algebra research, the most effective way for solving polynomial equation systems is just to interpret such system as a tool for solving itself, by building programs which use this tool to manipulate its own roots. In other words this means that instead of working hard to build programs which compute the solutions, one should work hard to build programs which use the given equations in order to manipulate the solutions, without even computing them.
The course will presents the most recent Computer Algebra advances to
solving polynomial equation systems and algebraic number representation,
using Kronecker's approach as a constant guideline.