cgb.tex 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. % ----------------------------------------------------------------------
  2. % $Id: cgb.tex,v 1.4 1999/04/13 22:23:22 sturm Exp $
  3. % ----------------------------------------------------------------------
  4. % Copyright (c) 1999 Andreas Dolzmann and Thomas Sturm
  5. % ----------------------------------------------------------------------
  6. % $Log: cgb.tex,v $
  7. % Revision 1.4 1999/04/13 22:23:22 sturm
  8. % Added remark on updates on the WWW page.
  9. %
  10. % Revision 1.3 1999/04/13 21:29:18 sturm
  11. % Added documentation of switches.
  12. % Recomputed examples.
  13. %
  14. % Revision 1.2 1999/04/11 13:26:29 sturm
  15. % Readded documentation for switch cgbgen.
  16. %
  17. % Revision 1.1 1999/04/04 19:29:30 sturm
  18. % Copied and overworked Rev. 1.3 of the old cgb version.
  19. %
  20. % ----------------------------------------------------------------------
  21. \documentstyle{article}
  22. \overfullrule2mm
  23. \newcommand{\C}{{\bf C}}
  24. \newcommand{\R}{{\bf R}}
  25. \newcommand{\Id}{{\rm Id}}
  26. \begin{document}
  27. \title{CGB: Computing Comprehensive Gr\"obner Bases}
  28. \author{Andreas Dolzmann \& Thomas Sturm\\
  29. Department of Mathematics and Computer Science\\ University of Passau\\
  30. D-94030 Passau, Germany\\[1ex]
  31. e-mail: {\tt dolzmann@uni-passau.de}, {\tt sturm@uni-passau.de}\\[1ex]
  32. and\\[1ex]
  33. Winfried Neun\\
  34. Konrad-Zuse-Zentrum f\"ur Informationstechnik Berlin\\
  35. Takustra\ss{}e 7\\
  36. D-14195 Berlin-Dahlem, Germany\\[1ex]
  37. e-mail: {\tt neun@zib.de}}
  38. \date{15 April 1999}
  39. \maketitle
  40. \section{Introduction}
  41. Consider the ideal basis $F=\{ax,x+y\}$. Treating $a$ as a parameter,
  42. the calling sequence
  43. \begin{verbatim}
  44. torder({x,y},lex)$
  45. groebner{a*x,x+y};
  46. {x,y}
  47. \end{verbatim}
  48. yields $\{x,y\}$ as reduced Gr\"obner basis. This is, however, not
  49. correct under the specialization $a=0$. The reduced Gr\"obner basis
  50. would then be $\{x+y\}$. Taking these results together, we obtain
  51. $C=\{x+y,ax,ay\}$, which is correct wrt.~{\em all} specializations for
  52. $a$ including zero specializations. We call this set $C$ a {\em
  53. comprehensive Gr\"obner basis} ({\sc cgb}).
  54. The notion of a {\sc cgb} and a corresponding algorithm has been
  55. introduced bei Weispfenning \cite{Weispfenning:92}. This algorithm
  56. works by performing case distinctions wrt.~parametric coefficient
  57. polynomials in order to find out what the head monomials are under all
  58. possible specializations. It does thus not only determine a {\sc cgb},
  59. but even classifies the contained polynomials wrt.~the specializations
  60. they are relevant for. If we keep the Gr\"obner bases for all cases
  61. separate and associate information on the respective specializations
  62. with them, we obtain a {\em Gr\"obner system}. For our example, the
  63. Gr\"obner system is the following;
  64. $$
  65. \left[
  66. \begin{array}{c|c}
  67. a\neq0 & \{x+y,ax,ay\}\\
  68. a=0 & \{x+y\}
  69. \end{array}
  70. \right].
  71. $$
  72. A {\sc cgb} is obtained as the union of the single Gr\"obner bases in
  73. a Gr\"obner system. It has also been shown that, on the other hand, a
  74. Gr\"obner system can easily be reconstructed from a given {\sc cgb}
  75. \cite{Weispfenning:92}.
  76. The CGB package provides functions for computing both {\sc cgb}'s and
  77. Gr\"obner systems, and for turning Gr\"obner systems into {\sc cgb}'s.
  78. %
  79. \section{Using the REDLOG Package}
  80. For managing the conditions occurring with the {\sc cgb} computations,
  81. the CGB package uses the package REDLOG implementing first-order
  82. formulas, \cite{DolzmannSturm:97a,DolzmannSturm:99}, which is also
  83. part of the \textsc{reduce} distribution.
  84. %
  85. \section{Term Ordering Mode}
  86. The CGB package uses the settings made with the function {\tt torder}
  87. of the GROEBNER package. This includes in particular the choice of the
  88. main variables. All variables not mentioned in the variable list
  89. argument of {\tt torder} are parameters. The only term ordering modes
  90. recognized by \textsc{cgb} are {\tt lex} and {\tt revgradlex}.
  91. %
  92. \section{CGB: Comprehensive Gr\"ob\-ner Basis}
  93. The function {\tt cgb} expects a list $F$ of expressions. It returns a
  94. {\sc cgb} of $F$ wrt.~the current {\tt torder} setting.
  95. %
  96. \subsection*{Example}
  97. \begin{verbatim}
  98. torder({x,y},lex)$
  99. cgb{a*x+y,x+b*y};
  100. {x + b*y,a*x + y,(a*b - 1)*y}
  101. ws;
  102. {b*y + x,
  103. a*x + y,
  104. y*(a*b - 1)}
  105. \end{verbatim}
  106. Note that the basis returned by the {\tt cgb} call has not undergone
  107. the standard evaluation process: The returned polynomials are ordered
  108. wrt.~the chosen term order. Reevaluation changes this as can be seen
  109. with the output of {\tt ws}.
  110. %
  111. \section{GSYS: Gr\"obner System}
  112. The function {\tt gsys} follows the same calling conventions as {\tt
  113. cgb}. It returns the complete Gr\"obner system represented as a nested
  114. list
  115. \begin{center}
  116. \begin{tt}
  117. $\bigl\{\bigl\{c_1,\{g_{11},\ldots,g_{1n_1}\}\bigr\},\dots,
  118. \bigl\{c_m,\{g_{m1},\dots,g_{1n_m}\}\bigr\}\bigr\}$.
  119. \end{tt}
  120. \end{center}
  121. The {\tt $c_i$} are conditions in the parameters represented as
  122. quantifier-free REDLOG formulas. Each choice of parameters will obey
  123. at least one of the {\tt $c_i$}. Whenever a choice of parameters obeys
  124. some {\tt $c_i$}, the corresponding {\tt $\{g_{i1},\ldots,g_{in_i}\}$}
  125. is a Gr\"obner basis for this choice.
  126. %
  127. \subsection*{Example}
  128. \begin{verbatim}
  129. torder({x,y},lex)$
  130. gsys {a*x+y,x+b*y};
  131. {{a*b - 1 <> 0 and a <> 0,
  132. {a*x + y,x + b*y,(a*b - 1)*y}},
  133. {a <> 0 and a*b - 1 = 0,
  134. {a*x + y,x + b*y}},
  135. {a = 0,{a*x + y,x + b*y}}}
  136. \end{verbatim}
  137. As with the function {\tt cgb}, the contained polynomials remain
  138. unevaluated.
  139. Computing a Gr\"obner system is not harder than computing a {\sc cgb}.
  140. In fact, {\tt cgb} also computes a Gr\"obner system and then turns it
  141. into a {\sc cgb}.
  142. \subsection{Switch CGBGEN: Only the Generic Case}
  143. If the switch {\tt cgbgen} is turned on, both {\tt gsys} and {\tt
  144. cgb} will assume all parametric coefficients to be non-zero ignoring
  145. the other cases. For {\tt cgb} this means that the result equals---up
  146. to auto-reduction---that of {\tt groebner}. A call to {\tt gsys} will
  147. return this result as a single case including the assumptions made
  148. during the computation:
  149. %
  150. \subsection*{Example}
  151. \begin{verbatim}
  152. torder({x,y},lex)$
  153. on cgbgen;
  154. gsys{a*x+y,x+b*y};
  155. {{a*b - 1 <> 0 and a <> 0,
  156. {a*x + y,x + b*y,(a*b - 1)*y}}}
  157. off cgbgen;
  158. \end{verbatim}
  159. %
  160. \section{GSYS2CGB: Gr\"obner System to CGB}
  161. The call {\tt gsys2cgb} turns a given Gr\"obner system into a {\sc
  162. cgb} by constructing the union of the Gr\"obner bases of the single
  163. cases.
  164. %
  165. \subsection*{Example}
  166. \begin{verbatim}
  167. torder({x,y},lex)$
  168. gsys{a*x+y,x+b*y}$
  169. gsys2cgb ws;
  170. {x + b*y,a*x + y,(a*b - 1)*y}
  171. \end{verbatim}
  172. %
  173. \section{Switch CGBREAL: Computing over the Real Numbers}\label{cgbreal}
  174. All computations considered so far have taken place over the complex
  175. numbers, more precisely, over algebraically closed fields. Over the
  176. real numbers, certain branches of the {\sc cgb} computation can become
  177. inconsitent though they are not inconsistent over the complex numbers.
  178. Consider, e.g., a condition $a^2+1=0$.
  179. When turning on the switch {\tt cgbreal}, all simplifications of conditions
  180. are performed over the real numbers. The methods used for this are
  181. described in \cite{DolzmannSturm:97c}.
  182. %
  183. \subsection*{Example}
  184. \begin{verbatim}
  185. torder({x,y},lex)$
  186. off cgbreal;
  187. gsys {a*x+y,x-a*y};
  188. 2
  189. {{a + 1 <> 0 and a <> 0,
  190. 2
  191. {a*x + y,x - a*y,(a + 1)*y}},
  192. 2
  193. {a <> 0 and a + 1 = 0,{a*x + y,x - a*y}},
  194. {a = 0,{a*x + y,x - a*y}}}
  195. on cgbreal;
  196. gsys({a*x+y,x-a*y});
  197. {{a <> 0,
  198. 2
  199. {a*x + y,x - a*y,(a + 1)*y}},
  200. {a = 0,{a*x + y,x - a*y}}}
  201. \end{verbatim}
  202. \section{Switches}
  203. \begin{description}
  204. \item[cgbreal] Compute over the real numbers. See
  205. Section~\ref{cgbreal} for details.
  206. \item[cgbgs] Gr\"obner simplification of the condition. The switch
  207. {\tt cgbgs} can be turned on for applying advanced algebraic
  208. simplification techniques to the conditions. This will, in general,
  209. slow down the computation, but lead to a simpler Gr\"obner system.
  210. \item[cgbstat] Statistics of the CGB run. The switch {\tt cgbstat}
  211. toggles the creation and output of statistical information on the CGB
  212. run. The statistical information is printed at the end of the run.
  213. \item[cgbfullred] Full reduction. By default, the CGB functions
  214. perform full reductions in contrast to pure top reductions. By turning
  215. off the switch {\tt cgbfullred}, reduction can be restricted to top
  216. reductions.
  217. \end{description}
  218. \section{Updates}
  219. Information on and updates of the CGB package will be provided on
  220. \centerline{{\tt http://www.fmi.uni-passau.de/\char126 reduce/}.}
  221. \bibliographystyle{alpha}
  222. \bibliography{cgb}
  223. \end{document}