# ApCoCoA-1:SB.Sagbi

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

## 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 - x, -x, x^2 + x^2,
-4x^2 - 5/2x^2 + 2xx - 4x^2,
-2xxx + x^2x - x^2x + 2xxx,
-x^2x + x^2x - 2xxx + x^2x - x^2x];

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