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$.