|This article is about a function from ApCoCoA-2.|
Creates a subalgebra given the base ring and a list of generators.
SB.Subalgebra(R: RING, fs: LIST): TAGGED("$apcocoa/sagbi.Subalgebra")
This function returns the Subalgebra of a polynomial ring R generated by the polynomials in the list fs. A Subalgebra in this package is a record tagged with "$apcocoa/sagbi.Subalgebra". The record contains the following fields:
ID: A unique ID of the subalgebra, like the ID of a ring,
CoeffRing: The coefficient ring of R,
Ring: The ring R,
gens: The generators of the subalgebra, so fs,
SAGBI: A (truncated) SAGBI basis of the subalgebra, initially ,
trunc: The truncation degree of the current SAGBI basis, initially 0 - is set to -1 if SAGBI is a complete SAGBI basis,
HS: The Hilbert series of S, initially 0.
Note that most of the fields are initially empty and only computed by calling the getter functions of the package. For using truncated SAGBI bases and Hilbert series, the base ring R has to be standard graded.
@param R The polynomial ring containing the subalgebra, i.e. the ring of the fs.
@param fs A list of polynomials in R
@return The subalgebra of R generated by the polynomials in fs, represented as a tagged object.
Use R ::= QQ[x,y,z]; S := SB.Subalgebra(R,[x^2,y+z]); PrintLn S; -- SubalgebraWithID(2, QQ[x^2, y +z]) of RingWithID(2, "QQ[x,y,z]")