[c00e9b] | 1 | LIB "tst.lib"; |
---|
| 2 | tst_init(); |
---|
| 3 | LIB "equising.lib"; |
---|
| 4 | /////////////////////////////////////////////////////////////////////////////// |
---|
| 5 | // Baby Examples |
---|
| 6 | ring r=0,(x,y),ds; |
---|
| 7 | poly f= x2-y3; |
---|
| 8 | esIdeal(f); |
---|
| 9 | ring R=0,(A,B,C,D,E,F,x,y),ds; |
---|
| 10 | poly F=x2-y3+Ax+By+Cy2+Dxy+Ex2+Fy3; |
---|
| 11 | esStratum(F,2); |
---|
| 12 | esStratum(F,3); |
---|
| 13 | kill r; |
---|
| 14 | // |
---|
| 15 | ring rr=0,(x,y),ls; |
---|
| 16 | poly f=x7+y7+(x-y)^2*x2y2+x2y4; // Newton non-degenerate |
---|
| 17 | tau_es(f); |
---|
| 18 | list K=esIdeal(f); |
---|
| 19 | vdim(std(K[1])); // tau_es |
---|
| 20 | vdim(std(K[2])); // tau_es_fix |
---|
| 21 | // |
---|
| 22 | f=x7+y7+(x-y)^2*x2y2; // Newton degenerate |
---|
| 23 | tau_es(f); |
---|
| 24 | K=esIdeal(f); |
---|
| 25 | vdim(std(K[1])); |
---|
| 26 | vdim(std(K[2])); |
---|
| 27 | // |
---|
| 28 | f=x6y-3x4y4-x4y5+3x2y7-x4y6+2x2y8-y10+2x2y9-y11+x2y10-y12-y13; // 4 branches |
---|
| 29 | tau_es(f); |
---|
| 30 | K=esIdeal(f); |
---|
| 31 | vdim(std(K[1])); |
---|
| 32 | K; |
---|
| 33 | kill rr; |
---|
| 34 | |
---|
| 35 | /////////////////////////////////////////////////////////////////////////////// |
---|
| 36 | // Teste Verhalten in verschiedenen Ringen |
---|
| 37 | proc tst(list d) |
---|
| 38 | { |
---|
| 39 | int i; |
---|
| 40 | for(i=1;i<=size(d);i++) |
---|
| 41 | { |
---|
| 42 | execute(d[i]); |
---|
| 43 | |
---|
| 44 | poly f = y8+4x3y6+6x6y4+2x5y5+4x9y2+4x8y3+x12+2x11y+2x10y2+x13; |
---|
| 45 | |
---|
[6fe3a0] | 46 | list L=versal(f); |
---|
| 47 | def Px=L[1]; |
---|
[c00e9b] | 48 | setring Px; |
---|
| 49 | poly F = Fs[1,1]; |
---|
| 50 | |
---|
| 51 | list EsList = esStratum(F); |
---|
| 52 | EsList[2]; |
---|
| 53 | if (typeof(EsList[1])=="list") |
---|
| 54 | { |
---|
[c9ce51] | 55 | ideal ES = EsList[1][1]; kill EsList; |
---|
[c00e9b] | 56 | } |
---|
| 57 | else |
---|
| 58 | { |
---|
[c9ce51] | 59 | def R=EsList[1]; kill EsList; setring R; |
---|
[c00e9b] | 60 | } |
---|
| 61 | option(redSB); |
---|
| 62 | ES=std(ES); |
---|
| 63 | ES; |
---|
| 64 | |
---|
| 65 | qring q = ES; |
---|
| 66 | poly F = imap(Px,F); |
---|
| 67 | |
---|
| 68 | isEquising(F); |
---|
| 69 | |
---|
[6fe3a0] | 70 | kill L,Px; |
---|
[c9ce51] | 71 | kill q; |
---|
| 72 | if (defined(R)){ kill R; } |
---|
| 73 | kill r; |
---|
[c00e9b] | 74 | } |
---|
| 75 | } |
---|
| 76 | |
---|
| 77 | list L = "ring r = 0,(x,y),ds", "ring r = (0,a),(x,y),ds; minpoly = a^2-1;", |
---|
| 78 | "ring r = (0, t(1..4)),(x,y),ds", "ring r = 7,(x,y),ds", |
---|
| 79 | "ring r = (11,a(1)),(x,y),ds; minpoly = a(1)^2-1;", |
---|
| 80 | "ring r = (3,t(1..8)),(x,y),ds"; |
---|
| 81 | tst(L); |
---|
| 82 | kill L; |
---|
| 83 | ////////////////////////////////////////////////////////////////////////////// |
---|
| 84 | // es-deformation of irreducible polynomial x13+x3-3x2y+3xy2 |
---|
| 85 | |
---|
| 86 | ring r = 0,(A,B,C,D,x,y),dp; |
---|
| 87 | poly F =D3x12+3CD2x11+3C2Dx10+3BD2x10+x13+C3x9+6BCDx9+3AD2x9+3BC2x8+3B2Dx8 |
---|
| 88 | +6ACDx8+3D2x9-3D2x8y+3B2Cx7+3AC2x7+6ABDx7+6CDx8-6CDx7y+B3x6+6ABCx6+3A2Dx6 |
---|
| 89 | +3C2x7+6BDx7-3C2x6y-6BDx6y+3AB2x5+3A2Cx5+6BCx6+6ADx6-6BCx5y-6ADx5y+3A2Bx4 |
---|
| 90 | +3B2x5+6ACx5+3Dx6-3B2x4y-6ACx4y-6Dx5y+3Dx4y2+A3x3+6ABx4+3Cx5-6ABx3y-6Cx4y |
---|
| 91 | +3Cx3y2+3A2x3+3Bx4-3A2x2y-6Bx3y+3Bx2y2+3Ax3-6Ax2y+3Axy2+x3-3x2y+3xy2-y3; |
---|
| 92 | esStratum(F); |
---|
| 93 | isEquising(F); |
---|
| 94 | kill r; |
---|
| 95 | /////////////////////////////////////////////////////////////////////////// |
---|
| 96 | // es-deformation of irreducible poly in finite characteristic |
---|
| 97 | ring rr = 11,(A,B,C,a,b,x,y),(dp(3),dp(2),dp); |
---|
| 98 | poly F = (y-ax-b*x^2)^5-x^12; |
---|
| 99 | ideal id = (1-A)*a-1,(1+B+A^2)*b-1; |
---|
| 100 | F = F*(1-A)^5*(1+B+A^2)^5; |
---|
| 101 | F = reduce(F,std(id)); |
---|
| 102 | esStratum(F); |
---|
| 103 | isEquising(F); |
---|
[c9ce51] | 104 | kill rr; |
---|
[c00e9b] | 105 | /////////////////////////////////////////////////////////////////////////// |
---|
| 106 | // 1st order es-deformation of irred. poly |
---|
| 107 | ring rr=0,(A,B,C,x,y),ls; |
---|
| 108 | poly f=x7+y7+(x-y)^2*x2y2; |
---|
| 109 | poly F=f+A*y*diff(f,x)+B*x*diff(f,x)+C*diff(f,y); |
---|
| 110 | list M=esStratum(F,2); |
---|
| 111 | M; |
---|
| 112 | M=esStratum(F,6); |
---|
| 113 | std(M[1][1]); |
---|
[c9ce51] | 114 | kill rr; |
---|
[c00e9b] | 115 | ///////////////////////////////////////////////// |
---|
| 116 | |
---|
| 117 | example esStratum; |
---|
| 118 | example isEquising; |
---|
| 119 | example esIdeal; |
---|
| 120 | example tau_es; |
---|
| 121 | |
---|
| 122 | ///////////////////////////////////////////////// |
---|
| 123 | // Andere Namen fuer Variablen + HNE gegeben |
---|
| 124 | ring r=0,(w,v),ds; |
---|
| 125 | poly f=w2-v199; // simple singularity |
---|
| 126 | list L=hnexpansion(f); |
---|
[6fe3a0] | 127 | list LL=versal(f); |
---|
| 128 | def Px=LL[1]; |
---|
[c00e9b] | 129 | setring Px; |
---|
| 130 | list L=imap(r,L); |
---|
| 131 | poly F=Fs[1,1]-A(198)+A(198)*w2; |
---|
| 132 | list M=esStratum(F,2,L); |
---|
| 133 | reduce(F,std(M[1][1])); |
---|
| 134 | M=esStratum(F,L); |
---|
| 135 | reduce(F,std(M[1][1])); |
---|
[6fe3a0] | 136 | kill LL,Px,r; |
---|
[c00e9b] | 137 | ///////////////////////////////////////////////// |
---|
| 138 | |
---|
| 139 | |
---|
| 140 | |
---|
| 141 | tst_status(1);$ |
---|
| 142 | |
---|