| LIB "normal.lib";
// ----- first example: rational quadruple point -----
ring R=32003,(x,y,z),wp(3,5,15);
ideal I=z*(y3-x5)+x10;
list pr=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
def S=pr[1];
setring S;
norid;
→ norid[1]=T(2)*T(3)-T(1)*T(4)
→ norid[2]=T(1)^7-T(1)^2*T(3)+T(2)*T(5)
→ norid[3]=T(1)^2*T(5)-T(2)*T(4)
→ norid[4]=T(1)^5*T(4)-T(3)*T(4)+T(5)^2
→ norid[5]=T(1)^6*T(3)-T(1)*T(3)^2+T(4)*T(5)
→ norid[6]=T(1)*T(3)*T(5)-T(4)^2
// ----- second example: union of straight lines -----
ring R1=0,(x,y,z),dp;
ideal I=(x-y)*(x-z)*(y-z);
list qr=normal(I);
→
→ // 'normal' created a list of 3 ring(s).
→ // nor[3+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
def S1=qr[1]; def S2=qr[2];
setring S1; norid;
→ norid[1]=0
setring S2; norid;
→ norid[1]=0
|