|
7.7.9.0. freeGBasis
Procedure from library freegb.lib (see freegb_lib).
- Usage:
- freeGBasis(L, d); L a list of modules, d an integer
- Return:
- ring
- Assume:
- L has a special form. Namely, it is a list of modules, where
- each generator of every module stands for a monomial times coefficient in
free algebra,
- in such a vector generator, the 1st entry is a nonzero coefficient from the
ground field
- and each next entry hosts a variable from the basering.
- Purpose:
- compute the two-sided Groebner basis of an ideal, encoded by L
in the free associative algebra, up to degree d
- Note:
- Apply
lst2str to the output in order to obtain a better readable
presentation
Example:
| LIB "freegb.lib";
ring r = 0,(x,y,z),(dp(1),dp(2)); // ring r = 0,(x,y,z),(a(3,0,2), dp(2));
module M = [-1,x,y],[-7,y,y],[3,x,x]; // stands for free poly -xy - 7yy - 3xx
module N = [1,x,y,x],[-1,y,x,y]; // stands for free poly xyx - yxy
list L; L[1] = M; L[2] = N; // list of modules stands for an ideal in free algebra
lst2str(L); // list to string conversion of input polynomials
==> [1]:
==> -xy-7yy+3xx
==> [2]:
==> xyx-yxy
def U = freeGBasis(L,5); // 5 is the degree bound
lst2str(U);
==> [1]:
==> yyyyy
==> [2]:
==> 22803yyyx+19307yyyy
==> [3]:
==> 1933yyxy+2751yyyx+161yyyy
==> [4]:
==> 22xyy-3yxy-21yyx+7yyy
==> [5]:
==> 3xyx-22xyy+21yyx-7yyy
==> [6]:
==> 3xx-xy-7yy
|
|