Home Online Manual
Top
Back: Levels
Forward: DifConsLCSets
FastBack:
FastForward:
Up: grobcov_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.2.4.24 Grob1Levels

Procedure from library grobcov.lib (see grobcov_lib).

Usage:
Grob1Levels(list G);
G is the output of grobcov(F,"rep",1)
for obtaining the segments in C-rep.
Then Grob!Levels, selects the set of segments S of G having solutions (i.e. with basis different from 1), and determines the canonical levels of this constructible set.
To be called in a ring Q[a][x].

Return:
The list of ideals
[a1,a2,...,at]
representing the closures of the canonical levels of S and its complement C wrt to the closure of S.

The levels of S and C are
Levels of S: [a1,a2],[a3,a4],...
Levels of C: [a2,a3],[a4,a5],...
S=V(a1) \ V(a2) u V(a3) \ V(a4) u ...
C=V(a2 \ V(a3) u V(a4) \ V(a5) u ...
The expression of S can be obtained from the
output of Grob1Levels by
the call to Levels.

Note:
The algorithm was described in
J.M. Brunat, A. Montes. "Computing the canonical
representation of constructible sets."
Math. Comput. Sci. (2016) 19: 165-178.

Example:
 
LIB "grobcov.lib";
if (defined(R)) {kill R;}
ring R=(0,x,y),(x1,y1,x2,y2),lp;
ideal F=-y*x1+(x-1)*y1+y,
(x-1)*(x1+1)+y*y1,
-y*x2+(x+1)*y2-y,
(x+1)*(x2-1)+y*y2,
(x1-x)^2+y1^2-(x1-x)^2-y2^2;
def G=grobcov(F,"rep",1);
G;
==> [1]:
==>    [1]:
==>       _[1]=1
==>    [2]:
==>       _[1]=1
==>    [3]:
==>       [1]:
==>          _[1]=0
==>       [2]:
==>          _[1]=(x^5*y-2*x^3*y-x*y^5+x*y)
==> [2]:
==>    [1]:
==>       _[1]=y2
==>       _[2]=x2
==>       _[3]=y1
==>       _[4]=x1
==>    [2]:
==>       _[1]=(x^5+2*x^4*y^6+4*x^4*y^4+2*x^4*y^2+4*x^3*y^6+8*x^3*y^4+4*x^3*y\
   ^2-2*x^3-4*x^2*y^6-8*x^2*y^4-4*x^2*y^2-4*x*y^6-9*x*y^4-4*x*y^2+x-2*y^10-4\
   *y^8+4*y^4+2*y^2)*y2+(-6*x^4*y^5-6*x^4*y^3-2*x^3*y^7-4*x^3*y^5-2*x^3*y^3-\
   2*x^2*y^7+8*x^2*y^5+10*x^2*y^3+2*x*y^9+6*x*y^7+6*x*y^5+2*x*y^3+4*y^9+4*y^\
   7-4*y^5-4*y^3)
==>       _[2]=(x^5+2*x^4*y^7+4*x^4*y^5+2*x^4*y^3+4*x^3*y^7+8*x^3*y^5+4*x^3*y\
   ^3-2*x^3-4*x^2*y^7-8*x^2*y^5-4*x^2*y^3-4*x*y^7-8*x*y^5-x*y^4-4*x*y^3+x-2*\
   y^11-4*y^9+4*y^5+2*y^3)*x2+(-x^5-6*x^4*y^5-6*x^4*y^3+2*x^3+2*x^2*y^9+6*x^\
   2*y^5+8*x^2*y^3+x*y^4-x-2*y^11+4*y^7-2*y^3)
==>       _[3]=(x^5+2*x^4*y^6+4*x^4*y^4+2*x^4*y^2+4*x^3*y^6+8*x^3*y^4+4*x^3*y\
   ^2-2*x^3-4*x^2*y^6-8*x^2*y^4-4*x^2*y^2-4*x*y^6-9*x*y^4-4*x*y^2+x-2*y^10-4\
   *y^8+4*y^4+2*y^2)*y1+(-2*x^4*y^5-2*x^4*y^3-2*x^3*y^7-4*x^3*y^5-2*x^3*y^3+\
   2*x^2*y^7+8*x^2*y^5+6*x^2*y^3+2*x*y^9+6*x*y^7+6*x*y^5+2*x*y^3+4*y^9+4*y^7\
   -4*y^5-4*y^3)
==>       _[4]=(x^5+2*x^4*y^7+4*x^4*y^5+2*x^4*y^3+4*x^3*y^7+8*x^3*y^5+4*x^3*y\
   ^3-2*x^3-4*x^2*y^7-8*x^2*y^5-4*x^2*y^3-4*x*y^7-8*x*y^5-x*y^4-4*x*y^3+x-2*\
   y^11-4*y^9+4*y^5+2*y^3)*x1+(x^5-4*x^4*y^7-6*x^4*y^5-2*x^4*y^3-2*x^3+2*x^2\
   *y^9+8*x^2*y^7+6*x^2*y^5-x*y^4+x+2*y^11-4*y^7+2*y^3)
==>    [3]:
==>       [1]:
==>          _[1]=(x^5*y-2*x^3*y-x*y^5+x*y)
==>       [2]:
==>          _[1]=(x*y)
==>          _[2]=(x^2-y^2-1)
==>          _[3]=(y^3+y)
==> [3]:
==>    [1]:
==>       _[1]=y2^2
==>       _[2]=y1
==>       _[3]=x1
==>    [2]:
==>       _[1]=y2^2
==>       _[2]=y1
==>       _[3]=x1+1
==>    [3]:
==>       [1]:
==>          _[1]=(y)
==>          _[2]=(x+1)
==>       [2]:
==>          _[1]=1
==> [4]:
==>    [1]:
==>       _[1]=y2
==>       _[2]=x2
==>       _[3]=y1^2
==>    [2]:
==>       _[1]=y2
==>       _[2]=x2-1
==>       _[3]=y1^2
==>    [3]:
==>       [1]:
==>          _[1]=(y)
==>          _[2]=(x-1)
==>       [2]:
==>          _[1]=1
==> [5]:
==>    [1]:
==>       _[1]=1
==>    [2]:
==>       _[1]=1
==>    [3]:
==>       [1]:
==>          _[1]=(x)
==>          _[2]=(y^2+1)
==>       [2]:
==>          _[1]=1
def L=Grob1Levels(G);
L;
==> [1]:
==>    _[1]=(x^5*y-2*x^3*y-x*y^5+x*y)
==> [2]:
==>    _[1]=(x)
==>    _[2]=(y^2+1)
==> [3]:
==>    _[1]=1
def LL=Levels(L);
LL;
==> [1]:
==>    [1]:
==>       1
==>    [2]:
==>       [1]:
==>          _[1]=(x^5*y-2*x^3*y-x*y^5+x*y)
==>       [2]:
==>          _[1]=(x)
==>          _[2]=(y^2+1)