### `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
section `dp_ord`, section `dp_gr_flags`, `dp_gr_print`, section `gr`, `hgr`, `gr_mod`, `dgr`, section Controlling Groebner basis computations