# LexTriangularPackage(R, ls)ΒΆ

A package for solving polynomial systems with finitely many solutions. The decompositions are given by means of regular triangular sets. The computations use lexicographical Groebner bases. The main operations are lexTriangular and squareFreeLexTriangular. The second one provide decompositions by means of square-free regular triangular sets. Both are based on the *lexTriangular* method described in [1]. They differ from the algorithm described in [2] by the fact that multiciplities of the roots are not kept. With the squareFreeLexTriangular operation all multiciplities are removed. With the other operation some multiciplities may remain. Both operations admit an optional argument to produce normalized triangular sets.

- fglmIfCan: List NewSparseMultivariatePolynomial(R, OrderedVariableList ls) -> Union(List NewSparseMultivariatePolynomial(R, OrderedVariableList ls), failed)
`fglmIfCan(lp)`

returns the lexicographical Groebner basis of`lp`

by using the*FGLM*strategy, if`zeroDimensional?(lp)`

holds .

- groebner: List NewSparseMultivariatePolynomial(R, OrderedVariableList ls) -> List NewSparseMultivariatePolynomial(R, OrderedVariableList ls)
`groebner(lp)`

returns the lexicographical Groebner basis of`lp`

. If`lp`

generates a zero-dimensional ideal then the*FGLM*strategy is used, otherwise the*Sugar*strategy is used.

- lexTriangular: (List NewSparseMultivariatePolynomial(R, OrderedVariableList ls), Boolean) -> List RegularChain(R, ls)
`lexTriangular(base, norm?)`

decomposes the variety associated with`base`

into regular chains. Thus a point belongs to this variety iff it is a regular zero of a regular set in in the output. Note that`base`

needs to be a lexicographical Groebner basis of a zero-dimensional ideal. If`norm?`

is`true`

then the regular sets are normalized.

- squareFreeLexTriangular: (List NewSparseMultivariatePolynomial(R, OrderedVariableList ls), Boolean) -> List SquareFreeRegularTriangularSet(R, IndexedExponents OrderedVariableList ls, OrderedVariableList ls, NewSparseMultivariatePolynomial(R, OrderedVariableList ls))
`squareFreeLexTriangular(base, norm?)`

decomposes the variety associated with`base`

into square-free regular chains. Thus a point belongs to this variety iff it is a regular zero of a regular set in in the output. Note that`base`

needs to be a lexicographical Groebner basis of a zero-dimensional ideal. If`norm?`

is`true`

then the regular sets are normalized.

- zeroDimensional?: List NewSparseMultivariatePolynomial(R, OrderedVariableList ls) -> Boolean
`zeroDimensional?(lp)`

returns`true`

iff`lp`

generates a zero-dimensional ideal`w`

.`r`

.`t`

. the variables involved in`lp`

.

- zeroSetSplit: (List NewSparseMultivariatePolynomial(R, OrderedVariableList ls), Boolean) -> List RegularChain(R, ls)
`zeroSetSplit(lp, norm?)`

decomposes the variety associated with`lp`

into regular chains. Thus a point belongs to this variety iff it is a regular zero of a regular set in in the output. Note that`lp`

needs to generate a zero-dimensional ideal. If`norm?`

is`true`

then the regular sets are normalized.

- zeroSetSplit: (List NewSparseMultivariatePolynomial(R, OrderedVariableList ls), Boolean) -> List SquareFreeRegularTriangularSet(R, IndexedExponents OrderedVariableList ls, OrderedVariableList ls, NewSparseMultivariatePolynomial(R, OrderedVariableList ls))
`zeroSetSplit(lp, norm?)`

decomposes the variety associated with`lp`

into square-free regular chains. Thus a point belongs to this variety iff it is a regular zero of a regular set in in the output. Note that`lp`

needs to generate a zero-dimensional ideal. If`norm?`

is`true`

then the regular sets are normalized.