In SINGULAR the standard basis algorithm is implemented as follows:
During the algorithm the set S is sorted by increasing monomial ordering of
the leading terms of the elements with respect to
The set T (respectively L) is sorted by increasing (respectively
decreasing) monomial ordering of the leading terms of the elements
(respectively the S-polynomial of the corresponding pair) with respect to
Now we explain the procedures used in the standard basis algorithm:
Update
INPUT: S, a set of polynomial vectors
OUTPUT: S, the set of polynomial vectors after the interreduction
for all DO NFBuchberger
.
HCtest
INPUT: S, a set of polynomials
OUTPUT: a boolean value (does a ``highest corner'' exist?)
and, if so, the monomial ``highest corner''
If
(that is r = 1) then it tests if there are
such that
occur as leading terms in S for all i. If this is true it computes the minimal
monomial (with respect to the ordering < in K[x]) which is not
in the ideal generated by the leading terms of the elements of S(t = 1).
This monomial is called ``highest corner''.
It changes the polynomial arithmetic to cancel all monomials with in further computations.
1cm
correspond to leading terms of S(t = 1),
corresponds to the ``highest corner'' .
initPairs
INPUT: S, a set of (interreduced) polynomial vectors
OUTPUT: L, the set of critical pairs
It creates the pairset
, s the leading term
of spoly. Using the criteria similar to Gebauer-Möller (cf. [GM]) useless pairs are cancelled.
We have two options: usually the criteria are applied for the
pairs
that is in K[x]. In the
option sugar crit we apply it to L using the idea of [GMNRT].
Clear
INPUT and OUTPUT: S, a set of polynomial vectors
Deletes f from S if
for some and .
Update
INPUT and OUTPUT: h, a polynomial vector
UpdatePairs
INPUT: h, a polynomial vector
S, a set of polynomial vectors
OUTPUT: L, the set of critical pairs from S and h
h := LazyNF
INPUT: s, a polynomial vector to reduce
(a,b), the critical pair from which s is
the spoly
T, a set of polynomials with which to
reduce
OUTPUT: h, the reduced polynomial vector
NFupdatePairs
INPUT: h, a polynomial vector
S, a set of polynomial vectors
OUTPUT: L the set of some critical pairs from S and h
completeReduce
INPUT and OUTPUT: S, a set of polynomial vectors
redtail
INPUT and OUTPUT: s, a polynomial vector
reduces the monomial below L(s) with elements from S as long as possible.