# Reducing a System of Polynomial Equations

I am currently writing a program in SAGE which computes Nilpotent Orbit Varieties for an Algebraic Geometry research project and I have reduced my problem to the following:

Consider a system of polynomial equations $\{f_{1},...,f_{n}\}$, with each equal to zero and a function of $k$ variables, that is, $f_{i}(x_{1},...,x_{k}) = 0$, for $1 \leq i \leq n$. Is there a known algorithm or procedure (which I could program) for reducing the number of equations or number of variables to a minimal amount?

In particular, I want to reduce the runtime of my code by figuring out if I have redundancies in my equations and eliminating those redundancies (such as one equation implying that a variable is equal to zero in all of the others, which would reduce the number of equations and variables).

EDIT: I have included a snapshot of my program here: As you can see from my list of equations, we have that $x_{11}x_{12} + x_{12}x_{22} =0$ implies $x_{11} = - x_{22}$ and thus the entire system reduces to $x_{11}^2 + x_{12}x_{21} =0$. Implementing the Groebner basis command as follows in SAGE did not obtain this result.

I = equations*PolynomialRing(CC,len(varlist(n)),varlist(n))
B = I.groebner_basis()
print("The Groebner basis for I is:\n"+str(B))

where the list 'equations' is what was printed after "the closure of the nilpotent..." and the varlist(n) is a function I defined which deals with list manipulation and nothing mathematical. I was simply following the sage documentation here. So, what I need is some algorithm which in this example would give me just that my system of polynomial equations equal to zero reduces to $x_{11}^2 + x_{12}x_{21} = 0$.

-
I assume this is before you want do do a Gröbner basis computation? Using Gröbner basis calculations, you can most likely reduce the number of variables in some of the polynomials. –  Per Alexandersson Jun 5 '13 at 21:10
Compute a Grobner basis? (should be built-in in sage, if not then you can use the command from singular) –  Abhinav Kumar Jun 5 '13 at 21:11
@Per Alexandersson - sorry, we posted comments almost simultaneously, so I didn't see your comment ... –  Abhinav Kumar Jun 5 '13 at 21:12
@Abhinav Kumar: I already tried using the Grobner basis command built into SAGE but it did not compute what I wanted. I will add an edit to my question including this example. I am interested in any alternative techniques to computing a Grobner basis. –  Samuel Reid Jun 5 '13 at 21:24
I'm pretty sure that, in this case, changing the term order would do what you want. But there is no good way of choosing the best term order a priori. –  Alexander Woo Jun 5 '13 at 21:58