# Difference between revisions of "ApCoCoA-1:SB.IsInSubalgebra"

From ApCoCoAWiki

Line 8: | Line 8: | ||

<description> | <description> | ||

This functions checks the membership of the polynomial <tt>F</tt> in the subalgebra <tt>S</tt> generated by the polynomials of the list <tt>Gens</tt>. If <tt>F</tt> is not a member of <tt>S</tt> the function will return a list with the corresponding boolean value and NULL, otherwise <tt>TRUE</tt> and the subalgebra representation of <tt>F</tt> will be returned (see also <ref>SB.NFS</ref> and <ref>SB.SubalgebraPoly</ref>). | This functions checks the membership of the polynomial <tt>F</tt> in the subalgebra <tt>S</tt> generated by the polynomials of the list <tt>Gens</tt>. If <tt>F</tt> is not a member of <tt>S</tt> the function will return a list with the corresponding boolean value and NULL, otherwise <tt>TRUE</tt> and the subalgebra representation of <tt>F</tt> will be returned (see also <ref>SB.NFS</ref> and <ref>SB.SubalgebraPoly</ref>). | ||

+ | <par/> | ||

+ | <em>Important:</em> This functions works only, if a finite SAGBI-basis of <tt>S</tt> is existing! | ||

<itemize> | <itemize> |

## Revision as of 11:12, 21 May 2010

## SB.IsInSubalgebra

Subalgebra membership test of a polynomial.

### Syntax

SB.IsInSubalgebra(Gens:LIST of POLY, F:POLY):LIST

### Description

This functions checks the membership of the polynomial `F` in the subalgebra `S` generated by the polynomials of the list `Gens`. If `F` is not a member of `S` the function will return a list with the corresponding boolean value and NULL, otherwise `TRUE` and the subalgebra representation of `F` will be returned (see also SB.NFS and SB.SubalgebraPoly).

*Important:* This functions works only, if a finite SAGBI-basis of `S` is existing!

@param

*Gens*A list of polynomials, which are the generators of the current subalgebra.@param

*F*A polynomial.@return A list consisting of an boolean value and if it exists the subalgebra representation.

#### Example

Use R::=QQ[x,y], DegLex; F:=x^4+x^3y+x^2y^2+y^4; G:=[x^2-y^2,x^2y,x^2y^2-y^4,x^2y^4,y^6x^2y^6-y^8]; SB.IsInSubalgebra(G,F); ------------------------------------------------------- -- output: [FALSE, NULL] ------------------------------- -- Done. -------------------------------

#### Example

Use R::=QQ[x,y], DegLex; F:=x^3+x^2y; G:=[x+y,xy]; SB.IsInSubalgebra(G,F); ------------------------------------------------------- -- output: [FALSE, NULL] ------------------------------- -- Done. -------------------------------

#### Example

Use R::=QQ[x,y], DegLex; F:=x^4y^2+x^2y^4; G:=[x^2-1,y^2-1]; L:=SB.IsInSubalgebra(G,F); L; SB.SubalgebraPoly(G,L[2]); ------------------------------------------------------- -- output: [TRUE, [[2, 1, 1], [1, 2, 1], [2, 0, 1], [1, 1, 4], [0, 2, 1], [1, 0, 3], [0, 1, 3], [0, 0, 2]]] ------------------------------- SARing :: y[1]^2y[2] + y[1]y[2]^2 + y[1]^2 + 4y[1]y[2] + y[2]^2 + 3y[1] + 3y[2] + 2 ------------------------------- -- Done. -------------------------------