up previous next
NCo.MRReducedGB

Enumerate a reduced (partial) Groebner basis of a finitely generated two-sided ideal in a finitely presented monoid ring via the Buchberger procedure.
Syntax
          
NCo.MRReducedGB(X:STRING, Ordering:STRING, Relations:LIST, G:LIST[, DB:INT, LB:INT, OFlag:INT]):LIST

          

Description
Note that, given a word ordering Ordering, a set G of non-zero polynomials is called a Groebner basis with respect to Ordering if, for every non-zero polynomial f in the ideal , there exists a polynomial g in G such that MRLW(f) is a multiple of MRLW(g). Note that a two-sided ideal can not have finite Groebner bases. A Groebner basis G is called a reduced Groebner basis if G is interreduced (see NCo.MRInterreduction) and all polynomials in G are monic. Note that each ideal has a unique reduced Groebner basis. However, it is not necessarily finite.

Please note: The function(s) explained on this page is/are using the ApCoCoAServer. You will have to start the ApCoCoAServer in order to use it/them.

Please set coefficient field via the function NCo.SetFp (or NCo.UnsetFp) before calling this function. The default coefficient field is the field of rational numbers, i.e. RAT in CoCoAL. For more information, please check the relevant functions. About 3 optional parameters: for most cases we do not know whether or not there exists a finite Groebner basis beforehand. Thus, the function offers 3 optional parameters for the enumerating procedure. Note that at the moment all of the following 3 optional parameters must be used at the same time.

Example
X := "xyzt"; 
Ordering := "LLEX"; 
Relations:=[]; 
F1 := [[1,"xx"], [-1,"yx"]];   
F2 := [[1,"xy"], [-1,"ty"]];  
F3 := [[1,"xt"], [-1, "tx"]];  
F4 := [[1,"yt"], [-1, "ty"]];  
G := [F1, F2,F3,F4]; 
NCo.MRReducedGB(X, Ordering, Relations, G);

[[[1, "yt"], [-1, "ty"]], [[1, "xt"], [-1, "tx"]], [[1, "xy"], [-1, "ty"]], [[1, "xx"], [-1, "yx"]], 
[[1, "tyy"], [-1, "tty"]], [[1, "yyx"], [-1, "tyx"]]]
-------------------------------
X := "abc"; 
Ordering := "LLEX"; 
Relations := [["aa",""], ["bb",""], ["ab","c"], ["ac", "b"], ["cb", "a"]]; 
F1 := [[1,"a"], [1,"b"], [1,"c"]]; 
F2 := [[1,"b"]]; 
G := [F1, F2];
NCo.MRReducedGB(X, Ordering, Relations, G);

[[[1, "b"]], [[1, "a"], [1, "c"]]]
-------------------------------


See Also