/**/ use P ::= QQ[x,y,z], DegRevLex;
/**/ g_1 := x^2;
/**/ g_2 := x*y -z^2;
/**/ g_3 := x^5*y -5*x^3*y^3 -x^4*z^2 +15*x^2*y^2*z^2 -15*x*y*z^4 +5*z^6;
/**/ G := [g_1,g_2,g_3];
/**/ SAGBI(G);
[x*y -z^2, x^2]
/**/ SatSAGBI(G,z);
[z, x*y, x^2]
/**/ -- SatSAGBI(G,x); --!!! ERROR !!! as expected: must be x-DegRev-type
/**/ -- SatSAGBI(G,z,1); --!!! ERROR !!! as expected: must be bi-homogenous
/**/ O := MakeTermOrdMat(mat([[0,1,2,3],[1,1,1,1], [-1, 0, 0, 0]]));
/**/ P := NewPolyRing(QQ, "a_0,a_1,a_2,a_3", O, 2);
/**/ Use P;
/**/ G := [a_0, (-1/2)*a_1^2 +a_0*a_2, (1/3)*a_1^3 -a_0*a_1*a_2 +a_0^2*a_3];
/**/ IsHomog(G);
true
/**/ indent(SAGBI(G));
[
a_0,
a_1^2 -2*a_0*a_2,
a_1^3 -3*a_0*a_1*a_2 +3*a_0^2*a_3,
a_0^2*a_1^2*a_2^2 -2*a_0^2*a_1^3*a_3 +(-8/3)*a_0^3*a_2^3 +6*a_0^3*a_1*a_2*a_3 -3*a_0^4*a_3^2
]
/**/ indent(SatSAGBI(G,a_0));
[
a_0,
a_1^2 -2*a_0*a_2,
a_1^3 -3*a_0*a_1*a_2 +3*a_0^2*a_3,
a_1^2*a_2^2 -2*a_1^3*a_3 +(-8/3)*a_0*a_2^3 +6*a_0*a_1*a_2*a_3 -3*a_0^2*a_3^2
]
/**/ indent(SatSAGBI(G, a_0, 2)); -- truncated
[
a_0,
a_1^2 -2*a_0*a_2,
a_1^3 -3*a_0*a_1*a_2 +3*a_0^2*a_3
]
|