
D.2.4.10 locus
Procedure from library grobcov.lib (see grobcov_lib).
 Options:
 The algorithm allows the following options as pair of arguments:
"movdim", d : by default movdim is 2 but it can be set to other values,
and represents the number of mever variables. they should be given as
the last variables of the ring.
"version", v : There are two versions of the algorithm. ("version",1) is
a full algorithm that always distinguishes correctly between 'Normal'
and 'Special' components, whereas \("version",0) can decalre a component
as 'Normal' being really 'Special', but is more effective. By default ("version",1)
is used when the number of variables is less than 4 and 0 if not.
The user can force to use one or other version, but it is not recommended.
"system", ideal F: if the initial system is passed as an argument. This is actually not used.
"comments", c: by default it is 0, but it can be set to 1.
Usually locus problems have mover coordinates, variables and tracer coordinates.
The mover coordinates are to be placed as the last variables, and by default,
its number is 2. If one consider locus problems in higer dimensions, the number of
mover coordinates (placed as the last variables) is to be given as an option.
 Return:
 The locus. The output is a list of the components ( C_1,.. C_n ) where
C_i = (p_i,(p_i1,..p_is_i), type_i,l evel_i ) and type_i can be
'Normal', 'Special', Accumulation', 'Degenerate'. The 'Special' components
return more information, namely the antiimage of the component, that
is 0dimensional for these kind of components.
Normal components: for each point in the component,
the number of solutions in the variables is finite, and
the solutions depend on the point in the component.
Special components: for each point in the component,
the number of solutions in the variables is finite. The
antiimage of the component is 0dimensional.
Accumlation points: are 0dimensional components whose
antiimage is not zerodimansional.
Degenerate components: are components of dimension greater than 0
whose antiimage is notzerodiemansional.
The components are given in canonical Prepresentation.
The levels of a class of locus are 1,
because they represent locally closed. sets.
 Note:
 It can only be called after computing the grobcov of the
parametrical ideal in generic representation ('ext',0),
which is the default.
The basering R, must be of the form Q[a_1,..,a_m][x_1,..,x_n].
Example:
 LIB "grobcov.lib";
ring R=(0,a,b),(x,y),dp;
short=0;
// Concoid
ideal S96=x^2+y^24,(b2)*xa*y+2*a,(ax)^2+(by)^21;
// System S96=
S96;
==> S96[1]=x^2+y^24
==> S96[2]=(b2)*x+(a)*y+(2*a)
==> S96[3]=x^2+y^2+(2*a)*x+(2*b)*y+(a^2+b^21)
locus(grobcov(S96));
==> [1]:
==> [1]:
==> _[1]=(a^4+2*a^2*b^29*a^2+b^49*b^2+4*b+12)
==> [2]:
==> [1]:
==> _[1]=1
==> [3]:
==> Normal
==> [4]:
==> 1
==> [2]:
==> [1]:
==> _[1]=(a^2+b^24*b+3)
==> [2]:
==> [1]:
==> _[1]=1
==> [3]:
==> [1]:
==> Special
==> [2]:
==> y2,x
==> [4]:
==> 1
kill R;
// ********************************************
ring R=(0,a,b),(x4,x3,x2,x1),dp;
short=0;
ideal S=(x13)^2+(x21)^29,
(4x2)*(x33)+(x13)*(x41),
(3x1)*(x3x1)+(4x2)*(x4x2),
(4x4)*a+(x33)*b+3*x44*x3,
(ax1)^2+(bx2)^2(x1x3)^2(x2x4)^2;
// System S=
S;
==> S[1]=x2^2+x1^22*x26*x1+1
==> S[2]=x3*x2+x4*x13*x4+4*x3+3*x2x19
==> S[3]=x4*x2+x2^2x3*x1+x1^2+4*x4+3*x34*x23*x1
==> S[4]=(a+3)*x4+(b4)*x3+(4*a3*b)
==> S[5]=x4^2x3^2+2*x4*x2+2*x3*x1+(2*b)*x2+(2*a)*x1+(a^2+b^2)
locus(grobcov(S));
==> locus detected that the mover must avoid point (x13,x24) in order to ob\
tain the correct locus
==> [1]:
==> [1]:
==> _[1]=(a^26*a+b^2+b+7)
==> [2]:
==> [1]:
==> _[1]=(b2)
==> _[2]=(a^26*a+13)
==> [3]:
==> Normal
==> [4]:
==> 1
==> [2]:
==> [1]:
==> _[1]=(a^412*a^3+2*a^2*b^213*a^2*b+236*a^212*a*b^2+78*a*b1200*a+\
b^413*b^3+60*b^285*b+1495)
==> [2]:
==> [1]:
==> _[1]=(b4)
==> _[2]=(a3)
==> [3]:
==> Normal
==> [4]:
==> 1
==> [3]:
==> [1]:
==> _[1]=(b2)
==> _[2]=(a^26*a+13)
==> [2]:
==> [1]:
==> _[1]=1
==> [3]:
==> Accumulation
==> [4]:
==> 1
==> [4]:
==> [1]:
==> _[1]=(b4)
==> _[2]=(a3)
==> [2]:
==> [1]:
==> _[1]=1
==> [3]:
==> Accumulation
==> [4]:
==> 1
kill R;
"********************************************";
==> ********************************************
ring R=(0,x,y),(x1,x2),dp;
short=0;
ideal S=(x  5)*(x1  1)  (x2  2)*(y  2),
(x1  5)^2 + (x2  2)^2  4,
2*(x  5)*(x2  2) + 2*(x1  5)*(y  2);
// System S=
S;
==> S[1]=(x+5)*x1+(y+2)*x2+(x+2*y9)
==> S[2]=x1^2+x2^210*x14*x2+25
==> S[3]=(2*y4)*x1+(2*x+10)*x2+(4*x10*y)
locus(grobcov(S));
==> [1]:
==> [1]:
==> _[1]=(3*x^230*xy^2+4*y+71)
==> [2]:
==> [1]:
==> _[1]=(y2)
==> _[2]=(x5)
==> [3]:
==> [1]:
==> Special
==> [2]:
==> x14,x2^24*x2+1
==> [4]:
==> 1
==> [2]:
==> [1]:
==> _[1]=(y2)
==> _[2]=(x5)
==> [2]:
==> [1]:
==> _[1]=1
==> [3]:
==> Accumulation
==> [4]:
==> 1

