source: CGBLisp/latex-doc/grobner.tex@ 1

Last change on this file since 1 was 1, checked in by Marek Rychlik, 15 years ago

First import of a version circa 1997.

File size: 31.1 KB
Line 
1\begin{lisp:documentation}{*grobner$-$debug*}{VARIABLE}{nil }
2If T, produce debugging and tracing output.
3\end{lisp:documentation}
4
5\begin{lisp:documentation}{*buchberger$-$merge$-$pairs*}{VARIABLE}{'buchberger$-$merge$-$pairs$-$smallest$-$lcm }
6A variable holding the predicate used to sort critical pairs
7in the order of decreasing priority for the Buchberger algorithm.
8\end{lisp:documentation}
9
10\begin{lisp:documentation}{*gebauer$-$moeller$-$merge$-$pairs*}{VARIABLE}{'gebauer$-$moeller$-$merge$-$pairs$-$use$-$mock$-$spoly }
11A variable holding the predicate used to sort critical pairs
12in the order of decreasing priority for the Gebauer$-$Moeller
13algorithm
14\end{lisp:documentation}
15
16\begin{lisp:documentation}{*grobner$-$function*}{VARIABLE}{'buchberger }
17The name of the function used to calculate Grobner basis
18\end{lisp:documentation}
19
20\begin{lisp:documentation}{select$-$grobner$-$algorithm}{FUNCTION}{algorithm }
21Select one of the several implementations of the Grobner basis
22algorithm.
23\end{lisp:documentation}
24
25\begin{lisp:documentation}{grobner}{FUNCTION}{f {\sf \&optional} (pred \#'lex$>$) (start 0) (top$-$reduction$-$only nil) (ring *coefficient$-$ring*) }
26Return Grobner basis of an ideal generated by polynomial list F.
27Assume that the monomials of each polynomial are ordered according to
28the admissible monomial order PRED. The result will be a list of
29polynomials ordered as well according to PRED. The polynomials from 0
30to START$-$1 in the list F are assumed to be a Grobner basis, and
31thus certain critical pairs do not have to be calculated. If
32TOP$-$REDUCTION$-$ONLY is not NIL then only top reductions will be
33performed, instead of full division, and thus the returned Grobner
34basis will have its polynomials only top$-$reduced with respect to
35the preceding polynomials. RING should be set to the RING structure
36(see COEFFICIENT$-$RING package) corresponding to the coefficients of
37the polynomials in the list F. This function is currently just an
38interface to several algorithms which fine Grobner bases. Use
39SELECT$-$GROBNER$-$ALGORITHM in order to change the algorithm.
40\end{lisp:documentation}
41
42\begin{lisp:documentation}{debug$-$cgb}{MACRO}{{\sf \&rest} args }
43This macro is used in printing debugging and tracing messages
44and its arguments are analogous to the FORMAT function, except
45that the stream argument is omitted. By default, the output is
46sent to *trace$-$output*, which can be set to produce output
47in a file.
48\end{lisp:documentation}
49
50\begin{lisp:documentation}{spoly}{FUNCTION}{f g pred ring }
51Return the S$-$polynomial of F and G, which should
52be two polynomials with terms ordered by PRED and
53coefficients in a ring whose operations are the slots
54of the RING structure.
55\end{lisp:documentation}
56
57\begin{lisp:documentation}{grobner$-$primitive$-$part}{FUNCTION}{p ring }
58Divide polynomial P with integer coefficients by gcd of its
59coefficients and return the result. Use the RING structure from the
60COEFFICIENT$-$RING package to perform the operations on the
61coefficients.
62\end{lisp:documentation}
63
64\begin{lisp:documentation}{grobner$-$content}{FUNCTION}{p ring }
65Greatest common divisor of the coefficients of the polynomial P. Use
66the RING structure to compute the greatest common divisor.
67\end{lisp:documentation}
68
69\begin{lisp:documentation}{normal$-$form}{FUNCTION}{f fl pred top$-$reduction$-$only ring }
70Calculate the normal form of the polynomial F with respect to
71the polynomial list FL. Destructive to F; thus, copy$-$tree should be
72used where F needs to be preserved. It returns multiple values.
73The first value is the polynomial R which is reduced (or
74top$-$reduced if TOP$-$REDUCTION$-$ONLY is not NIL). The second value
75is an integer which is the number of reductions actually performed.
76The third value is the coefficient by which F needs to be multiplied
77in order to be able to perform the division without actually having
78to divide in the coefficient ring (a form of pseudo$-$division is
79used). All operations on the coefficients are performed using the
80RING structure from the COEFFICIENT$-$RING package.
81\end{lisp:documentation}
82
83\begin{lisp:documentation}{buchberger}{FUNCTION}{f pred start top$-$reduction$-$only ring {\sf \&aux} (s (1$-$ (length f))) b m }
84An implementation of the Buchberger algorithm. Return Grobner
85basis of the ideal generated by the polynomial list F.
86The terms of each polynomial are ordered by the admissible
87monomial order PRED. Polynomials 0 to START$-$1 are assumed to
88be a Grobner basis already, so that certain critical pairs
89will not be examined. If TOP$-$REDUCTION$-$ONLY set, top reduction
90will be preformed. The RING structure is used to perform operations
91on coefficents (see COEFFICIENT$-$RING package).
92\end{lisp:documentation}
93
94\begin{lisp:documentation}{grobner$-$op}{FUNCTION}{c1 c2 m a b pred ring {\sf \&aux} n a1 a2 }
95Perform a calculation equivalent to
96(POLY$-$ (SCALAR$-$TIMES$-$POLY C2 A)
97 (SCALAR$-$TIMES$-$POLY C1 (MONOM$-$TIMES$-$POLY M B))
98 PRED)
99but more efficiently; it destructively modifies A and stores the
100result in it; A is returned.
101\end{lisp:documentation}
102
103\begin{lisp:documentation}{buchberger$-$sort$-$pairs}{FUNCTION}{b g pred ring }
104Sort critical pairs B by the function which is
105the value of the vairable *buchberger$-$merge$-$pairs*.
106G is the list of polynomials which the elemnts
107of B point into. PRED is the admissible monomial order.
108The RING structure holds operations on the coefficients
109as described in the COEFFICIENT$-$RING package.
110\end{lisp:documentation}
111
112\begin{lisp:documentation}{mock$-$spoly}{FUNCTION}{f g pred }
113Returns an upper$-$bound on the leading
114monomial of the S$-$polynomial of F and G, which are two polynomials
115sorted by the admissible monomial order PRED.
116\end{lisp:documentation}
117
118\begin{lisp:documentation}{buchberger$-$merge$-$pairs$-$use$-$mock$-$spoly}{FUNCTION}{b c g pred ring }
119Merges lists of critical pairs B and C into one list.
120The pairs are assumed to be ordered according to the
121increasing value of MOCK$-$SPOLY, as determined by the admissible
122monomial order PRED. G is the list of polynomials which the pairs
123of integers in B and C point into, and RING is the ring structure
124defined in the COEFFICIENT$-$RING package.
125\end{lisp:documentation}
126
127\begin{lisp:documentation}{buchberger$-$merge$-$pairs$-$smallest$-$lcm}{FUNCTION}{b c g pred ring }
128Merges lists of critical pairs B and C into a single ordered
129list. Implements a strategy of ordering pairs according to the
130smallest lcm of the leading monomials of the two polynomials $-$ so
131called normal strategy.
132\end{lisp:documentation}
133
134\begin{lisp:documentation}{buchberger$-$merge$-$pairs$-$use$-$smallest$-$degree}{FUNCTION}{b c g pred ring }
135Mergest lists B and C of critical pairs. This strategy is based on
136ordering the pairs according to the smallest degree of the lcm of
137the leading monomials of the two polynomials.
138\end{lisp:documentation}
139
140\begin{lisp:documentation}{buchberger$-$merge$-$pairs$-$use$-$smallest$-$length}{FUNCTION}{b c g pred ring }
141Mergest lists B and C of critical pairs. This strategy is based on
142ordering the pairs according to the smallest total length of the
143two polynomials, where length is the number of terms.
144\end{lisp:documentation}
145
146\begin{lisp:documentation}{buchberger$-$merge$-$pairs$-$use$-$smallest$-$coefficient$-$length}{FUNCTION}{b c g pred ring }
147Mergest lists B and C of critical pairs. This strategy is based on
148ordering the pairs according to the smallest combined length of the
149coefficients of the two polynomials.
150\end{lisp:documentation}
151
152\begin{lisp:documentation}{buchberger$-$set$-$pair$-$heuristic}{FUNCTION}{method {\sf \&aux} (strategy$-$fn
153 (ecase method (:minimal$-$mock$-$spoly \#'buchberger$-$merge$-$pairs$-$use$-$mock$-$spoly)
154 (:minimal$-$lcm \#'buchberger$-$merge$-$pairs$-$smallest$-$lcm)
155 (:minimal$-$total$-$degree \#'buchberger$-$merge$-$pairs$-$use$-$smallest$-$degree)
156 (:minimal$-$length \#'buchberger$-$merge$-$pairs$-$use$-$smallest$-$length)
157 (:minimal$-$coefficient$-$length \#'buchberger$-$merge$-$pairs$-$use$-$smallest$-$coefficient$-$length))) }
158Simply sets the variable *buchberger$-$merge$-$pairs* to the
159heuristic function STRATEGY$-$FN implementing one of several
160strategies introduces before of selecting the most promising. METHOD
161should be one of the listed keywords.
162\end{lisp:documentation}
163
164\begin{lisp:documentation}{criterion$-$1}{FUNCTION}{pair g {\sf \&aux} (i (first pair)) (j (second pair)) }
165Returns T if the leading monomials of the two polynomials
166in G pointed to by the integers in PAIR have disjoint (relatively
167prime) monomials. This test is known as the first Buchberger
168criterion.
169\end{lisp:documentation}
170
171\begin{lisp:documentation}{criterion$-$2}{FUNCTION}{pair g m {\sf \&aux} (i (first pair)) (j (second pair)) }
172Returns T if the leading monomial of some element P of G divides
173the LCM of the leading monomials of the two polynomials in the
174polynomial list G, pointed to by the two integers in PAIR, and P
175paired with each of the polynomials pointed to by the the PAIR has
176already been treated, as indicated by the hash table M, which stores
177value T for every treated pair so far.
178\end{lisp:documentation}
179
180\begin{lisp:documentation}{normalize$-$poly}{FUNCTION}{p ring }
181Divide a polynomial by its leading coefficient. It assumes
182that the division is possible, which may not always be the
183case in rings which are not fields. The exact division operator
184is assumed to be provided by the RING structure of the
185COEFFICIENT$-$RING package.
186\end{lisp:documentation}
187
188\begin{lisp:documentation}{normalize$-$basis}{FUNCTION}{plist ring }
189Divide every polynomial in a list PLIST by its leading coefficient.
190Use RING structure to perform the division of the coefficients.
191\end{lisp:documentation}
192
193\begin{lisp:documentation}{reduction}{FUNCTION}{p pred ring }
194Reduce a list of polynomials P, so that non of the terms in any of
195the polynomials is divisible by a leading monomial of another
196polynomial. Return the reduced list.
197\end{lisp:documentation}
198
199\begin{lisp:documentation}{reduced$-$grobner}{FUNCTION}{f {\sf \&optional} (pred \#'lex$>$) (start 0) (top$-$reduction$-$only nil) (ring *coefficient$-$ring*) }
200Return the reduced Grobner basis of the ideal generated by a
201polynomial list F. This combines calls to two functions: GROBNER and
202REDUCTION. The parameters have the same meaning as in GROBNER or
203BUCHBERGER.
204\end{lisp:documentation}
205
206\begin{lisp:documentation}{monom$-$depends$-$p}{FUNCTION}{m k }
207Return T if the monomial M depends on variable number K.
208\end{lisp:documentation}
209
210\begin{lisp:documentation}{term$-$depends$-$p}{FUNCTION}{term k }
211Return T if the term TERM depends on variable number K.
212\end{lisp:documentation}
213
214\begin{lisp:documentation}{poly$-$depends$-$p}{FUNCTION}{p k }
215Return T if the term polynomial P depends on variable number K.
216\end{lisp:documentation}
217
218\begin{lisp:documentation}{ring$-$intersection}{FUNCTION}{plist k {\sf \&key} (key \#'identity) }
219This function assumes that polynomial list PLIST is a Grobner basis
220and it calculates the intersection with the ring R[x[k+1],...,x[n]],
221i.e. it discards polynomials which depend on variables x[0], x[1],
222..., x[k].
223\end{lisp:documentation}
224
225\begin{lisp:documentation}{elimination$-$ideal}{FUNCTION}{flist k {\sf \&key} (primary$-$order \#'lex$>$) (secondary$-$order \#'lex$>$) (start 0) (order
226 (elimination$-$order k :primary$-$order primary$-$order
227 :secondary$-$order secondary$-$order)) (top$-$reduction$-$only
228 nil) (ring
229 *coefficient$-$ring*) }
230Returns the K$-$th elimination ideal of the ideal generated by
231polynomial list FLIST. Thus, a Grobner basis of the ideal generated
232by FLIST is calculated and polynomials depending on variables 0$-$K
233are discarded. The monomial order in the calculation is an
234elimination order formed by combining two orders: PRIMARY$-$ORDER
235used on variables 0$-$K and SECONDARY$-$ORDER used on variables
236starting from variable K+1. Thus, if both orders are set to the
237lexicographic order \#'LEX$>$ then the resulting order is simply
238equivalent to \#'LEX$>$. But one could use arbitrary two orders in
239this function, for instance, two copies of \#'GREVLEX$>$ (see ORDER
240package). When doing so, the caller must ensure that the same order
241has been used to sort the terms of the polynomials FLIST.
242\end{lisp:documentation}
243
244\begin{lisp:documentation}{ideal$-$intersection}{FUNCTION}{f g pred top$-$reduction$-$only ring }
245Return the Grobner basis of the intersection of the ideals
246generated by the polynomial lists F and G. PRED is an admissible
247monomial order with respect to which the terms of F and G have been
248sorted. This order is going to be used in the Grobner basis
249calculation. If TOP$-$REDUCTION$-$ONLY is not NIL, internally the
250Grobner basis algorithm will perform top reduction only. The RING
251parameter, as usual, should be set to a structure defined in the
252package COEFFICIENT$-$RING, and it will be used to perform all
253operations on coefficients.
254\end{lisp:documentation}
255
256\begin{lisp:documentation}{poly$-$contract}{FUNCTION}{f {\sf \&optional} (k 1) }
257Return a polynomial obtained from polynomial F by dropping the
258first K variables, if F does not depend on them. Note that this
259operation makes the polynomial incompatible for certain arithmetical
260operations with the original polynomial F. Calling this function on a
261polynomial F which does depend on variables 0$-$K will result in
262error.
263\end{lisp:documentation}
264
265\begin{lisp:documentation}{poly$-$lcm}{FUNCTION}{f g {\sf \&optional} (pred \#'lex$>$) (ring *coefficient$-$ring*) }
266Return LCM (least common multiple) of two polynomials F and G.
267The polynomials must be ordered according to monomial order PRED
268and their coefficients must be compatible with the RING structure
269defined in the COEFFICIENT$-$RING package.
270\end{lisp:documentation}
271
272\begin{lisp:documentation}{grobner$-$gcd}{FUNCTION}{f g {\sf \&optional} (pred \#'lex$>$) (ring *coefficient$-$ring*) }
273Return GCD (greatest common divisor) of two polynomials F and G.
274The polynomials must be ordered according to monomial order PRED
275and their coefficients must be compatible with the RING structure
276defined in the COEFFICIENT$-$RING package.
277\end{lisp:documentation}
278
279\begin{lisp:documentation}{grobner$-$equal}{FUNCTION}{g1 g2 {\sf \&optional} (pred \#'lex$>$) (ring *coefficient$-$ring*) }
280Returns T if two lists of polynomials G1 and G2, assumed to be
281Grobner bases, generate the same ideal, and NIL otherwise.
282\end{lisp:documentation}
283
284\begin{lisp:documentation}{grobner$-$subsetp}{FUNCTION}{g1 g2 {\sf \&optional} (pred \#'lex$>$) (ring *coefficient$-$ring*) }
285Returns T if a list of polynomials G1 generates
286an ideal contained in the ideal generated by a polynomial list G2,
287both G1 and G2 assumed to be Grobner bases. Returns NIL otherwise.
288\end{lisp:documentation}
289
290\begin{lisp:documentation}{grobner$-$member}{FUNCTION}{p g {\sf \&optional} (pred \#'lex$>$) (ring *coefficient$-$ring*) }
291Returns T if a polynomial P belongs to the ideal generated by the
292polynomial list G, which is assumed to be a Grobner basis. Returns
293NIL otherwise.
294\end{lisp:documentation}
295
296\begin{lisp:documentation}{ideal$-$equal}{FUNCTION}{f1 f2 pred top$-$reduction$-$only ring }
297Returns T if two ideals generated by polynomial lists F1 and F2 are
298identical. Returns NIL otherwise.
299\end{lisp:documentation}
300
301\begin{lisp:documentation}{ideal$-$subsetp}{FUNCTION}{f1 f2 {\sf \&optional} (pred \#'lex$>$) (ring *coefficient$-$ring*) }
302Returns T if the ideal spanned by the polynomial list F1 is contained
303in the ideal spanned by the polynomial list F2. Returns NIL
304otherwise.
305\end{lisp:documentation}
306
307\begin{lisp:documentation}{ideal$-$member}{FUNCTION}{p plist pred top$-$reduction$-$only ring }
308Returns T if the polynomial P belongs to the ideal spanned by the
309polynomial list PLIST, and NIL otherwise.
310\end{lisp:documentation}
311
312\begin{lisp:documentation}{ideal$-$saturation$-$1}{FUNCTION}{f p pred start top$-$reduction$-$only ring {\sf \&aux} (pred (elimination$-$order$-$1 pred)) }
313Returns the reduced Grobner basis of the saturation of the ideal
314generated by a polynomial list F in the ideal generated by a single
315polynomial P. The saturation ideal is defined as the set of
316polynomials H such for some natural number n (* (EXPT P N) H) is in
317the ideal F. Geometrically, over an algebraically closed field, this
318is the set of polynomials in the ideal generated by F which do not
319identically vanish on the variety of P.
320\end{lisp:documentation}
321
322\begin{lisp:documentation}{add$-$variables}{FUNCTION}{plist n }
323Add N new variables, adn the first N variables, to every polynomial
324in polynomial list PLIST. The resulting polynomial will not depend on
325these N variables.
326\end{lisp:documentation}
327
328\begin{lisp:documentation}{extend$-$polynomials}{FUNCTION}{plist {\sf \&aux} (k (length plist)) }
329Returns polynomial list \{U1*P1', U2*P2', ... , UK*PK'\}
330where Ui are new variables and PLIST=\{P1, P2, ... , PK\} is a
331polynomial list. PI' is obtained from PI by adding new variables U1,
332U2, ..., UN UK as the first K variables. Thus, the resulting list is
333consists of polynomials whose terms are ordered by the lexicographic
334order on variables UI, with ties resolved by the monomial order which
335was used to order the terms of the polynomials in PLIST. We note that
336the monomial order does not explicitly participate in this
337calculation, and neither do the variable names.
338\end{lisp:documentation}
339
340\begin{lisp:documentation}{saturation$-$extension}{FUNCTION}{f plist ring {\sf \&aux} (k (length plist)) (d (+ k (length (caaar plist)))) }
341Returns F' union \{U1*P1$-$1,U2*P2$-$1,...,UK*PK$-$1\} where Ui are
342new variables and F' is a polynomial list obtained from F by adding
343variables U1, U2, ..., Uk as the first K variables to each polynomial
344in F. Thus, the resulting list is consists of polynomials whose terms
345are ordered by the lexicographic order on variables Ui, with ties
346resolved by the monomial order which was used to order the terms of
347the polynomials in F. We note that the monomial order does not
348explicitly participate in this calculation, and neither do the
349variable names.
350\end{lisp:documentation}
351
352\begin{lisp:documentation}{polysaturation$-$extension}{FUNCTION}{f plist ring {\sf \&aux} (k (length plist)) (d (+ k (length (caaar plist)))) }
353Returns F' union \{U1*P1+U2*P2+UK*PK$-$1\} where Ui are new variables
354and F' is a polynomial list obtained from F by adding variables U1,
355U2, ..., Uk as the first K variables to each polynomial in F. Thus,
356the resulting list is consists of polynomials whose terms are ordered
357by the lexicographic order on variables Ui, with ties resolved by the
358monomial order which was used to order the terms of the polynomials
359in F. We note that the monomial order does not explicitly participate
360in this calculation, and neither do the variable names.
361\end{lisp:documentation}
362
363\begin{lisp:documentation}{saturation$-$extension$-$1}{FUNCTION}{f p ring }
364Return the list F' union \{U*P$-$1\} where U is a new variable,
365where F' is obtained from the polynomial list F by adding U as the
366first variable. The variable U will be added as the first variable,
367so that it can be easily eliminated.
368\end{lisp:documentation}
369
370\begin{lisp:documentation}{ideal$-$polysaturation$-$1}{FUNCTION}{f plist pred start top$-$reduction$-$only ring }
371Returns the reduced Grobner basis of the ideal obtained by a
372sequence of successive saturations in the polynomials
373of the polynomial list PLIST of the ideal generated by the
374polynomial list F.
375\end{lisp:documentation}
376
377\begin{lisp:documentation}{ideal$-$saturation}{FUNCTION}{f g pred start top$-$reduction$-$only ring {\sf \&aux} (k (length g)) (pred (elimination$-$order k :primary$-$order \#'lex$>$ :secondary$-$order pred)) }
378Returns the reduced Grobner basis of the saturation of the ideal
379generated by a polynomial list F in the ideal generated a polynomial
380list G The saturation ideal is defined as the set of polynomials H
381such for some natural number n and some P in the ideal generated by G
382the polynomial P**N * H is in the ideal spanned by F. Geometrically,
383over an algebraically closed field, this is the set of polynomials in
384the ideal generated by F which do not identically vanish on the
385variety of G.
386\end{lisp:documentation}
387
388\begin{lisp:documentation}{ideal$-$polysaturation}{FUNCTION}{f ideal$-$list pred start top$-$reduction$-$only ring }
389Returns the reduced Grobner basis of the ideal obtained by a
390successive applications of IDEAL$-$SATURATIONS to F and
391lists of polynomials in the list IDEAL$-$LIST.
392\end{lisp:documentation}
393
394\begin{lisp:documentation}{buchberger$-$criterion}{FUNCTION}{g pred ring }
395Returns T if G is a Grobner basis, by using the Buchberger
396criterion: for every two polynomials h1 and h2 in G the
397S$-$polynomial S(h1,h2) reduces to 0 modulo G.
398\end{lisp:documentation}
399
400\begin{lisp:documentation}{grobner$-$test}{FUNCTION}{g f pred ring }
401Test whether G is a Grobner basis and F is contained in G. Return T
402upon success and NIL otherwise.
403\end{lisp:documentation}
404
405\begin{lisp:documentation}{minimization}{FUNCTION}{p pred }
406Returns a sublist of the polynomial list P spanning the same
407monomial ideal as P but minimal, i.e. no leading monomial
408of a polynomial in the sublist divides the leading monomial
409of another polynomial.
410\end{lisp:documentation}
411
412\begin{lisp:documentation}{add$-$minimized}{FUNCTION}{f gred pred }
413Adds a polynomial f to GRED, reduced Grobner basis, preserving the
414property described in the documentation for MINIMIZATION.
415\end{lisp:documentation}
416
417\begin{lisp:documentation}{colon$-$ideal}{FUNCTION}{f g pred top$-$reduction$-$only ring }
418Returns the reduced Grobner basis of the colon ideal Id(F):Id(G),
419where F and G are two lists of polynomials. The colon ideal I:J is
420defined as the set of polynomials H such that there is a polynomial W
421in J for which W*H belongs to I.
422\end{lisp:documentation}
423
424\begin{lisp:documentation}{colon$-$ideal$-$1}{FUNCTION}{f g pred top$-$reduction$-$only ring }
425Returns the reduced Grobner basis of the colon ideal Id(F):Id(\{G\}),
426where F is a list of polynomials and G is a polynomial.
427\end{lisp:documentation}
428
429\begin{lisp:documentation}{pseudo$-$divide}{FUNCTION}{f fl pred ring }
430Pseudo$-$divide a polynomial F by the list of polynomials FL. Return
431multiple values. The first value is a list of quotients A.
432The second value is the remainder R. The third value is an integer
433count of the number of reductions performed. Finally, the fourth
434argument is a scalar coefficient C, such that C*F can be divided by
435FL within the ring of coefficients, which is not necessarily a field.
436The resulting objects satisfy the equation:
437 C*F= sum A[i]*FL[i] + R
438\end{lisp:documentation}
439
440\begin{lisp:documentation}{gebauer$-$moeller}{FUNCTION}{f pred start top$-$reduction$-$only ring {\sf \&aux} b g f1 }
441Compute Grobner basis by using the algorithm of Gebauer and Moeller.
442This algorithm is described as BUCHBERGERNEW2 in the book by
443Becker$-$Weispfenning entitled ``Grobner Bases''
444\end{lisp:documentation}
445
446\begin{lisp:documentation}{update}{FUNCTION}{g b h pred ring {\sf \&aux} c d e b$-$new g$-$new pair }
447An implementation of the auxillary UPDATE algorithm used by the
448Gebauer$-$Moeller algorithm. G is a list of polynomials, B is a list
449of critical pairs and H is a new polynomial which possibly will be
450added to G. The naming conventions used are very close to the one
451used in the book of Becker$-$Weispfenning.
452\end{lisp:documentation}
453
454\begin{lisp:documentation}{gebauer$-$moeller$-$merge$-$pairs$-$use$-$mock$-$spoly}{FUNCTION}{b c pred ring }
455The merging strategy used by the Gebauer$-$Moeller algorithm, based
456on MOCK$-$SPOLY; see the documentation of
457BUCHBERGER$-$MERGE$-$PAIRS$-$USE$-$MOCK$-$SPOLY.
458\end{lisp:documentation}
459
460\begin{lisp:documentation}{gebauer$-$moeller$-$merge$-$pairs$-$smallest$-$lcm}{FUNCTION}{b c pred ring }
461The merging strategy based on the smallest$-$lcm (normal strategy);
462see the documentation of BUCHBERGER$-$MERGE$-$PAIRS$-$SMALLEST$-$LCM.
463\end{lisp:documentation}
464
465\begin{lisp:documentation}{gebauer$-$moeller$-$merge$-$pairs$-$use$-$smallest$-$degree}{FUNCTION}{b c pred ring }
466The merging strategy based on the smallest$-$lcm (normal strategy);
467see the documentation of
468BUCHBERGER$-$MERGE$-$PAIRS$-$USE$-$SMALLEST$-$DEGREE.
469\end{lisp:documentation}
470
471\begin{lisp:documentation}{gebauer$-$moeller$-$merge$-$pairs$-$use$-$smallest$-$length}{FUNCTION}{b c pred ring }
472{\ } % NO DOCUMENTATION FOR GEBAUER-MOELLER-MERGE-PAIRS-USE-SMALLEST-LENGTH
473\end{lisp:documentation}
474
475\begin{lisp:documentation}{gebauer$-$moeller$-$merge$-$pairs$-$use$-$smallest$-$coefficient$-$length}{FUNCTION}{b c pred ring }
476The merging strategy based on the smallest$-$lcm (normal strategy);
477see the documentation of
478BUCHBERGER$-$MERGE$-$PAIRS$-$USE$-$SMALLEST$-$COEFFICIENT$-$LENGTH.
479\end{lisp:documentation}
480
481\begin{lisp:documentation}{gebauer$-$moeller$-$set$-$pair$-$heuristic}{FUNCTION}{method {\sf \&aux} (strategy$-$fn
482 (ecase method (:minimal$-$mock$-$spoly \#'gebauer$-$moeller$-$merge$-$pairs$-$use$-$mock$-$spoly)
483 (:minimal$-$lcm \#'gebauer$-$moeller$-$merge$-$pairs$-$smallest$-$lcm)
484 (:minimal$-$total$-$degree \#'gebauer$-$moeller$-$merge$-$pairs$-$use$-$smallest$-$degree)
485 (:minimal$-$length \#'gebauer$-$moeller$-$merge$-$pairs$-$use$-$smallest$-$length)
486 (:minimal$-$coefficient$-$length
487 \#'gebauer$-$moeller$-$merge$-$pairs$-$use$-$smallest$-$coefficient$-$length))) }
488{\ } % NO DOCUMENTATION FOR GEBAUER-MOELLER-SET-PAIR-HEURISTIC
489\end{lisp:documentation}
490
491\begin{lisp:documentation}{spoly$-$sugar}{FUNCTION}{f$-$with$-$sugar g$-$with$-$sugar ring }
492Calculate the ``sugar'' of the S$-$polynomial of two polynomials with
493sugar. A polynomial with sugar is simply a pair (P . SUGAR) where
494SUGAR is an integer constant defined according to the following
495algorighm: the sugar of sum or difference of two polynomials with
496sugar is the MAX of the sugars of those two polynomials. The sugar of
497a product of a term and a polynomial is the sum of the degree of the
498term and the sugar of the polynomial. The idea is to accumulate
499sugar as we perform the arithmetic operations, and that polynomials
500with small (little) sugar should be given priority in the
501calculations. Thus, the ``sugar strategy'' of the critical pair
502selection is to select a pair with the smallest value of sugar of the
503resulting S$-$polynomial.
504\end{lisp:documentation}
505
506\begin{lisp:documentation}{spoly$-$with$-$sugar}{FUNCTION}{f$-$with$-$sugar g$-$with$-$sugar pred ring }
507The S$-$polynomials of two polynomials with SUGAR strategy.
508\end{lisp:documentation}
509
510\begin{lisp:documentation}{normal$-$form$-$with$-$sugar}{FUNCTION}{f fl pred top$-$reduction$-$only ring }
511Normal form of the polynomial with sugar F with respect to
512a list of polynomials with sugar FL. Assumes that FL is not empty.
513Parameters PRED, TOP$-$REDUCTION$-$ONLY and RING have the same
514meaning as in NORMAL$-$FORM. The parameter SUGAR$-$LIMIT should be
515set to a positive integer. If the sugar limit of the partial
516remainder exceeds SUGAR$-$LIMIT then the calculation is stopped and
517the partial remainder is returned, although it is not fully reduced
518with respect to FL.
519\end{lisp:documentation}
520
521\begin{lisp:documentation}{buchberger$-$with$-$sugar}{FUNCTION}{f$-$no$-$sugar pred start top$-$reduction$-$only ring {\sf \&aux} (s (1$-$ (length f$-$no$-$sugar))) b m f }
522Returns a Grobner basis of an ideal generated by a list of ordinary
523polynomials F$-$NO$-$SUGAR. Adds initial sugar to the polynomials and
524performs the Buchberger algorithm with ``sugar strategy''. It returns
525an ordinary list of polynomials with no sugar. One of the most
526effective algorithms for Grobner basis calculation.
527\end{lisp:documentation}
528
529\begin{lisp:documentation}{buchberger$-$with$-$sugar$-$merge$-$pairs}{FUNCTION}{b c g m pred ring }
530Merges lists of critical pairs. It orders pairs according to
531increasing sugar, with ties broken by smaller MOCK$-$SPOLY value of
532the two polynomials. In this function B must already be sorted.
533\end{lisp:documentation}
534
535\begin{lisp:documentation}{buchberger$-$with$-$sugar$-$sort$-$pairs}{FUNCTION}{c g m pred ring }
536Sorts critical pairs C according to sugar strategy.
537\end{lisp:documentation}
538
539\begin{lisp:documentation}{criterion$-$1$-$with$-$sugar}{FUNCTION}{pair g {\sf \&aux} (i (first pair)) (j (second pair)) }
540An implementation of Buchberger's first criterion for polynomials
541with sugar. See the documentation of BUCHBERGER$-$CRITERION$-$1.
542\end{lisp:documentation}
543
544\begin{lisp:documentation}{criterion$-$2$-$with$-$sugar}{FUNCTION}{pair g m {\sf \&aux} (i (first pair)) (j (second pair)) }
545An implementation of Buchberger's first criterion for polynomials
546with sugar. See the documentation of BUCHBERGER$-$CRITERION$-$2.
547\end{lisp:documentation}
548
549\begin{lisp:documentation}{gebauer$-$moeller$-$with$-$sugar}{FUNCTION}{f pred start top$-$reduction$-$only ring {\sf \&aux} b g f1 }
550Compute Grobner basis by using the algorithm of Gebauer and Moeller.
551This algorithm is described as BUCHBERGERNEW2 in the book by
552Becker$-$Weispfenning entitled ``Grobner Bases''
553\end{lisp:documentation}
554
555\begin{lisp:documentation}{update$-$with$-$sugar}{FUNCTION}{g b h pred ring {\sf \&aux} c d e b$-$new g$-$new pair }
556An implementation of the auxillary UPDATE algorithm used by the
557Gebauer$-$Moeller algorithm. G is a list of polynomials, B is a list
558of critical pairs and H is a new polynomial which possibly will be
559added to G. The naming conventions used are very close to the one
560used in the book of Becker$-$Weispfenning. Operates on polynomials
561with sugar.
562\end{lisp:documentation}
563
564\begin{lisp:documentation}{gebauer$-$moeller$-$with$-$sugar$-$merge$-$pairs}{FUNCTION}{b c pred ring }
565Merges lists of critical pairs. It orders pairs according to
566increasing sugar, with ties broken by smaller lcm of head monomials
567In this function B must already be sorted. Operates on polynomials
568with sugar.
569\end{lisp:documentation}
570
571\begin{lisp:documentation}{grobner$-$primitive$-$part$-$with$-$sugar}{FUNCTION}{h ring }
572{\ } % NO DOCUMENTATION FOR GROBNER-PRIMITIVE-PART-WITH-SUGAR
573\end{lisp:documentation}
574
Note: See TracBrowser for help on using the repository browser.