Top
Back: Primary decomposition
Forward: Kernel of module homomorphisms
FastBack: Computing Groebner and Standard Bases
FastForward: Singularity Theory
Up: Commutative Algebra
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

A.3.10 Normalization

The normalization will be computed for a reduced ring . The result is a list of rings; ideals are always called norid in the rings of this list. The normalization of is the product of the factor rings of the rings in the list divided out by the ideals norid.

 
  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, say nor, of two elements.
==> // To see the list type
==>       nor;
==> 
==> // * nor[1] is a list of 1 ring(s).
==> // To access the i-th ring nor[1][i], give it a name, say Ri, and type
==>      def R1 = nor[1][1]; setring R1; norid; normap;
==> // For the other rings type first (if R is the name of your base ring)
==>      setring R;
==> // and then continue as for R1.
==> // Ri/norid is the affine algebra of the normalization of R/P_i where
==> // P_i is the i-th component of a decomposition of the input ideal id
==> // and normap the normalization map from R to Ri/norid.
==> 
==> // * nor[2] is a list of 1 ideal(s). Let ci be the last generator
==> // of the ideal nor[2][i]. Then the integral closure of R/P_i is
==> // generated as R-submodule of the total ring of fractions by
==> // 1/ci * nor[2][i].
  def S=pr[1][1];
  setring S;
  norid;
==> norid[1]=T(2)*x+y*z
==> norid[2]=T(1)*x^2-T(2)*y
==> norid[3]=-T(1)*y+x^7-x^2*z
==> norid[4]=T(1)*y^2*z+T(2)*x^8-T(2)*x^3*z
==> norid[5]=T(1)^2+T(2)*z+x^4*y*z
==> norid[6]=T(1)*T(2)+x^6*z-x*z^2
==> norid[7]=T(2)^2+T(1)*x*z
==> norid[8]=x^10-x^5*z+y^3*z
  // ----- 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, say nor, of two elements.
==> // To see the list type
==>       nor;
==> 
==> // * nor[1] is a list of 2 ring(s).
==> // To access the i-th ring nor[1][i], give it a name, say Ri, and type
==>      def R1 = nor[1][1]; setring R1; norid; normap;
==> // For the other rings type first (if R is the name of your base ring)
==>      setring R;
==> // and then continue as for R1.
==> // Ri/norid is the affine algebra of the normalization of R/P_i where
==> // P_i is the i-th component of a decomposition of the input ideal id
==> // and normap the normalization map from R to Ri/norid.
==> 
==> // * nor[2] is a list of 2 ideal(s). Let ci be the last generator
==> // of the ideal nor[2][i]. Then the integral closure of R/P_i is
==> // generated as R-submodule of the total ring of fractions by
==> // 1/ci * nor[2][i].
  def S1=qr[1][1]; def S2=qr[1][2];
  setring S1; norid;
==> norid[1]=-T(1)*y+T(1)*z+x-z
==> norid[2]=T(1)*x-T(1)*y
==> norid[3]=T(1)^2-T(1)
==> norid[4]=x^2-x*y-x*z+y*z
  setring S2; norid;
==> norid[1]=y-z


Top Back: Primary decomposition Forward: Kernel of module homomorphisms FastBack: Computing Groebner and Standard Bases FastForward: Singularity Theory Up: Commutative Algebra Top: Singular Manual Contents: Table of Contents Index: Index About: About this document
            User manual for Singular version 4.3.1, 2022, generated by texi2html.