f1:=poly(x-t^2-t^4,[t,x,y]); f2:=poly(y-t^3-t^5,[t,x,y]); groebner::gbasis([f1,f2]);
上の を定義するところで、 の部分は monomial order を 決定する際にも用いられています。 同じものを何度もタイプするのは面倒ですから、
S:=[t,x,y]; f1:=poly(x-t^2-t^4,S); f2:=poly(y-t^3-t^5,S); groebner::gbasis([f1,f2]);などとしても良いでしょう。
なお、次のようにして monomial order を変更することもできます。
S:=[t,x,y]; f1:=poly(x-t^2-t^4,S); f2:=poly(y-t^3-t^5,S); groebner::gbasis([f1,f2]); // t>x>y の順序でグレブナ基底を計算。 T:=[x,y,t]; groebner::gbasis([poly(f1,T),poly(f2,T)]);//x>y>tの順序でグレブナ基底を計算。
順序を指定した方が確実でしょう。
groebner::gbasis([f1,f2],LexOrder); (辞書式順序) groebner::gbasis([f1,f2],DegreeOrder); (次数つき辞書式順序) groebner::gbasis([f1,f2],DegInvLexOrder); (次数つき逆辞書式順序)