まず
load(groebner);してgroebner パッケージをロードします。
VARS:[r1,r2,r3,f1,f2,f3];などとして関係する変数を列挙します。と同時に、グレブナ基底の計算の際に特別の意味を持つ、変数の順序を決定します。
あとは, にイデアルの生成元のリストを定義して、
poly_grobner(L,VARS);とやれば、Lで生成されるイデアルのグレブナ基底が基底が求まります。
ちょっと続けてみましょう。
B:poly_grobner(L,VARS); poly_normal_form(f,B,VARS);とやれば、Lで生成されるイデアルのグレブナ基底が基底を Bと置いて、 に関して を「割ったあまり」が poly_normal_form として求まります。 (おそらく計算上の制約から)poly_normal_form は定数倍を除いてしか正しくないようですから注意が必要です。