When reducing a polynomial *p* w.r.t. a set of polynomials *PS* we can
choose between *partial reduction* and *complete reduction* .

Partial reduction can be sloppily described as follows: the leading monomial
of *p* is deleted by subtraction of an ``appropriate multiple'' of a
polynomial in *PS*. This process is iterated as long as there exists a
polynomial *q* in *PS* s.t. the leading monomial of *p* is a multiple of
the leading monomial of *q*. Partial reduction yields a polynomial, called
the *partial normal form of p w.r.t. PS*, whose leading monomial is *not
a multiple* of the leading monomial of any of the polynomials in *PS*.

Complete reduction *iterates* partial reduction in the sense that when a
partial normal form is found, the leading monomial is kept and the remaining
polynomial is partially reduced again. This yields a polynomial, the *
complete normal form of p w.r.t. PS*, which does not contain monomials that
are multiples of the leading monomial of any of the polynomials in *PS*.

The function that computes the normal form of a polynomial w.r.t. a set of
polynomials is called `normal_form_poly` and the desired normal form algorithm is selected in the
file `GB.nf.setup`.

Thu Sep 3 14:50:07 MDT 1998