LIB "normal.lib";We define the ring and an ideal, describing two transversal cusps.

ring S = 0,(x,y),dp; ideal I = (x2-y3)*(x3-y2);If the printlevel is sufficiently high, the algorithm will display intermediate results and pause during the computation until the user hits the return button in order to be able to follow what's going on. Here we will reproduce only part of the comments and slightly change the SINGULAR output.

printlevel = 5;Now we start the computation using the procedure

list nor = normal(I);The first normalization loop starts with , and computes the radical of the singular locus as

and checks that . Therefore the ring structure of has to be computed. The result is the affine ring with variables (after eliminating linear equations) modulo the ideal

==> T(3)*T(4)-T(4) ==> T(1)^4+4*T(1)^2*T(2)*T(4)+4*T(2)^2*T(4)^2 -T(2)*T(3)+T(2) ==> T(1)^2*T(2)+2*T(2)^2*T(4)-T(1)*T(3)+T(1) ==> T(1)^3+2*T(1)*T(2)*T(4)-T(2)^2-2*T(4) ==> T(1)^5+4*T(1)^3*T(2)*T(4)+4*T(1)*T(2)^2*T(4)^2 -T(3)^2+2*T(3)-1 ==> T(1)^3*T(2)+2*T(1)*T(2)^2*T(4)-T(1)^2*T(3) -2*T(2)*T(3)*T(4)+T(1)^2+2*T(2)*T(4) ==> T(1)^2*T(4)+2*T(2)*T(4)^2with map , , .

Now the second normalization loop has to be started with . Again the criterion for stopping is not fullfilled, that is, is not equal to , and the ring will be computed as affine ring in 4 variables modulo 8 equations. Again, the criterion is not fullfilled, and is a ring in 3 variables modulo 9 equations. Now in a zero-divisor of is found and the ring splits into two rings. Both rings are isomorphic to the polynomial ring in one variable and the algorithm stops with the message:

==>// 'normal' created a list of 2 ring(s). ==>// 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 def R1 = nor[1]; setring R1; norid; normap; ==> norid[1]=0 ==> normap[1]=T(1)^2 normap[2]=T(1)^3 def R2 = nor[2]; setring R2; norid; normap; ==> norid[1]=0 ==> normap[1]=-T(1)^3 normap[2]=T(1)^2Hence, , , and the normalization of is given as , , .