up previous next
Computes a finite SAGBI-basis of a subalgebra if existing.
SB.Sagbi(G:LIST of POLY):LIST of POLY
|
This function computes a finite SAGBI-basis of a subalgebra
S generated by the polynomials of the list
G, if a finite SAGBI-basis of
S is existing. Then a list of polynomials is returned which form a SAGBI-basis of
S. Otherwise the computation will be interrupted after a reasonable time, i.e. it seems that there is no finite SAGBI-basis, and NULL will be returned.
- @param G A list of polynomials which generates a subalgebra.
- @return Either a list of polynomials which form a finite SAGBI-basis of the subalgebra generated by G or NULL, if no finite SAGBI-basis is existing.
Use R::=QQ[x,y];
G:=[x-y,x+y];
SB.IsSagbi(G);
SB.Sagbi(G);
-------------------------------------------------------
-- output:
FALSE
-------------------------------
-- The result is correct, because a SAGBI-basis of G is the following:
[
x - y,
x + y,
y]
-------------------------------
-- Done.
-------------------------------
|
Use R::=QQ[x[1..6]];
Generators:=[-x[4] - x[6], -x[1], x[2]^2 + x[3]^2,
-4x[4]^2 - 5/2x[5]^2 + 2x[4]x[6] - 4x[6]^2,
-2x[2]x[3]x[4] + x[2]^2x[5] - x[3]^2x[5] + 2x[2]x[3]x[6],
-x[2]^2x[4] + x[3]^2x[4] - 2x[2]x[3]x[5] + x[2]^2x[6] - x[3]^2x[6]];
SB.IsSagbi(Generators);
-- Computation of a SAGBI-basis
Basis:=SB.Sagbi(Generators);
SB.IsSagbi(Basis);
-------------------------------------------------------
-- output:
FALSE
-------------------------------
-- Of course the test passes now because the computed SAGBI-basis is
-- indeed a SAGBI-basis.
TRUE
-------------------------------
-- Done.
-------------------------------
|
Use R::=QQ[x,y];
G:=[x+y, xy, xy^2];
SB.Sagbi(G);
-------------------------------------------------------
-- output:
--- Computation was interrupted ---
NULL
-------------------------------
-- Done.
-------------------------------
|