Changeset e801fe in git for Singular/LIB/normal.lib
- Timestamp:
- Feb 16, 1998, 1:07:04 PM (26 years ago)
- Branches:
- (u'spielwiese', 'e7cc1ebecb61be8b9ca6c18016352af89940b21a')
- Children:
- 1e7d8d9fbdaf1094cc869ca3a6be98b9e1fbfc9a
- Parents:
- 437e2c21158af6efe6402cc1da62ee40760c03e0
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/normal.lib
r437e2c2 re801fe 1 // $Id: normal.lib,v 1.1 1997-11-05 18:16:55 Singular Exp $2 1 /////////////////////////////////////////////////////////////////////////////// 3 2 // normal.lib … … 10 9 11 10 normal(ideal I) 12 // computes a set of rings such that their product is the 13 // normalization of the reduced basering/I 14 15 LIB "sing.lib"; 11 // computes a set of rings such that their product is the 12 // normalization of the reduced basering/I 13 14 LIB "sing.lib"; 16 15 LIB "primdec.lib"; 17 16 LIB "elim.lib"; … … 27 26 p = nonzero divisor of R 28 27 RETURN: 1 if R = R:J, 0 if not 29 EXAMPLE: example isR_HomJR; shows an example 28 EXAMPLE: example isR_HomJR; shows an example 30 29 { 31 30 int n, ii; … … 43 42 n=1; 44 43 for (ii=1; ii<=size(f); ii++ ) 45 { 46 if ( reduce(f[ii],lp) != 0) 44 { 45 if ( reduce(f[ii],lp) != 0) 47 46 { n = 0; break; } 48 47 } … … 73 72 NOTE: This is useful when enlarging P but keeping the weights of the old 74 73 variables 75 EXAMPLE: example extraweight; shows an example 74 EXAMPLE: example extraweight; shows an example 76 75 { 77 76 int ii,q,fi,fo,fia; … … 88 87 os = osP[fi+1,find(osP,")",fi)-fi-1]; 89 88 if( find(os,",") ) 90 { 89 { 91 90 execute "nw = "+os+";"; 92 91 if( size(nw) > ii ) … … 101 100 { 102 101 execute "q = "+os+";"; 103 if( q > ii ) 104 { 102 if( q > ii ) 103 { 105 104 nw = 0; nw[q-ii] = 0; 106 105 nw = nw + 1; //creates an intvec 1,...,1 of length q-ii … … 114 113 } 115 114 //-------------- adjust weight vector to length = nvars(P) ------------------- 116 if( fo > 1 ) 115 if( fo > 1 ) 117 116 { // case when weights were found 118 rw = rw[2..size(rw)]; 119 if( size(rw) > nvars(P) ) 120 { 121 rw = rw[1..nvars(P)]; 122 } 123 if( size(rw) < nvars(P) ) 124 { 125 nw=0; nw[nvars(P)-size(rw)]=0; nw=nw+1; rw=rw,nw; 126 } 127 } 128 else 117 rw = rw[2..size(rw)]; 118 if( size(rw) > nvars(P) ) 119 { 120 rw = rw[1..nvars(P)]; 121 } 122 if( size(rw) < nvars(P) ) 123 { 124 nw=0; nw[nvars(P)-size(rw)]=0; nw=nw+1; rw=rw,nw; 125 } 126 } 127 else 129 128 { // case when no weights were found 130 rw[nvars(P)]= 0; rw=rw+1; 129 rw[nvars(P)]= 0; rw=rw+1; 131 130 } 132 131 return(rw); … … 158 157 R is the quotient ring of P modulo the standard basis SBid 159 158 RETURN: a list of two objects 160 _[1]: a polynomial ring, containing two ideals, 'endid' and 'endphi' 159 _[1]: a polynomial ring, containing two ideals, 'endid' and 'endphi' 161 160 s.t. _[1]/endid = Hom_R(J,J) and 162 161 endphi describes the canonical map R -> Hom_R(J,J) 163 162 _[2]: an integer which is 1 if phi is an isomorphism, 0 if not 164 EXAMPLE: example HomJJ; shows an example 163 EXAMPLE: example HomJJ; shows an example 165 164 { 166 165 //---------- initialisation --------------------------------------------------- … … 180 179 181 180 //---- set attributes for special cases where algorithm can be simplified ----- 182 if( homo==1 ) 183 { 181 if( homo==1 ) 182 { 184 183 rw = extraweight(P); 185 184 } … … 213 212 214 213 //---------- computation of p*Hom(J,J) as R-ideal ----------------------------- 215 f = quotient(p*J,J); 216 if(y==1) 217 { 214 f = quotient(p*J,J); 215 if(y==1) 216 { 218 217 "the module Hom(rad(J),rad(J)) presented by the values on"; 219 218 "the non-zerodivisor"; … … 238 237 rf = interred(reduce(f,f2)); // represents p*Hom(J,J)/p*R = Hom(J,J)/R 239 238 if ( size(rf) == 0 ) 240 { 239 { 241 240 if ( homog(f) && find(ordstr(basering),"s")==0 ) 242 241 { 243 ring newR1 = char(P),(X(1..nvars(P))),(a(rw),dp); 242 ring newR1 = char(P),(X(1..nvars(P))),(a(rw),dp); 244 243 } 245 244 else 246 245 { 247 ring newR1 = char(P),(X(1..nvars(P))),dp; 246 ring newR1 = char(P),(X(1..nvars(P))),dp; 248 247 } 249 248 ideal endphi = maxideal(1); 250 ideal endid = fetch(P,id); 249 ideal endid = fetch(P,id); 251 250 attrib(endid,"isCohenMacaulay",isCo); 252 251 attrib(endid,"isPrim",isPr); … … 301 300 q = size(f); 302 301 syzf = syz(f); 303 302 304 303 if ( homo==1 ) 305 304 { … … 307 306 for ( ii=2; ii<=q; ii++ ) 308 307 { 309 rw = rw, deg(f[ii])-deg(f[1]); 310 rw1 = rw1, deg(f[ii])-deg(f[1]); 311 } 312 ring newR1 = char(R),(X(1..nvars(R)),T(1..q)),(a(rw1),dp); 308 rw = rw, deg(f[ii])-deg(f[1]); 309 rw1 = rw1, deg(f[ii])-deg(f[1]); 310 } 311 ring newR1 = char(R),(X(1..nvars(R)),T(1..q)),(a(rw1),dp); 313 312 } 314 313 else 315 314 { 316 ring newR1 = char(R),(X(1..nvars(R)),T(1..q)),dp; 315 ring newR1 = char(R),(X(1..nvars(R)),T(1..q)),dp; 317 316 } 318 317 … … 320 319 ideal SBid = psi1(SBid); 321 320 attrib(SBid,"isSB",1); 322 321 323 322 qring newR = std(SBid); 324 323 map psi = R,ideal(X(1..nvars(R))); … … 331 330 332 331 //---------- computation of Hom(J,J) as ring ---------------------------------- 333 // determine kernel of: R[T1,...,Tq] -> J:J >-> R[1/p]=R[t]/(t*p-1), 332 // determine kernel of: R[T1,...,Tq] -> J:J >-> R[1/p]=R[t]/(t*p-1), 334 333 // Ti -> fi/p -> t*fi (p=f1=f[1]), to get ring structure. This is of course 335 334 // the same as the kernel of R[T1,...,Tq] -> pJ:J >-> R, Ti -> fi. … … 339 338 pf = f[1]*f; 340 339 T = matrix(ideal(T(1..q)),1,q); 341 Lin = ideal(T*syzf); 340 Lin = ideal(T*syzf); 342 341 if(y==1) 343 342 { … … 374 373 else 375 374 { 376 ring newRing = char(R),(X(1..nvars(R)),T(2..q)),dp; 375 ring newRing = char(R),(X(1..nvars(R)),T(2..q)),dp; 377 376 } 378 377 … … 381 380 382 381 map phi = basering,maxideal(1); 383 list Le = elimpart(endid); 382 list Le = elimpart(endid); 384 383 //this proc and the next loop try to 385 384 q = size(Le[2]); //substitute as many variables as possible 386 rw1 = 0; 385 rw1 = 0; 387 386 rw1[nvars(basering)] = 0; 388 387 rw1 = rw1+1; … … 395 394 kill ps; 396 395 397 for( ii=1; ii<=size(rw1); ii++ ) 398 { 399 if( Le[4][ii]==0 ) 400 { 396 for( ii=1; ii<=size(rw1); ii++ ) 397 { 398 if( Le[4][ii]==0 ) 399 { 401 400 rw1[ii]=0; //look for substituted vars 402 401 } … … 404 403 Le=elimpart(endid); 405 404 q = q + size(Le[2]); 406 } 405 } 407 406 endphi = phi(endphi); 408 407 … … 412 411 413 412 if (homo==1 && nvars(newRing)-q >1 && size(endid) >0 ) 414 { 413 { 415 414 jj=1; 416 415 for( ii=2; ii<size(rw1); ii++) 417 { 416 { 418 417 jj++; 419 if( rw1[ii]==0 ) 420 { 418 if( rw1[ii]==0 ) 419 { 421 420 rw=rw[1..jj-1],rw[jj+1..size(rw)]; 422 jj=jj-1; 421 jj=jj-1; 423 422 } 424 423 } … … 430 429 else 431 430 { 432 ring lastRing = char(R),(T(1..nvars(newRing)-q)),dp; 433 } 434 435 ideal lastmap; 431 ring lastRing = char(R),(T(1..nvars(newRing)-q)),dp; 432 } 433 434 ideal lastmap; 436 435 q = 1; 437 436 for(ii=1; ii<=size(rw1); ii++ ) … … 439 438 if ( rw1[ii]==1 ) { lastmap[ii] = T(q); q=q+1; } 440 439 if ( rw1[ii]==0 ) { lastmap[ii] = 0; } 441 } 440 } 442 441 map phi = newRing,lastmap; 443 442 ideal endid = phi(endid); … … 490 489 list L = HomJJ(Li); 491 490 def end = L[1]; // defines ring L[1], containing ideals endid and endphi 492 setring end; // makes end the basering 491 setring end; // makes end the basering 493 492 end; 494 493 endid; // end/endid is isomorphic to End(r/id) as ring … … 496 495 psi; 497 496 498 ring r = 32003,(x,y,z),dp; 497 ring r = 32003,(x,y,z),dp; 499 498 ideal id = x2-xy-xz+yz; 500 499 ideal J =y-z,x-z; … … 503 502 list L = HomJJ(Li,0); 504 503 def end = L[1]; // defines ring L[1], containing ideals endid and endphi 505 setring end; // makes end the basering 504 setring end; // makes end the basering 506 505 end; 507 506 endid; // end/endid is isomorphic to End(r/id) as ring … … 528 527 if( typeof(attrib(id,"isEquidimensional"))=="int" ) 529 528 { 530 if(attrib(id,"isEquidimensional")==1) 529 if(attrib(id,"isEquidimensional")==1) 531 530 { 532 attrib(prim[1],"isEquidimensional",1); 531 attrib(prim[1],"isEquidimensional",1); 533 532 } 534 533 } … … 539 538 if( typeof(attrib(id,"isCompleteIntersection"))=="int" ) 540 539 { 541 if(attrib(id,"isCompleteIntersection")==1) 540 if(attrib(id,"isCompleteIntersection")==1) 542 541 { 543 attrib(prim[1],"isCompleteIntersection",1); 542 attrib(prim[1],"isCompleteIntersection",1); 544 543 } 545 544 } … … 548 547 attrib(prim[1],"isCompleteIntersection",0); 549 548 } 550 549 551 550 if( typeof(attrib(id,"isPrim"))=="int" ) 552 551 { … … 559 558 if( typeof(attrib(id,"isIsolatedSingularity"))=="int" ) 560 559 { 561 if(attrib(id,"isIsolatedSingularity")==1) 560 if(attrib(id,"isIsolatedSingularity")==1) 562 561 {attrib(prim[1],"isIsolatedSingularity",1); } 563 562 } 564 563 else 565 564 { 566 attrib(prim[1],"isIsolatedSingularity",0); 565 attrib(prim[1],"isIsolatedSingularity",0); 567 566 } 568 567 if( typeof(attrib(id,"isCohenMacaulay"))=="int" ) 569 568 { 570 if(attrib(id,"isCohenMacaulay")==1) 569 if(attrib(id,"isCohenMacaulay")==1) 571 570 { attrib(prim[1],"isCohenMacaulay",1); } 572 571 } 573 572 else 574 573 { 575 attrib(prim[1],"isCohenMacaulay",0); 574 attrib(prim[1],"isCohenMacaulay",0); 576 575 } 577 576 if( typeof(attrib(id,"isRegInCodim2"))=="int" ) … … 582 581 else 583 582 { 584 attrib(prim[1],"isRegInCodim2",0); 583 attrib(prim[1],"isRegInCodim2",0); 585 584 } 586 585 return(normalizationPrimes(prim[1],maxideal(1))); … … 616 615 if( typeof(attrib(id,"isEquidimensional"))=="int" ) 617 616 { 618 if(attrib(id,"isEquidimensional")==1) 617 if(attrib(id,"isEquidimensional")==1) 619 618 { 620 attrib(prim[i],"isEquidimensional",1); 619 attrib(prim[i],"isEquidimensional",1); 621 620 } 622 621 } … … 624 623 { 625 624 attrib(prim[i],"isEquidimensional",0); 626 } 625 } 627 626 if( typeof(attrib(id,"isIsolatedSingularity"))=="int" ) 628 627 { 629 if(attrib(id,"isIsolatedSingularity")==1) 628 if(attrib(id,"isIsolatedSingularity")==1) 630 629 {attrib(prim[i],"isIsolatedSingularity",1); } 631 630 } 632 631 else 633 632 { 634 attrib(prim[i],"isIsolatedSingularity",0); 633 attrib(prim[i],"isIsolatedSingularity",0); 635 634 } 636 635 637 636 keepresult=normalizationPrimes(prim[i],maxideal(1)); 638 637 for(j=1;j<=size(keepresult);j++) … … 688 687 ideal PP=fetch(BAS,ihp); 689 688 export PP; 690 export KK; 689 export KK; 691 690 result=newR7; 692 691 setring BAS; … … 859 858 // if((dim(SM[1]))==depth) 860 859 // { 861 // attrib(SM[2],"isCohenMacaulay",1); 860 // attrib(SM[2],"isCohenMacaulay",1); 862 861 // "it is CohenMacaulay"; 863 // } 862 // } 864 863 // } 865 864 866 865 //compute the singular locus+lower dimensional components 867 866 if(((attrib(SM[2],"isIsolatedSingularity")==0)||(homog(SM[2])==0)) … … 946 945 " "; 947 946 maxideal(1); 948 " "; 947 " "; 949 948 " "; 950 949 } … … 963 962 // export SB,MB; 964 963 // result=BAS; 965 // return(result); 964 // return(result); 966 965 // } 967 966 // timer-ti; … … 972 971 if(RR[2]==0) 973 972 { 974 def newR=RR[1]; 973 def newR=RR[1]; 975 974 setring newR; 976 975 map psi=BAS,endphi; … … 980 979 // timer-ti; 981 980 setring BAS; 982 return(tluser); 981 return(tluser); 983 982 } 984 983 MB=SM[2]; … … 992 991 setring BAS; 993 992 return(result); 994 993 995 994 } 996 995 else … … 1026 1025 } 1027 1026 } 1028 1027 1029 1028 //test for non-normality 1030 1029 //Hom(I,I)<>R … … 1052 1051 // export SB,MB; 1053 1052 // result=BAS; 1054 // return(result); 1053 // return(result); 1055 1054 // } 1056 1055 // timer-ti; … … 1058 1057 // list RR=SM[1],SM[2],JM[2],SL[1]; 1059 1058 // ti=timer; 1060 list RS; 1059 list RS; 1061 1060 // list RS=HomJJ(RR); 1062 1061 // timer-ti; … … 1068 1067 // list tluser=normalizationPrimes(SM); 1069 1068 // setring BAS; 1070 // return(tluser); 1069 // return(tluser); 1071 1070 // } 1072 1071 … … 1077 1076 } 1078 1077 // ti=timer; 1079 1078 1080 1079 1081 1080 if((attrib(JM[2],"isRad")==0)&&(attrib(SM[2],"isEquidimensional")==0)) … … 1083 1082 //J=radical(JM[2]); 1084 1083 J=radical(SM[2]+ideal(SL[1])); 1085 1084 1086 1085 // evtl. test auf J=SM[2]+ideal(SL[1]) dann schon normal 1087 1086 } … … 1103 1102 // timer-ti; 1104 1103 1105 JM=J,J; 1104 JM=J,J; 1106 1105 1107 1106 //evtl. fuer SL[1] anderen Nichtnullteiler aus J waehlen … … 1117 1116 // keepresult1=insert(keepresult1,keepresult2[lauf]); 1118 1117 // } 1119 // return(keepresult1); 1118 // return(keepresult1); 1120 1119 // } 1121 1120 RR=SM[1],SM[2],JM[2],SL[1]; … … 1140 1139 export KK; 1141 1140 setring BAS; 1142 // return(RS[1]); 1141 // return(RS[1]); 1143 1142 return(lastR); 1144 1143 } … … 1153 1152 // normalizationPrimes(endid); 1154 1153 setring BAS; 1155 return(tluser); 1154 return(tluser); 1156 1155 } 1157 1156 else … … 1162 1161 +ordstr(basering)+");"; 1163 1162 if(y==1) 1164 { 1163 { 1165 1164 "zero-divisor found"; 1166 1165 } … … 1180 1179 } 1181 1180 attrib(vid,"isCompleteIntersection",0); 1182 1181 1183 1182 keepresult1=normalizationPrimes(vid,ihp); 1184 1183 … … 1189 1188 execute "ring newR2="+charstr(basering)+",("+varstr(basering)+"),(" 1190 1189 +ordstr(basering)+");"; 1191 1190 1192 1191 ideal vid=fetch(BAS,new2); 1193 1192 ideal ihp=fetch(BAS,ihp); … … 1213 1212 keepresult1=insert(keepresult1,keepresult2[lauf]); 1214 1213 } 1215 return(keepresult1); 1216 } 1214 return(keepresult1); 1215 } 1217 1216 } 1218 1217 example 1219 1218 { "EXAMPLE:";echo = 2; 1219 LIB"normal.lib"; 1220 1220 //Huneke 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1221 ring qr=31991,(a,b,c,d,e),dp; 1222 ideal i= 1223 5abcde-a5-b5-c5-d5-e5, 1224 ab3c+bc3d+a3be+cd3e+ade3, 1225 a2bc2+b2cd2+a2d2e+ab2e2+c2de2, 1226 abc5-b4c2d-2a2b2cde+ac3d2e-a4de2+bcd2e3+abe5, 1227 ab2c4-b5cd-a2b3de+2abc2d2e+ad4e2-a2bce3-cde5, 1228 a3b2cd-bc2d4+ab2c3e-b5de-d6e+3abcd2e2-a2be4-de6, 1229 a4b2c-abc2d3-ab5e-b3c2de-ad5e+2a2bcde2+cd2e4, 1230 b6c+bc6+a2b4e-3ab2c2de+c4d2e-a3cde2-abd3e2+bce5; 1231 1232 list pr=normal(i); 1233 def r1=pr[1]; 1234 setring r1; 1235 KK; 1236 1236 } 1237 1238 1239 1240 ///////////////////////////////////////////////////////////////////////////// 1241 1242 LIB"normal.lib"; 1243 int aa=timer;list pr=normal(i);timer-aa; 1244 1245 1246 1247 //Huneke 1248 ring qr=31991,(a,b,c,d,e),dp; 1249 ideal i= 1250 5abcde-a5-b5-c5-d5-e5, 1251 ab3c+bc3d+a3be+cd3e+ade3, 1252 a2bc2+b2cd2+a2d2e+ab2e2+c2de2, 1253 abc5-b4c2d-2a2b2cde+ac3d2e-a4de2+bcd2e3+abe5, 1254 ab2c4-b5cd-a2b3de+2abc2d2e+ad4e2-a2bce3-cde5, 1255 a3b2cd-bc2d4+ab2c3e-b5de-d6e+3abcd2e2-a2be4-de6, 1256 a4b2c-abc2d3-ab5e-b3c2de-ad5e+2a2bcde2+cd2e4, 1257 b6c+bc6+a2b4e-3ab2c2de+c4d2e-a3cde2-abd3e2+bce5; 1258 1259 1260 //Vasconcelos 1261 ring r=32003,(x,y,z,w,t),dp; 1262 ideal i= 1263 x2+zw, 1264 y3+xwt, 1265 xw3+z3t+ywt2, 1266 y2w4-xy2z2t-w3t3; 1267 1268 //Theo1 1269 ring r=32003,(x,y,z),wp(2,3,6); 1270 ideal i=zy2-zx3-x6; 1271 1272 //Theo2 1273 ring r=32003,(x,y,z),wp(3,4,12); 1274 ideal i=z*(y3-x4)+x8; 1275 1276 //Theo2a 1277 ring r=32003,(T(1..4)),wp(3,4,12,17); 1278 ideal i= 1279 T(1)^8-T(1)^4*T(3)+T(2)^3*T(3), 1280 T(1)^4*T(2)^2-T(2)^2*T(3)+T(1)*T(4), 1281 T(1)^7+T(1)^3*T(2)^3-T(1)^3*T(3)+T(2)*T(4), 1282 T(1)^6*T(2)*T(3)+T(1)^2*T(2)^4*T(3)+T(1)^3*T(2)^2*T(4)-T(1)^2*T(2)*T(3)^2+T(4)^2; 1283 1284 //Theo3 1285 ring r=32003,(x,y,z),wp(3,5,15); 1286 ideal i=z*(y3-x5)+x10; 1287 1288 1289 //Theo4 1290 ring r=32003,(x,y,z),dp; 1291 ideal i=(x-y)*(x-z)*(y-z); 1292 1293 //Theo5 1294 ring r=32003,(x,y,z),wp(2,1,2); 1295 ideal i=z3-xy4; 1296 1297 //Theo6 1298 ring r=32003,(x,y,z),dp; 1299 ideal i=x2y2+x2z2+y2z2; 1300 1301 ring r=32003,(a,b,c,d,e,f),dp; 1302 ideal i= 1303 bf, 1304 af, 1305 bd, 1306 ad; 1307 1308 //Beispiel, wo vorher Primaerzerlegung schneller 1309 //ist CM 1310 //Sturmfels 1311 ring r=32003,(b,s,t,u,v,w,x,y,z),dp; 1312 ideal i= 1313 bv+su, 1314 bw+tu, 1315 sw+tv, 1316 by+sx, 1317 bz+tx, 1318 sz+ty, 1319 uy+vx, 1320 uz+wx, 1321 vz+wy, 1322 bvz; 1323 1324 //J S/Y 1325 ring r=32003,(x,y,z,t),dp; 1326 ideal i= 1327 x2z+xzt, 1328 xyz, 1329 xy2-xyt, 1330 x2y+xyt; 1331 1332 //St_S/Y 1333 ring r=32003,(b,s,t,u,v,w,x,y,z),dp; 1334 ideal i= 1335 wy-vz, 1336 vx-uy, 1337 tv-sw, 1338 su-bv, 1339 tuy-bvz; 1340 1341 //dauert laenger 1342 //Horrocks: 1343 ring r=32003,(a,b,c,d,e,f),dp; 1344 ideal i= 1345 adef-16000be2f+16001cef2, 1346 ad2f+8002bdef+8001cdf2, 1347 abdf-16000b2ef+16001bcf2, 1348 a2df+8002abef+8001acf2, 1349 ad2e-8000bde2-7999cdef, 1350 acde-16000bce2+16001c2ef, 1351 a2de-8000abe2-7999acef, 1352 acd2+8002bcde+8001c2df, 1353 abd2-8000b2de-7999bcdf, 1354 a2d2+9603abde-10800b2e2-9601acdf+800bcef+11601c2f2, 1355 abde-8000b2e2-acdf-16001bcef-8001c2f2, 1356 abcd-16000b2ce+16001bc2f, 1357 a2cd+8002abce+8001ac2f, 1358 a2bd-8000ab2e-7999abcf, 1359 ab3f-3bdf3, 1360 a2b2f-2adf3-16000bef3+16001cf4, 1361 a3bf+4aef3, 1362 ac3e-10668cde3, 1363 a2c2e+10667ade3+16001be4+5334ce3f, 1364 a3ce+10669ae3f, 1365 bc3d+8001cd3e, 1366 ac3d+8000bc3e+16001cd2e2+8001c4f, 1367 b2c2d+16001ad4+4000bd3e+12001cd3f, 1368 b2c2e-10668bc3f-10667cd2ef, 1369 abc2e-cde2f, 1370 b3cd-8000bd3f, 1371 b3ce-10668b2c2f-10667bd2ef, 1372 abc2f-cdef2, 1373 a2bce-16000be3f+16001ce2f2, 1374 ab3d-8000b4e-8001b3cf+16000bd2f2, 1375 ab2cf-bdef2, 1376 a2bcf-16000be2f2+16001cef3, 1377 a4d-8000a3be+8001a3cf-2ae2f2; 1378 1379 1380 ring r=32003,(b,s,t,u,v,w,x,y,z),dp; 1381 1382 ideal k= 1383 wy-vz, 1384 vx-uy, 1385 tv-sw, 1386 su-bv, 1387 tuy-bvz; 1388 ideal j=x2y2+x2z2+y2z2; 1389 ideal i=mstd(intersect(j,k))[2]; 1390 1391 //22 1392 ring r=32003,(b,s,t,u,v,w,x,y,z),dp; 1393 ideal i= 1394 wx2y3-vx2y2z+wx2yz2+wy3z2-vx2z3-vy2z3, 1395 vx3y2-ux2y3+vx3z2-ux2yz2+vxy2z2-uy3z2, 1396 tvx2y2-swx2y2+tvx2z2-swx2z2+tvy2z2-swy2z2, 1397 sux2y2-bvx2y2+sux2z2-bvx2z2+suy2z2-bvy2z2, 1398 tux2y3-bvx2y2z+tux2yz2+tuy3z2-bvx2z3-bvy2z3; 1399 1400 1401 //riemenschneider 1402 //33 1403 //normal+primary 3 1404 //primary 9 1405 //radical 1 1406 //minAssPrimes 2 1407 ring r=32000,(p,q,s,t,u,v,w,x,y,z),wp(1,1,1,1,1,1,2,1,1,1); 1408 ideal i= 1409 xz, 1410 vx, 1411 ux, 1412 su, 1413 qu, 1414 txy, 1415 stx, 1416 qtx, 1417 uv2z-uwz, 1418 uv3-uvw, 1419 puv2-puw; 1420 1421
Note: See TracChangeset
for help on using the changeset viewer.