
D.2.4 grobcov_lib
 Library:
 grobcov.lib
 Purpose:
 Groebner Cover for parametric ideals.
Comprehensive Groebner Systems, Groebner Cover, Canonical Forms,
Parametric Polynomial Systems, Dynamic Geometry, Loci, Envelop,
Constructible sets.
See
A. Montes A, M. Wibmer,
"Groebner Bases for Polynomial Systems with parameters",
Journal of Symbolic Computation 45 (2010) 13911425.
(http://wwwma2.upc.edu/~montes/).
 Authors:
 Antonio Montes , Hans Schoenemann.
 Overview:
 In 2010, the library was designed to contain MontesWibmer's
algorithms for compute the canonical Groebner Cover of a
parametric ideal as described in the paper:
Montes A., Wibmer M.,
"Groebner Bases for Polynomial Systems with parameters".
Journal of Symbolic Computation 45 (2010) 13911425.
The central routine is grobcov. Given a parametric
ideal, grobcov outputs its Canonical Groebner Cover, consisting
of a set of pairs of (basis, segment). The basis (after
normalization) is the reduced Groebner basis for each point
of the segment. The segments are disjoint, locally closed
and correspond to constant lpp (leading power product)
of the basis, and are represented in canonical prime
representation. The segments are disjoint and cover the
whole parameter space. The output is canonical, it only
depends on the given parametric ideal and the monomial order.
This is much more than a simple Comprehensive Groebner System.
The algorithm grobcov allows options to solve partially the
problem when the whole automatic algorithm does not finish
in reasonable time.
grobcov uses a first algorithm cgsdr that outputs a disjoint
reduced Comprehensive Groebner System with constant lpp.
For this purpose, in this library, the implemented algorithm is
KapurSunWang algorithm, because it is the most efficient
algorithm known for this purpose.
D. Kapur, Y. Sun, and D.K. Wang.
"A New Algorithm for Computing Comprehensive Groebner Systems".
Proceedings of ISSAC'2010, ACM Press, (2010), 2936.
The library has evolved to include new applications of the
Groebner Cover, and new theoretical developments have been done.
A new set of routines (locus, locusdg, locusto) has been included to
compute loci of points. The routines are used in the Dynamic
Geometry software Geogebra. They are described in:
Abanades, Botana, Montes, Recio:
"An Algebraic Taxonomy for Locus Computation in Dynamic Geometry".
ComputerAided Design 56 (2014) 2233.
Recently also routines for computing the envelop of a family
of curves (enverlop, envelopdg), to be used in Dynamic Geometry,
has been included and will be described in a forthcoming paper:
Abanades, Botana, Montes, Recio:
"Envelops in Dynamic Geometry using the Groebner cover".
The actual version also includes two routines (AddCons and AddconsP)
for computing the canonical form of a constructible set, given as a
union of locally closed sets. They are used in the new version for the
computation of loci and envelops. It determines the canonical locally closed
level sets of a constructuble. They will be described in a forthcoming paper:
A. Montes, J.M. Brunat,
"Canonical representations of constructible sets".
This version was finished on 31/01/2015
 Notations:
 All given and determined polynomials and ideals are in the
basering Q[a][x]; (a=parameters, x=variables)
After defining the ring, the main routines
grobcov, cgsdr,
generate the global rings
Grobcov::@R (Q[a][x]),
Grobcov::@P (Q[a]),
Grobcov::@RP (Q[x,a])
that are used inside and killed before the output.
If you want to use some internal routine you must
create before the above rings by calling setglobalrings();
because some of the internal routines use these rings.
The call to the basic routines grobcov, cgsdr will
kill these rings.
Procedures:
D.2.4.1 grobcov   Is the basic routine giving the canonical Groebner Cover of the parametric ideal F. This routine accepts many options, that allow to obtain results even when the canonical computation does not finish in reasonable time. 
D.2.4.2 cgsdr   Is the procedure for obtaining a first disjoint, reduced Comprehensive Groebner System that is used in grobcov, that can also be used independently if only the CGS is required. It is a more efficient routine than buildtree (the own routine of 2010 that is no more used). Now, KSW algorithm is used. 
D.2.4.3 setglobalrings   Generates the global rings @R, @P and @PR that are respectively the rings Q[a][x], Q[a], Q[x,a]. (a=parameters, x=variables) It is called inside each of the fundamental routines of the library: grobcov, cgsdr, locus, locusdg and killed before the output. If the user want to use some other internal routine, then setglobalrings() is to be called before, as most of them use these rings. 
D.2.4.4 pdivi   Performs a pseudodivision of a parametric polynomial by a parametric ideal. 
D.2.4.5 pnormalf   Reduces a parametric polynomial f over V(E) V(N) ( E is the null ideal and N the nonnull ideal ) over the parameters. 
D.2.4.6 Crep   Computes the canonical Crepresentation of V(N) V(M). 
D.2.4.7 Prep   Computes the canonical Prepresentation of V(N) V(M). 
D.2.4.8 PtoCrep   Starting from the canonical Prep of a locally closed set computes its Crep. 
D.2.4.9 extend   When the grobcov of an ideal has been computed with the default option ('ext',0) and the explicit option ('rep',2) (which is not the default), then one can call extend (GC) (and options) to obtain the full representation of the bases. With the default option ('ext',0) only the generic representation of the bases are computed, and one can obtain the full representation using extend. 
D.2.4.10 locus   Special routine for determining the geometrical locus of points verifying given conditions. Given a parametric ideal J with parameters (x,y) and variables (x_1,..,xn), representing the system determining the locus of points (x,y) who verify certain properties, one can apply locus to the output of grobcov(J), locus determines the different classes of locus components. described in the paper: "An Algebraic Taxonomy for Locus Computation in Dynamic Geometry", M. Abanades, F. Botana, A. Montes, T. Recio, ComputerAided Design 56 (2014) 2233. The components can be 'Normal', 'Special', 'Accumulation', 'Degenerate'. The output are the components is given in Pcanonical form It also detects automatically a possible point that is to be avoided by the mover, whose coordinates must be the last two coordinates in the definition of the ring. If such a point is detected, then it eliminates the segments of the grobcov depending on the point that is to be avoided. 
D.2.4.11 locusdg   Is a special routine that determines the 'Relevant' components of the locus in dynamic geometry. It is to be called to the output of locus and selects from it the useful components. 
D.2.4.12 envelop   Special routine for determining the envelop of a family of curves F in Q[x,y][x_1,..xn] depending on a ideal of constraints C in Q[x_1,..,xn]. It detemines the different components as well as its type: 'Normal', 'Special', 'Accumulation', 'Degenerate'. And it also classifies the Special components, determining the zero dimensional antiimage of the component and verifying if the component is a special curve of the family or not. It calls internally first grobcov and then locus with special options to obtain the complete result. The taxonomy that it provides, as well as the algorithms involved will be described in a forthcoming paper: Abanades, Botana, Montes, Recio: "Envelops in Dynamic Geometry using the Gr"obner cover". 
D.2.4.13 envelopdg   Is a special routine to determine the 'Relevant' components of the envelop of a family of curves to be used in Dynamic Geometry. It must be called to the output of envelop(F,C). 
D.2.4.14 locusto   Transforms the output of locus, locusdg, envelop and envelopdg into a string that can be reed from different computational systems. 
D.2.4.15 AddCons   Uses the routine AddConsP. Given a set of locally closed sets as difference of of varieties (does not need to be in Crepresentation) it returns the canonical Prepresentation of the constructible set formed by the union of them. The result is formed by a set of embedded, disjoint, locally closed sets (levels). 
D.2.4.16 AddConsP   Given a set of locally closed Pcomponents, it returns the canonical Prepresentation of the constructible set formed by the union of them, consisting of a set of embedded, disjoint locally closed sets (levels). The routines AddCons and AddConsP and the canonical structure of the constructible sets will be described in a forthcoming paper. A. Montes, J.M. Brunat, "Canonical representations of constructible sets". 
See also:
compregb_lib.
