`dp_gr_main', `dp_gr_mod_main'
------------------------------

dp_gr_main(PLIST,VLIST,HOMO,MODULAR,ORDER)
dp_gr_mod_main(PLIST,VLIST,HOMO,MODULAR,ORDER)
     :: Groebner basis computation (built-in functions)

RETURN
     list

PLIST, VLIST
     list

ORDER
     number, list or matrix

HOMO
     flag

MODULAR
     flag or prime

   * These functions are fundamental built-in functions for Groebner
     basis computation and `gr()',`hgr()' and `gr_mod()' are all
     interfaces to these functions.

   * If HOMO is not equal to 0, homogenization is applied before
     entering Buchberger algorithm

   * For `dp_gr_mod_main()', MODULAR means a computation over
     GF(MODULAR).  For `dp_gr_main()', MODULAR has the following mean.
       1. If MODULAR is 1 , trace lifting is used. Primes for trace
          lifting are generated by `lprime()', starting from
          `lprime(0)', until the computation succeeds.

       2. If MODULAR is an integer  greater than 1, the integer is
          regarded as a prime and trace lifting is executed by using
          the prime. If the computation fails then 0 is returned.

       3. If MODULAR is negative, the above rule is applied for -MODULAR
          but the Groebner basis check and ideal-membership check are
          omitted in the last stage of trace lifting.

   * `gr(P,V,O)', `hgr(P,V,O)' and `gr_mod(P,V,O,M)' execute
     `dp_gr_main(P,V,0,1,O)', `dp_gr_main(P,V,1,1,O)' and
     `dp_gr_mod_main(P,V,0,M,O)' respectively.

   * Actual computation is controlled by various parameters set by
     `dp_gr_flags()', other then by HOMO and MODULAR.

References
     *Note `dp_ord': dp_ord, *Note `dp_gr_flags dp_gr_print':
     dp_gr_flags dp_gr_print, *Note `gr hgr gr_mod': gr hgr gr_mod,
     *Note `Controlling Groebner basis computations': Controlling
     Groebner basis computations

