NC.SetX("xy");
NC.SetRelations([]);
NC.SetRules([["yx", [[1,"xy"], [1,""]]]]); -- yx=xy+1
F1 := [[1,"x"]];
F2 := [[1,"y"]];
G := [F1, F2];
NC.ReducedBP(G); -- over Q (default field), LLEX ordering (default ordering)
[[[1, "y"]], [[1, "x"]]]
-------------------------------
F3 := [[1,"xx"]];
G := [F3];
NC.ReducedBP(G);
[[[1, "xx"]]]
-------------------------------
NC.SetRules([]);
F := [[1,"yx"], [-1,"xy"], [-1,""]];
G := [F1, F2, F];
NC.ReducedBP(G);
[[[1, ""]]]
-------------------------------
G := [F3, F];
NC.ReducedBP(G);
[[[1, ""]]]
-------------------------------
|