
D.2.4 grobcov_lib
 Library:
 grobcov.lib
 Purpose:
 February 2018. Groebner Cover for parametric ideals.
 Important:
 The book, not yet published:
A. Montes. " The Groebner Cover":
(Discussing Parametric Polynomial Systems).
can be used as a user manual of all the routines included in this library.
It defines and proves all the theoretic results used here, and shows examples of all the routines.
It will be published soon.
There are many previous papers realted to the subject, but the book actualices all the contents.
(https://www.mat.upc.edu/en/people/antonio.montes/).
 Authors:
 Antonio Montes (Universitat Politecnica de Catalunya),
Hans Schoenemann (Technische Universitaet Kaiserslautern).
 Purpose:
 The routine grobcov computes a Groebner cover of a parametric ideal.
This is a disjoint covering of the parameter space by locally closed sets (set theoretical the difference of two
varieties given by two ideals), on which the Groebner basis of the input ideal is constant (and hence all invariants
which can be computed from the Groebner basis or its leading ideal). Moreover it computes for each locally
closed subset the corresponding Groebner basis and the leading ideal.
This is the fundamental routine of the library.
 Overview:
 In 2010, the library was designed to contain MontesWibmer's algorithms
for computing the Canonical Groebner Cover of a parametric ideal.s
The central routine is grobcov. Given a parametric ideal,
grobcov outputs its Canonical Groebner Cover, consisting of a set
of triplets of (lpp, 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 representation.
The segments 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 actually 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. The actual version
also includes a routine (ConsLevels) for computing the canonical form
of a constructible set, given as a union of locally closed sets.
It determines the canonical locally closed level sets of a constructible set.
It is described in:
J.M. Brunat, A. Montes, "Computing the canonical representation of constructible sets".
Math. Comput. Sci. (2016) 19: 165178.
A new routine locus has been included to compute loci of points,
and determining the taxonomy of the components. It is described in the book
A. Montes. "The Groebner Cover" (Discussing Parametric Polynomial Systems).
Additional routines to transform the output to string (locusdg, locusto)
are also included and used in the Dynamic Geometry software GeoGebra.
They were described in:
M.A. Abanades, F. Botana, A. Montes, T. Recio: "An Algebraic Taxonomy for Locus Computation in Dynamic Geometry".
ComputerAided Design 56 (2014) 2233.
Recently also routines for computing the generalized envelope of a family of hypersurfaces (envelop),
to be used in Dynamic Geometry, has been included and is described in the book
A. Montes. "The Groebner Cover" (Discussing Parametric Polynomial Systems).
The last inclusion is an automatic algorithm for Automatic Deduction of Geometric Theorems,
described in the book "Groebner Cover".
This version was finished on 10/02/2018
 Notations:
 Before calling any routine of the library grobcov, the user must define the ideal Q[a][x],
and all the input polynomials and ideals defined on it.
Internally the routines define and use also other ideals: Q[a], Q[x,a] and so on.
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, but can also be used independently if only a CGS is required. It is a more efficient routine than buildtree (the own routine of 2010 that is no more available). Now, KapurSunWang (KSW) algorithm is used. 
D.2.4.3 pdivi   Performs a pseudodivision of a parametric polynomial by a parametric ideal. 
D.2.4.4 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.5 Crep   Computes the canonical Crepresentation of V(N) V(M). It can be called in Q[a] or in Q[a][x], but the ideals N,M can only contain parameters of Q[a]. 
D.2.4.6 Prep   Computes the canonical Prepresentation of V(N) V(M). It can be called in Q[a] or in Q[a][x], but the ideals N,M can only contain parameters of Q[a]. 
D.2.4.7 PtoCrep   Starting from the canonical Prep of a locally closed set computes its Crep. 
D.2.4.8 extendpoly   Given the generic representation f of an Iregular function F defined by poly f on V(p) V(q) it returns its full representation. 
D.2.4.9 extendGC   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 extendGC(GC) (and options) to obtain the full representation of the bases. With the default option ("ext",0) only the generic representation of the bases is computed, and one can obtain the full representation using extendGC. 
D.2.4.10 ConsLevels   Given a list L of locally closed sets, it returns the closures of the canonical levels of the constructible set and its complements of the union of them. 
D.2.4.11 Levels   Transforms the output of ConsLevels into the proper Levels of the constructible set. 
D.2.4.12 locus   Special routine for determining the geometrical locus of points verifying given conditions. Given a parametric ideal J in Q[x1,..,xn][u1,..,um] with parameters (x1,..,xn) and variables (u1,..,um), representing the system determining the ndimensional locus with tracer point (x1,..,xn) verifying certain properties, one can apply locus to the system F, for obtaining the locus. locus provides all the components of the locus and determines their taxonomy, that can be: "Normal", "Special", "Accumulation", "Degenerate". The coordinates of a mover point, if it exist, should be placed as the n last uvariables. 
D.2.4.13 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 "Normal", and"Accumulation" components. 
D.2.4.14 envelop   Special routine for determining the envelop of a family of hypersurfaces F in Q[x1,..,xn][t1,..,tm] depending on an ideal of constraints C in Q[t1,..,tm]. It computes the locus of the envelop, and detemines the different components as well as its taxonomy: "Normal", "Special", "Accumulation", "Degenerate". (See help for locus). 
D.2.4.15 locusto   Transforms the output of locus, locusdg, envelop into a string that can be reed from different computational systems. 
D.2.4.16 stdlocus   Simple procedure to determine the components of the locus, alternative to locus that uses only standard GB computation. Cannot determine the taxonomy of the irreducible components. 
D.2.4.17 AssocTanToEnv   Having computed an envelop component E of a family of hypersurfaces F, with constraints C, it returns the parameter values of the associated tangent hypersurface of the family passing at one point of the envelop component E. 
D.2.4.18 FamElemsAtEnvCompPoints   Having computed an envelop component E of a family of hypersurfaces F, with constraints C, it returns the parameter values of all the hypersurfaces of the family passing at one point of the envelop component E. 
D.2.4.19 discrim   Determines the factorized discriminant of a degree 2 polynomial in the variable x. The polynomial can be defined on any ring where x is a variable. The polynomial f can depend on parameters and variables. 
D.2.4.20 WLemma   Given an ideal F in Q[a][x] and an ideal A in Q[a], it returns the list (lpp,B,S) were B is the reduced Groebner basis of the specialized F over the segment S, subset of V(A) with top A, determined by Wibmer's Lemma. S is determined in Prepresentation (or optionally in Crepresentation). The basis is given by Iregular functions. 
D.2.4.21 intersectpar   Auxiliary routine. Given a list of ideals definend on K[a][x] it determines the intersection of all of them in K[x,a] 
D.2.4.22 ADGT   Given 4 ideals H,T,H1,T1 in Q[a][x], corresponding to a problem of Automatic Deduction of Geometric Theorems, it determines the supplementary conditions over the parameters for the Proposition (H and not H1) => (T and not T1) to be a Theorem. If H1=1 then H1 is not considered, and analogously for T1. 
See also:
compregb_lib.
