|
Number of Branches via Normalization
LIB "normal.lib";
ring r=0,(x,y,z),ds;
ideal i=x^4-y*z^2,x*y-z^3,y^2-x^3*z;
We now pass to a global ordering, which is necessary for normalization.
(Normalization internally uses the calculation of a radical which in turn
relies on a global lexicographical ordering.)
ring rr=0,(x,y,z),dp;
ideal i=imap(r,i);
normal(i);
|
==>
|
// 'normal' created a list of 1 ring(s).
// nor[1+1] is the delta-invariant in case of choose=wd.
// To see the rings, type (if the name of your list is nor):
show( nor);
// To access the 1-st ring and map (similar for the others), type:
def R = nor[1]; setring R; norid; normap;
// R/norid is the 1-st ring of the normalization and
// normap the map from the original basering to R/norid
[1]:
// characteristic : 0
// number of vars : 2
// block 1 : ordering a
// : names T(1) T(2)
// : weights 1 0
// block 2 : ordering dp
// : names T(1) T(2)
// block 3 : ordering C
|
def rno=_[1];
setring rno;
norid;
The ideal norid is generated by a polynomial in one variable of degree 5,
which completely factors over the complex numbers. Hence the singularity
has 5 branches.
<-- Branches of an isolated space curve singularity
<-- computed via Primary Decomposition
--> computed via Factorizing Gröbner
|