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 normal from
normal.lib:
list nor = normal(I);
The first normalization loop starts with
==> 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)^2
with 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,