ApCoCoA-1:SB.Sagbi

From ApCoCoAWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This article is about a function from ApCoCoA-1. If you are looking for the ApCoCoA-2 version of it, see Package sagbi/SB.SAGBI.

SB.Sagbi

Computes a finite SAGBI-basis of a subalgebra if existing.

Syntax

SB.Sagbi(G:LIST of POLY):LIST of POLY

Description

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.

Example

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.
-------------------------------

Example

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.
-------------------------------

Example

Use R::=QQ[x,y];

G:=[x+y, xy, xy^2];
SB.Sagbi(G);

-------------------------------------------------------
-- output:

--- Computation was interrupted ---
NULL
-------------------------------
-- Done.
-------------------------------

See also

SB.IsSagbi

SB.IsSagbiOf