X := "abc";
Ordering := "LLEX";
Relations := [["aa",""], ["bb",""], ["ab","c"], ["ac", "b"], ["cb", "a"]];
F1 := [[1,"a"],[1,"ac"]]; -- F1=a+ac=a+b
F2 := [[1,"b"],[1,"ba"]]; -- F2=b+ba
NC.MRSubtract(X, Ordering, Relations, F1, F2);
[[-1, "ba"], [1, "a"]]
-------------------------------
X := "abc";
Ordering := "LLEX";
Relations := [["aa",""], ["bb",""], ["ab","c"], ["ac", "b"], ["cb", "a"]];
F1 := [[1,"a"],[1,""]]; -- F1=a+1
NC.MRSubtract(X, Ordering, Relations, F1, F1); -- F1-F1
[ ]
-------------------------------
X := "abc";
Ordering := "LLEX";
Relations := [["aa",""], ["bb",""], ["ab","c"], ["ac", "b"], ["cb", "a"]];
F1 := [[1,"a"],[1,""]]; -- F1=a+1
NC.MRSubtract(X, Ordering, Relations, [], F1); -- 0-F1
[[-1, "a"], [-1, ""]]
-------------------------------
|