# GroebnerFactorizationPackage(Dom, Expon, VarSet, Dpol)ΒΆ

- Dom: Join(EuclideanDomain, CharacteristicZero)
- Expon: OrderedAbelianMonoidSup
- VarSet: OrderedSet
- Dpol: PolynomialCategory(Dom, Expon, VarSet)

GroebnerFactorizationPackage provides the function groebnerFactor” which uses the factorization routines of Language{} to factor each polynomial under consideration while doing the groebner basis algorithm. Then it writes the ideal as an intersection of ideals determined by the irreducible factors. Note that the whole ring may occur as well as other redundancies. We also use the fact, that from the second factor on we can assume that the preceding factors are not equal to 0 and we divide all polynomials under considerations by the elements of this list of “nonZeroRestrictions”. The result is a list of groebner bases, whose union of solutions of the corresponding systems of equations is the solution of the system of equation corresponding to the input list. The term ordering is determined by the polynomial type used. Suggested types include DistributedMultivariatePolynomial, HomogeneousDistributedMultivariatePolynomial, GeneralDistributedMultivariatePolynomial.

- factorGroebnerBasis: (List Dpol, Boolean) -> List List Dpol
`factorGroebnerBasis(basis, info)`

checks whether the`basis`

contains reducible polynomials and uses these to split the`basis`

. If argument*info*is`true`

, information is printed about partial results.

- factorGroebnerBasis: List Dpol -> List List Dpol
`factorGroebnerBasis(basis)`

checks whether the`basis`

contains reducible polynomials and uses these to split the`basis`

.

- groebnerFactorize: (List Dpol, Boolean) -> List List Dpol
`groebnerFactorize(listOfPolys, info)`

returns a list of groebner bases. The union of their solutions is the solution of the system of equations given by*listOfPolys*. At each stage the polynomial`p`

under consideration (either from the given basis or obtained from a reduction of the next`S`

-polynomial) is factorized. For each irreducible factors of`p`

, a new*createGroebnerBasis*is started doing the usual updates with the factor in place of`p`

. If*info*is`true`

, information is printed about partial results.

- groebnerFactorize: (List Dpol, List Dpol) -> List List Dpol
`groebnerFactorize(listOfPolys, nonZeroRestrictions)`

returns a list of groebner basis. The union of their solutions is the solution of the system of equations given by*listOfPolys*under the restriction that the polynomials of*nonZeroRestrictions*don`'t`

vanish. At each stage the polynomial`p`

under consideration (either from the given basis or obtained from a reduction of the next`S`

-polynomial) is factorized. For each irreducible factors of`p`

, a new*createGroebnerBasis*is started doing the usual updates with the factor in place of`p`

.

- groebnerFactorize: (List Dpol, List Dpol, Boolean) -> List List Dpol
`groebnerFactorize(listOfPolys, nonZeroRestrictions, info)`

returns a list of groebner basis. The union of their solutions is the solution of the system of equations given by*listOfPolys*under the restriction that the polynomials of*nonZeroRestrictions*don`'t`

vanish. At each stage the polynomial`p`

under consideration (either from the given basis or obtained from a reduction of the next`S`

-polynomial) is factorized. For each irreducible factors of`p`

a new*createGroebnerBasis*is started doing the usual updates with the factor in place of`p`

. If argument*info*is`true`

, information is printed about partial results.

- groebnerFactorize: List Dpol -> List List Dpol
`groebnerFactorize(listOfPolys)`

returns a list of groebner bases. The union of their solutions is the solution of the system of equations given by*listOfPolys*. At each stage the polynomial`p`

under consideration (either from the given basis or obtained from a reduction of the next`S`

-polynomial) is factorized. For each irreducible factors of`p`

, a new*createGroebnerBasis*is started doing the usual updates with the factor in place of`p`

.