up previous next
NC.ReducedGB

Reduced (partial) Groebner basis of a finitely generated two-sided ideal over a free associative K-algebra. K-algebra.
Syntax
          
NC.ReducedGB(G:LIST):LIST
NC.ReducedGB(G:LIST, DegreeBound:INT, LoopBound:INT, Flag:INT):LIST

          

Description
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 ring environment coefficient field K, alphabet (or indeterminates) X and ordering through the functions NC.SetFp(Prime), NC.SetX(X) and NC.SetOrdering(Ordering), respectively, before calling the function. Default coefficient field is Q. Default ordering is length-lexicographic ordering ("LLEX"). For more information, please check the relevant functions. About the optional parameters: For most cases we do not know whether there exists a finite Groebner basis. Instead of forcing computer yelling and informing nothing valuable, the function has 3 optional parameters to control the computation. Note that at the moment all of the following 3 additional optional parameters must be used at the same time.

Example
NC.SetX("xyzt"); 
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]; 
NC.ReducedGB(G); -- over Q (default field), LLEX ordering (default ordering)
[[[1, "yt"], [-1, "ty"]], [[1, "xt"], [-1, "tx"]], [[1, "xy"], [-1, "ty"]], [[1, "xx"], [-1, "yx"]], 
[[1, "tyy"], [-1, "tty"]], [[1, "yyx"], [-1, "tyx"]]]
-------------------------------
NC.SetFp(); -- set default Fp=F2
NC.ReducedGB(G); -- over F2, LLEX ordering
[[[1, "yt"], [1, "ty"]], [[1, "xt"], [1, "tx"]], [[1, "xy"], [1, "ty"]], [[1, "xx"], [1, "yx"]], 
[[1, "tyy"], [1, "tty"]], [[1, "yyx"], [1, "tyx"]]]
-------------------------------
NC.SetFp(3);
NC.ReducedGB(G); -- over F3, LLEX ordering
[[[1, "yt"], [2, "ty"]], [[1, "xt"], [2, "tx"]], [[1, "xy"], [2, "ty"]], [[1, "xx"], [2, "yx"]], 
[[1, "tyy"], [2, "tty"]], [[1, "yyx"], [2, "tyx"]]]
-------------------------------
NC.SetX("xyzt"); 
F1 := [[1,"xx"], [-1,"yx"]];   
F2 := [[1,"xy"], [-1,"ty"]];  
F3 := [[1,"xt"], [-1, "tx"]];  
F4 := [[1,"yt"], [-1, "ty"]];  
F:= [F1, F2,F3,F4]; 
G1:=NC.ReducedGB(F);
G1;
NC.IsGB(G1); -- G1 is a reduced Groebner basis
Fa:=[[1,"ytx"],[-1,""]]; 
Append(G1,Fa); -- add one element to G1
G1;
NC.IsGB(G1); -- G1 is not a Groebner basis any longer
G2:=NC.ReducedGB(G1); -- compute reduced Groebner basis G2 generated by G1
G2;
G3:=NC.IsGB(G2);
G3:=NC.ReducedGB(G2); -- compute reduced Groebner basis G3 generated by G2
G3;
NC.IsGB(G3);
G2=G3; -- of course

[[[1, "yt"], [-1, "ty"]], [[1, "xt"], [-1, "tx"]], [[1, "xy"], [-1, "ty"]], [[1, "xx"], [-1, "yx"]], [[1, "tyy"], [-1, "tty"]], [[1, "yyx"], [-1, "tyx"]]]
-------------------------------
True
-------------------------------
[[[1, "yt"], [-1, "ty"]], [[1, "xt"], [-1, "tx"]], [[1, "xy"], [-1, "ty"]], [[1, "xx"], [-1, "yx"]], [[1, "tyy"], [-1, "tty"]], [[1, "yyx"], [-1, "tyx"]], [[1, "ytx"], [-1, ""]]]
-------------------------------
False
-------------------------------
[[[1, "y"], [-1, "t"]], [[1, "x"], [-1, "t"]], [[1, "ttt"], [-1, ""]]]
-------------------------------
[[[1, "y"], [-1, "t"]], [[1, "x"], [-1, "t"]], [[1, "ttt"], [-1, ""]]]
-------------------------------
True
-------------------------------
True
-------------------------------
-- Done.
-------------------------------


See Also