I need to solve a system of polynomials. Let the variables be $x_1, \dots, x_n$, and let the polynomials be $f_1, \dots, f_n$
Let's say we have these conditions we can already assume:
- there are $n$ variables and $n$ equations
- (empirically I know) there are finitely many solutions that we can enumerate if we find them
- the degrees and number of variables of the polynomials are small, so don't worry about complexity
- These $n$ polynomials originally come from n partial derivatives of a polynomial I'm trying to find the minimum/maximum of (so if there is a good way of finding all the min/max of a polynomial, this question maybe moot)
In addition, we also have an oracle that can divine us a solution of the system. This oracle might be a gradient descent solver, for instance. The oracle will give a solution in the form of: $x_1 = c_1, \dots, x_n = c_n$. For now, let us assume that if there are solutions to the system of polynomials, the oracle is guaranteed to find one of them.
What I would like to know is, is there a way of using this existing solution to simplify the system of polynomials, so that the simplified polynomials will contain the remaining solutions (which we can use the oracle again)? I do have the constraint that I must find $all$ the solutions. The hope is that repeated simplification, with the help of the answer from an oracle, will give us a system of polynomials so simple in form that we can prove we've exhausted all the solutions.
So far I've tried to "divide" each of the original polynomials $f_i$ with the solutions $x_i - c_i$, but I am not sure what is the effect of this. You do end up with a simpler system of polynomials, but I am not certain if it contains all the remaining solutions. Does changing the system of polynomials to a grobner basis of its ideal help? The oracle is such a powerful tool and I want to use it in conjunction with an algebraic based algorithm.