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)^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,