(* ----------------------------------------------------------------------------
 * $Id: DINNGB.md,v 1.1 1995/12/16 13:23:13 kredel Exp $
 * ----------------------------------------------------------------------------
 * Copyright (c) 1993 Universitaet Passau
 * ----------------------------------------------------------------------------
 * This file is part of MAS.
 * ----------------------------------------------------------------------------
 * $Log: DINNGB.md,v $
 * Revision 1.1  1995/12/16 13:23:13  kredel
 * Moved from the masdom directory.
 *
 * Revision 1.1  1994/03/11  15:35:17  pesch
 * Groebner bases for non noetherian polynomial rings.
 * Diplomarbeit I. Bader.
 * Modified.
 * Does not give correct results. Do not use.
 * Should be rewritten.
 *
 * ----------------------------------------------------------------------------
 *)

DEFINITION MODULE DINNGB;
(* DIP Groebner bases for non noetherian polynomial rings.*)

  (* Import lists and declarations. *)
   
  FROM MASSTOR IMPORT LIST;

CONST rcsid = "$Id: DINNGB.md,v 1.1 1995/12/16 13:23:13 kredel Exp $";
CONST copyright = "Copyright (c) 1993 Universitaet Passau";


  PROCEDURE DINNCP(EL,A,B: LIST): LIST;
  (* distributive polynomial non-commutative product. e is a non-negative
     integer. A and B are distributive polynomials in 2 variables. C is the
      non-commutative product of A and B with respect to  Y * X = X**e Y. *)
  

  PROCEDURE EVNNCP(EL,S,T: LIST): LIST;
  (* exponent vector non-commutative product. S and T are exponent vectors.
     of length 2. C is the non-commutative product S * T with respect
     to the relation Y * X = X**e Y. *)
   


  PROCEDURE EVNRDT(EL,S,T:LIST):LIST;
  (* exponent vectors non-commutative right division test. s and t are
     exponent vectors. C=1 if s rdiv t otherwise, C=0. *)
  

  PROCEDURE EVNCRD(EL,S,T:LIST):LIST;
  (* exponent vectors non-commutative right division. s and t a are
     exponent vectors, if s rdiv t then the output is t//s. *)
 
  PROCEDURE EVNLDT(EL,S,T:LIST):LIST;
  (* exponent vectors non-commutative left division test. s and t are
     exponent vectors. C=1 if s ldiv t otherwise, C=0. *)

 
  PROCEDURE EVNCLD(EL,S,T:LIST):LIST;
  (* exponent vectors non-commutative left division. s and t a are
     exponent vectors. The output is s\\t if s ldiv t . *)
  
  PROCEDURE EVLLCM(EL,S,T:LIST):LIST;
  (* exponent vectors non-commutative least left common multiple. s and t are
     exponent vectors. C is the least left common multiple of s and t. *)
 


  PROCEDURE EVLRCM(EL,S,T:LIST):LIST;
  (* exponent vectors non-commutative least right common multiple.
     s and t exponent vectors. C is the least right common multiple
     of s and t if it exists! *)
 
  PROCEDURE EVRCMT(EL,S,T:LIST):LIST;
  (* exponent vectors non-commutative right multiple test.
     S and T are exponent vectors. C=1 if S and T have some right common
     multiple otherweise, C=0. *)
  


  PROCEDURE DNNLNF(EL,P,S:LIST):LIST;
  (* distributive polynomials non-noetherian left normal form.
   P is a list of non zero polynomials in distributive rational representation.
   S is a distributive rational polynomial. R is a polynomial such that S is
   left reducible to R modulo P and R is in normal form with respect to P. *)

  
  PROCEDURE DNNLIS(EL,P: LIST): LIST;
  (* distributive polynomials non-noetherian left irreducible set.
     P is a list of distributive rational polynomials, PP is the
     result of left reducing each p element of P modulo P-(p)
     until no further reductions are possible. *)
  
  PROCEDURE DNNLSP(EL,A,B:LIST):LIST;
  (* distributive polynomials non-noetherian left S-polynomial.
     A and B are polynomials in distributive rational representation
     in 2 variables. C is the left S-polynomial of A and B. *)
 
PROCEDURE DNNLGB(EL,P,TF: LIST): LIST;
(* distributive non-noetherian polynomials left Groebner base.
P is a list of rational polynomials in distributive representation
in 2 variables. PP is the left Groebner base of P. t is the
trace flag. *)
   

PROCEDURE DNNRNF(EL,P,S:LIST):LIST;
  (* distributive polynomials non-noetherian right normal form.
   P is a list of non zero polynomials in distributive rational representation.
   S is a distributive rational polynomial. R is a polynomial such that S is
   right reducible to R modulo P and R is in normal form with respect to P. *)

 
  PROCEDURE DNNRIS(EL,P: LIST): LIST;
  (* distributive polynomials non-noetherian right irreducible set.
     P is a list of distributive rational polynomials, PP is the
     result of right reducing each p element of P modulo P-(p)
     until no further reductions are possible. *)
 

  PROCEDURE DNNRSP(EL,A,B:LIST):LIST;
  (* distributive polynomials non-noetherian right S-polynomial.
     A and B are polynomials in distributive rational representation.
     C is the right S-polynomial of A and B if it exists! *)
 

 PROCEDURE DNNRGB(EL,P,TF: LIST): LIST;
 (* distributive polynomials non-noetherian right Groebner base.
  P is a list of rational polynomials in distributive representation in 
  2 variables. PP is the right Groebner base of P. t is the trace flag. *)



PROCEDURE DNLCPL(EL,P: LIST;  VAR D,B: LIST);
(* distributive polynomial non-noetherian left  construct pair list.
P is list of polynomials in distributive representation in 2 variables.
B is the polynomials pairs list and D is the pairs list. *)


PROCEDURE DNRCPL(EL,P: LIST;  VAR D,B: LIST);
(* distributive polynomial non-noetherian right construct pair list.
P is list of polynomials in distributive representation in 2 variables.
B is the polynomials pairs list and
D is the pairs list. *)

PROCEDURE DNLUPL(EL,PL,P,D,B: LIST): LIST;
(* distributive polynomial non-noetherian left update pair list.
P is list of polynomials in distributive representation in 2 variables.
B is the polynomials pairs list and D is the pairs list. p is a non zero 
polynomial in distributive representation. D, P and B are modified.
DP is the updated pairs list. *)


 PROCEDURE DNRUPL(EL,PL,P,D,B: LIST): LIST;
 (* distributive polynomial non-noetherian right update pair list.
 P is list of polynomials in distributive representation in 2 variables.
 B is the polynomials pairs list and
 D is the pairs list. p is a non zero polynomial in
distributive representation. D, P and B are modified.
DP is the updated pairs list. *)


PROCEDURE DNN2GB(EL,P,TF: LIST): LIST;
(* distributive polynomials non-noetherian 2-sided Groebner base.
P is a list of rational polynomials in distributive representation
in 2 variables. PP is the Groebner base of P. t is the trace flag.*)   



  PROCEDURE DNNTGB(EL,P,TF:LIST):LIST;
  (* distributive polynomials non-noetherian two-sided Groebner base. P is
     a list of rational polynomials in distributive representation in 2
     variables. PP is the two-sided Groebner base of P. t is the trace
     flag. The non-commutative produkt is computed w.r.t Y*X=X**eY. *)



  PROCEDURE DNNLES(EL,P:LIST):LIST;
  (* distributive polynomials non-noetherian left exponents set.
     P is a list of polinomials in distributive representation. PP is the
     the list which is result of *-multiplication of each polynomial of P
     from the left with the main variable. The non-commutative
     multiplication is computed w.r.t the relation Y * X = X**e Y. *)

  

  PROCEDURE DNNRES(EL,P,DL,DP:LIST):LIST;
  (* distributive polynomials non-noetherian right exponents set. P is a
    list of polynomials in distributive representation, d and d'are non-
    negative integers with  d' >= d. PP is the is result of *-multiplication
    of each polynomial of P from the right with exponents (e**i) of the
    first variable in the variable list, where i ranges from d to d'.
    The *-multiplication is computed w.r.t the relation Y * X = X**e Y. *)
    

  PROCEDURE DIPSPS(D,B:LIST):LIST;
  (* distibutive polynomials S-polynomials set.
     D is the pairs list and B is the polynomials pairs list.
     D and B are modified. H is the set of all non-zero S-polynomials. *)
  
PROCEDURE DIPLMD(P:LIST):LIST;
 (* distributive polynomial list maximum degree.
    P is a non-empty list of polynomials in distributive form in r variables.
    d is the maximum degree of all polynomials of P w.r.t the main variable .*)
 
  PROCEDURE IPOWER(EL,AL:LIST):LIST;
  (* integer power. e and a are  positive integers. C=e**a. *)
 

END DINNGB.

(* -EOF- *)