Changeset d5b180 in git for Singular/LIB/normal.lib
- Timestamp:
- Sep 15, 2009, 10:16:24 AM (15 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 8a8861155e2df7bccc380762124b894c316eceae
- Parents:
- 96f9be80930e52c74bf5033e5af8e98cb8395c85
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/normal.lib
r96f9be8 rd5b180 1 1 /////////////////////////////////////////////////////////////////////////////// 2 version="$Id: normal.lib,v 1.5 8 2009-09-07 08:26:43 seelischExp $";2 version="$Id: normal.lib,v 1.59 2009-09-15 08:16:24 Singular Exp $"; 3 3 category="Commutative Algebra"; 4 4 info=" … … 56 56 Other:@* 57 57 - \"useRing\" -> uses the original ring ordering.@* 58 If this option is set and if the ring ordering is not global, normal 59 will change to a global ordering only for computing radicals and prime 58 If this option is set and if the ring ordering is not global, normal 59 will change to a global ordering only for computing radicals and prime 60 60 or equidimensional decompositions.@* 61 61 If this option is not set, normal changes to dp ordering and performs … … 71 71 RETURN: a list, say nor, of size 2 (resp. 3 with option \"withDelta\"). 72 72 @format Let R denote the basering and id the input ideal. 73 * nor[1] is a list of r rings, where r is the number of associated 74 primes P_i with option \"prim\" (resp. >= no of equidimenensional 73 * nor[1] is a list of r rings, where r is the number of associated 74 primes P_i with option \"prim\" (resp. >= no of equidimenensional 75 75 components P_i with option \"equidim\").@* 76 76 Each ring Ri := nor[1][i], i=1..r, contains two ideals with given … … 84 84 * nor[2] is a list of size r with information on the normalization of 85 85 the i-th component as module over the basering R:@* 86 nor[2][i] is an ideal, say U, in R such that the integral closure 87 of basering/P_i is generated as module over R by 1/c * U, with c 86 nor[2][i] is an ideal, say U, in R such that the integral closure 87 of basering/P_i is generated as module over R by 1/c * U, with c 88 88 the last element U[size(U)] of U.@* 89 89 * nor[3] (if option \"withDelta\" is set) is a list of an intvec … … 94 94 THEORY: We use here a general algorithm described in [G.-M.Greuel, S.Laplagne, 95 95 F.Seelisch: Normalization of Rings (2009)].@* 96 The procedure computes the R-module structure, the algebra structure 96 The procedure computes the R-module structure, the algebra structure 97 97 and the delta invariant of the normalization of R/id:@* 98 The normalization of R/id is the integral closure of R/id in its total 99 ring of fractions. It is a finitely generated R-module and nor[2] 98 The normalization of R/id is the integral closure of R/id in its total 99 ring of fractions. It is a finitely generated R-module and nor[2] 100 100 computes R-module generators of it. More precisely: If U:=nor[2][i] 101 and c:=U[size(U)], then c is a non-zero divisor and U/c is an R-module 102 in the total ring of fractions, the integral closure of R/P_i. Since 103 U[size(U)]/c is equal to 1, R/P_i resp. R/id is contained in the 101 and c:=U[size(U)], then c is a non-zero divisor and U/c is an R-module 102 in the total ring of fractions, the integral closure of R/P_i. Since 103 U[size(U)]/c is equal to 1, R/P_i resp. R/id is contained in the 104 104 integral closure.@* 105 The normalization is also an affine algebra over the ground field 105 The normalization is also an affine algebra over the ground field 106 106 and nor[1] presents it as such. For geometric considerations nor[1] is 107 relevant since the variety of the ideal norid in Ri is the 107 relevant since the variety of the ideal norid in Ri is the 108 108 normalization of the variety of the ideal P_i in R.@* 109 109 The delta invariant of a reduced ring A is dim_K(normalization(A)/A). 110 110 For A=K[x1,...,xn]/id we call this number also the delta invariant of 111 id. nor[3] returns the delta invariants of the components P_i and of 111 id. nor[3] returns the delta invariants of the components P_i and of 112 112 id. 113 113 NOTE: To use the i-th ring type e.g.: @code{def R=nor[1][i]; setring R;}. … … 117 117 @* Not implemented for quotient rings. 118 118 @* If the input ideal id is weighted homogeneous a weighted ordering may 119 be used together with the useRing-option (qhweight(id); computes 119 be used together with the useRing-option (qhweight(id); computes 120 120 weights). 121 121 KEYWORDS: normalization; integral closure; delta invariant. … … 188 188 } 189 189 else 190 { 190 { 191 191 decomp = 3; 192 192 withDelta = 1; … … 443 443 resultNew = list(RL, MG); 444 444 } 445 445 446 446 sp = size(RL); //RL = list of rings 447 447 option(set, opt); … … 461 461 " nor;"; 462 462 ""; 463 "// * nor[1] is a list of", sp, "ring(s)."; 463 "// * nor[1] is a list of", sp, "ring(s)."; 464 464 "// To access the i-th ring nor[1][i], give it a name, say Ri, and type"; 465 465 " def R1 = nor[1][1]; setring R1; norid; normap;"; … … 3320 3320 - \"noFac\" -> factorization is avoided during the computation 3321 3321 of the minimal associated primes.@* 3322 - \"isPrim\" -> assumes that the ideal is prime. If the assumption 3323 does not hold, output might be wrong.@* 3324 - \"withRing\" -> the ring structure of the normalization is 3322 - \"isPrim\" -> assumes that the ideal is prime. If the assumption 3323 does not hold, output might be wrong.@* 3324 - \"withRing\" -> the ring structure of the normalization is 3325 3325 computed. The number of variables in the new ring is reduced as much 3326 3326 as possible.@* … … 3328 3328 number of variables is done, it creates one new variable for every 3329 3329 new module generator of the integral closure in the quotient field.@* 3330 ASSUME: The characteristic of the ground field must be positive. If the 3331 option \"isPrim\" is not set, the minimal associated primes of id 3332 are computed first and hence normal computes the normalization of 3333 the radical of id. If option \"isPrim\" is set, the ideal must be 3330 ASSUME: The characteristic of the ground field must be positive. If the 3331 option \"isPrim\" is not set, the minimal associated primes of id 3332 are computed first and hence normal computes the normalization of 3333 the radical of id. If option \"isPrim\" is set, the ideal must be 3334 3334 a prime ideal otherwise the result may be wrong. 3335 3335 RETURN: a list, say 'nor' of size 2 (resp. 3 if \"withRing\" is set).@* 3336 3336 ** If option \"withRing\" is not set: @* 3337 3337 Only the module structure is computed: @* 3338 * nor[1] is a list of ideals Ii, i=1..r, in the basering R where r 3339 is the number of minimal associated prime ideals P_i of the input 3338 * nor[1] is a list of ideals Ii, i=1..r, in the basering R where r 3339 is the number of minimal associated prime ideals P_i of the input 3340 3340 ideal id, describing the module structure:@* 3341 3341 If Ii is given by polynomials g_1,...,g_k in R, then c:=g_k is … … 3344 3344 * nor[2] shows the delta invariants: it is a list of an intvec 3345 3345 of size r, the delta invariants of the r components, and an integer, 3346 the total delta invariant of R/id 3346 the total delta invariant of R/id 3347 3347 (-1 means infinite, and 0 that R/P_i resp. R/id is normal). @* 3348 3348 ** If option \"withRing\" is set: @* … … 3351 3351 Each ring Ri = nor[1][i], i=1..r, contains two ideals with given 3352 3352 names @code{norid} and @code{normap} such that @* 3353 - Ri/norid is the normalization of R/P_i, i.e. isomorphic as 3353 - Ri/norid is the normalization of R/P_i, i.e. isomorphic as 3354 3354 K-algebra (K the ground field) to the integral closure of R/P_i in 3355 3355 the field of fractions of R/P_i; @* … … 3357 3357 of R/id; @* 3358 3358 - @code{normap} gives the normalization map from R to Ri/norid.@* 3359 * nor[2] gives the module generators of the normalization of R/P_i, 3359 * nor[2] gives the module generators of the normalization of R/P_i, 3360 3360 it is the same as nor[1] if \"withRing\" is not set.@* 3361 3361 * nor[3] shows the delta invariants, it is the same as nor[2] if 3362 3362 \"withRing\" is not set. 3363 3363 THEORY: normalP uses the Leonard-Pellikaan-Singh-Swanson algorithm (using the 3364 Frobenius) cf. [A. K. Singh, I. Swanson: An algorithm for computing 3364 Frobenius) cf. [A. K. Singh, I. Swanson: An algorithm for computing 3365 3365 the integral closure, arXiv:0901.0871]. 3366 3366 The delta invariant of a reduced ring A is dim_K(normalization(A)/A). 3367 3367 For A=K[x1,...,xn]/id we call this number also the delta invariant of 3368 id. The procedure returns the delta invariants of the components P_i 3368 id. The procedure returns the delta invariants of the components P_i 3369 3369 and of id. 3370 3370 NOTE: To use the i-th ring type: @code{def R=nor[1][i]; setring R;}. … … 5163 5163 given in the form K[X(1..p),T(1..q)], where K is the ground field; 5164 5164 - normap gives the normalization map from basering/id to 5165 Ri/norid for each i (the j-th element of normap is mapped to the 5165 Ri/norid for each i (the j-th element of normap is mapped to the 5166 5166 j-th variable of R).@* 5167 5167 - the direct sum of the rings Ri/norid is the normalization 5168 5168 of basering/id; @* 5169 5169 ** If option \"withGens\" is not set: @* 5170 * nor[2] shows the delta invariants: nor[2] is a list of an intvec of 5171 size r, the delta invariants of the r components, and an integer, the 5172 delta invariant of basering/id. (-1 means infinite, 0 that basering/P_i 5173 resp. basering/input is normal, -2 means that delta resp. delta of one 5174 of the components is not computed (which may happen if \"equidim\" is 5170 * nor[2] shows the delta invariants: nor[2] is a list of an intvec of 5171 size r, the delta invariants of the r components, and an integer, the 5172 delta invariant of basering/id. (-1 means infinite, 0 that basering/P_i 5173 resp. basering/input is normal, -2 means that delta resp. delta of one 5174 of the components is not computed (which may happen if \"equidim\" is 5175 5175 given). @* 5176 5176 ** If option \"withGens\" is set: 5177 * nor[2] is a list of ideals Ii=nor[2][i], i=1..r, in the basering, 5177 * nor[2] is a list of ideals Ii=nor[2][i], i=1..r, in the basering, 5178 5178 generating the integral closure of basering/P_i in its quotient field 5179 as K-algebra (K the ground field):@* 5180 If Ii is given by polynomials g_1,...,g_k, then c:=g_k is a non-zero 5179 as K-algebra (K the ground field):@* 5180 If Ii is given by polynomials g_1,...,g_k, then c:=g_k is a non-zero 5181 5181 divisor and the j-th variables of the ring Ri satisfies var(j)=g_j/c, 5182 j=1..k-1, as element in the quotient field of basering/P_i. The 5183 g_j/g_k+1 are K-algebra generators of the integral closure of 5182 j=1..k-1, as element in the quotient field of basering/P_i. The 5183 g_j/g_k+1 are K-algebra generators of the integral closure of 5184 5184 basering/P_i.@* 5185 5185 * nor[3] shows the delta invariant as above. 5186 THEORY: We use the Grauert-Remmert-de Jong algorithm [c.f. G.-M. Greuel, 5186 THEORY: We use the Grauert-Remmert-de Jong algorithm [c.f. G.-M. Greuel, 5187 5187 G. Pfister: A SINGULAR Introduction to Commutative Algebra, 2nd Edition. 5188 5188 Springer Verlag (2007)]. 5189 The procedure computes the algebra structure and the delta invariant of 5189 The procedure computes the algebra structure and the delta invariant of 5190 5190 the normalization of R/id:@* 5191 5191 The normalization is an affine algebra over the ground field K 5192 5192 and nor[1] presents it as such: Ri = K[X(1..p),T(1..q)] and Ri/norid 5193 is the integral closure of R/P_i; if option \"withGens\" is set the 5194 X(j) and T(j) are expressed as quotients in the total ring of 5195 fractions. Note that the X(j) and T(j) generate the integral closure 5196 as K-algebra, but not necessarily as R-module (since relations of the 5197 form X(1)=T(1)*T(2) may have been eliminated). Geometrically the 5198 algebra structure is relevant since the variety of the ideal norid in 5193 is the integral closure of R/P_i; if option \"withGens\" is set the 5194 X(j) and T(j) are expressed as quotients in the total ring of 5195 fractions. Note that the X(j) and T(j) generate the integral closure 5196 as K-algebra, but not necessarily as R-module (since relations of the 5197 form X(1)=T(1)*T(2) may have been eliminated). Geometrically the 5198 algebra structure is relevant since the variety of the ideal norid in 5199 5199 Ri is the normalization of the variety of the ideal P_i in R.@* 5200 5200 The delta invariant of a reduced ring A is dim_K(normalization(A)/A). 5201 5201 For A=K[x1,...,xn]/id we call this number also the delta invariant of 5202 id. nor[3] returns the delta invariants of the components P_i and of 5202 id. nor[3] returns the delta invariants of the components P_i and of 5203 5203 id. 5204 5204 NOTE: To use the i-th ring type: @code{def R=nor[1][i]; setring R;}. … … 5412 5412 nor; 5413 5413 5414 // * nor[1] is a list of",sr,"ring(s) 5414 // * nor[1] is a list of",sr,"ring(s) 5415 5415 // To access the i-th ring nor[1][i] give it a name, say Ri, and type e.g. 5416 5416 def R1 = nor[1][1]; setring R1; norid; normap; 5417 // For the other rings type first (if R is the name of your original basering) 5417 // For the other rings type first (if R is the name of your original basering) 5418 5418 setring R; 5419 5419 // and then continue as for R1. … … 5531 5531 //Komponenten als niederdim Komponenten, waehrend diese bei primdecGTZ 5532 5532 //nicht auftauchen: ideal(x,y)*xy 5533 //this is default for nvars > 2 5533 //this is default for nvars > 2 5534 5534 5535 5535 if( decomp == 2 ) … … 5776 5776 def R1 = nor[1][1]; setring R1; norid; normap; 5777 5777 // and similair for the other rings nor[1][i]; 5778 // Ri/norid is the affine algebra of the normalization of r/P_i (where P_i 5778 // Ri/norid is the affine algebra of the normalization of r/P_i (where P_i 5779 5779 // is an associated prime or an equidimensional part of the input ideal id) 5780 5780 // and normap the normalization map from the basering to Ri/norid; 5781 5781 5782 5782 // * nor[2] shows the delta-invariant of each component and of id 5783 // (-1 means infinite, 0 that r/P_i resp. r/id is normal, and -2 that delta 5783 // (-1 means infinite, 0 that r/P_i resp. r/id is normal, and -2 that delta 5784 5784 // of a component was not computed)."; 5785 5785 }
Note: See TracChangeset
for help on using the changeset viewer.