LIB "tst.lib"; tst_init(); ring r=0,(x,y,z),ds; ideal i=x^4-y*z^2,x*y-z^3,y^2-x^3*z; // the space curve singularity qhweight(i); // The given space curve singularity is quasihomogeneous. Hence we can pass // to the polynomial ring. ring rr=0,(x,y,z),dp; ideal i=imap(r,i); resolution ires=mres(i,0); ires; // From the structure of the resolution, we see that the Cohen-Macaulay // type of the given singularity is 2 // // Let us now look for the branches using the primdec library. LIB "primdec.lib"; primdecSY(i); def li=_[2]; ideal i2=li[2]; // call the second ideal i2 // The curve seems to have 2 branches by what we computed using the // algorithm of Shimoyama-Yokoyama. // Now the same computation by the Gianni-Trager-Zacharias algorithm: primdecGTZ(i); // Having computed the primary decomposition in 2 different ways and // having obtained the same number of branches, we might expect that the // number of branches is really 2, but we can check this by formulae // for the invariants of space curve singularities: // // mu = tau - t + 1 (for quasihomogeneous curve singularities) // where mu denotes the Milnor number, tau the Tjurina number and // t the Cohen-Macaulay type // // mu = 2 delta - r + 1 // where delta denotes the delta-Invariant and r the number of branches // // tau can be computed by using the corresponding procedure T1 from // sing.lib. setring r; LIB "sing.lib"; T_1(i); setring rr; // Hence tau is 13 and therefore mu is 12. But then it is impossible that // the singularity has two branches, since mu is even and delta is an // integer! // So obviously, we did not decompose completely. Because the first branch // is smooth, only the second ideal can be the one which can be decomposed // further. // Let us now consider the normalization of this second ideal i2. LIB "normal.lib"; normal(i2); def rno=_[1][1]; setring rno; norid; // The ideal is generated by a polynomial in one variable of degree 4 which // factors completely into 4 polynomials of type T(2)+a. // From this, we know that the ring of the normalization is the direct sum of // 4 polynomial rings in one variable. // Hence our original curve has these 4 branches plus a smooth one // which we already determined by primary decomposition. // Our final result is therefore: 5 branches. tst_status(1);$