`dp_red', `dp_red_mod'
----------------------

dp_red(DPOLY1,DPOLY2,DPOLY3)

dp_red_mod(DPOLY1,DPOLY2,DPOLY3,MOD)
     :: Single reduction operation

RETURN
     list

DPOLY1  DPOLY2  DPOLY3
     distributed polynomial

VLIST
     list

MOD
     prime

   * Reduces a distributed polynomial, DPOLY1 + DPOLY2, by DPOLY3 for
     single time.

   * An input for `dp_red_mod()' must be converted into a distributed
     polynomial with coefficients in a finite field.

   * This implies that the divisibility of the head term of DPOLY2 by
     the head term of DPOLY3 is assumed.

   * When integral coefficients, computation is so carefully performed
     that no rational operations appear in the reduction procedure.  It
     is computed for integers A and B, and a term T as: A(DPOLY1 +
     DPOLY2)-BT DPOLY3.

   * The result is a list `[A DPOLY1,A DPOLY2 - BT DPOLY3]'.

     [157] D=(3)*<<2,1,0,0,0>>+(3)*<<1,2,0,0,0>>+(1)*<<0,3,0,0,0>>;
     (3)*<<2,1,0,0,0>>+(3)*<<1,2,0,0,0>>+(1)*<<0,3,0,0,0>>
     [158] R=(6)*<<1,1,1,0,0>>;
     (6)*<<1,1,1,0,0>>
     [159] C=12*<<1,1,1,0,0>>+(1)*<<0,1,1,1,0>>+(1)*<<1,1,0,0,1>>;
     (12)*<<1,1,1,0,0>>+(1)*<<0,1,1,1,0>>+(1)*<<1,1,0,0,1>>
     [160] dp_red(D,R,C);
     [(6)*<<2,1,0,0,0>>+(6)*<<1,2,0,0,0>>+(2)*<<0,3,0,0,0>>,
     (-1)*<<0,1,1,1,0>>+(-1)*<<1,1,0,0,1>>]

References
     *Note `dp_mod dp_rat': dp_mod dp_rat.

