1 | LIB "tst.lib"; |
---|
2 | tst_init(); |
---|
3 | |
---|
4 | |
---|
5 | //====================== Example 9.5 ============================= |
---|
6 | ring R = 0, x, dp; // global order: x>1 |
---|
7 | ideal I = x2+x; |
---|
8 | std(I); |
---|
9 | //-> _[1]=x2+x |
---|
10 | ring S = 0, x, ds; // local order: 1>x |
---|
11 | ideal I = x2+x; |
---|
12 | std(I); |
---|
13 | //-> _[1]=x |
---|
14 | |
---|
15 | |
---|
16 | kill R,S; |
---|
17 | //=================== Lemma 9.11 (new Session) ===================== |
---|
18 | ring R = 0, (v,w), M(-2,1,0,-1); |
---|
19 | poly f = 1-vw; |
---|
20 | reduce(1,std(ideal(f))); // output shows: f is a unit in R |
---|
21 | //-> 0 |
---|
22 | ring S = 0, (v,w), M(-2,3,0,-1); |
---|
23 | map phi = R,v,w; // implementing a nonexisting ring map |
---|
24 | reduce(1,std(phi(f))); // output shows: f is not a unit in S |
---|
25 | //-> 1 |
---|
26 | |
---|
27 | |
---|
28 | kill R,S; |
---|
29 | //=================== Example 9.27 (new Session) ===================== |
---|
30 | ring R = 0, (x,y), ds; // local monomial order |
---|
31 | poly f = y13-y15+x2y9+x2y10-2x2y11-x2y12+x2y13-3x3y11+3x3y13+x4y6 |
---|
32 | -x4y7-2x4y8+x4y9+x4y10-3x5y7-3x5y8+5x5y9-x5y10-2x5y11+4x5y12-x6y4 |
---|
33 | +x6y6+3x6y9-3x6y11-3x7y4+2x7y5+x7y6-6x7y7+6x7y8+3x7y9-4x7y10+x7y11 |
---|
34 | +3x8y5+3x8y6-4x8y7+x8y8+x8y9-4x8y10+2x9y2-4x9y3+2x9y4+7x9y5-5x9y6 |
---|
35 | -3x9y7+x9y8+3x10y2-x10y3+5x10y5-3x10y6-3x10y7-x10y9+4x11y-x11y2 |
---|
36 | -4x11y3+x11y4-x12+4x12y+x12y2-3x12y3+x12y4-x12y5-x12y6+x14-x14y2; |
---|
37 | factorize(f); |
---|
38 | //-> [1]: |
---|
39 | //-> _[1]=-1 |
---|
40 | //-> _[2]=-y4+2x3y2-x6+4x5y+x7 |
---|
41 | //-> _[3]=x2-y2+x3 |
---|
42 | //-> _[4]=x2+y3 |
---|
43 | //-> _[5]=x2+y4 |
---|
44 | //-> _[6]=-1+y |
---|
45 | //-> _[7]=1+y |
---|
46 | //-> [2]: |
---|
47 | //-> 1,1,1,1,1,1,1 |
---|
48 | |
---|
49 | //============= Example 9.48 (continuation of session) =============== |
---|
50 | if (not(defined(hnexpansion))){ LIB "hnoether.lib"; } |
---|
51 | list L = hnexpansion(f); |
---|
52 | def HNring = L[1]; |
---|
53 | show(HNring); |
---|
54 | //-> // ring: (0,a),(x,y),(ls(2),C); |
---|
55 | //-> // minpoly = (a2+1) |
---|
56 | //-> // objects belonging to this ring: |
---|
57 | //-> // f [0] poly |
---|
58 | //-> // hne [0] list, size: 6 |
---|
59 | setring HNring; |
---|
60 | displayHNE(hne); |
---|
61 | //-> // Hamburger-Noether development of branch nr.1: |
---|
62 | //-> y = x+1/2*x^2 + ..... (terms of degree >=3) |
---|
63 | |
---|
64 | //-> // Hamburger-Noether development of branch nr.2: |
---|
65 | //-> y = -x-1/2*x^2 + ..... (terms of degree >=3) |
---|
66 | |
---|
67 | //-> // Hamburger-Noether development of branch nr.3: |
---|
68 | //-> y = z(1)*x |
---|
69 | //-> x = z(1)^2+z(1)^2*z(2) |
---|
70 | //-> z(1) = 1/4*z(2)^2-1/2*z(2)^3 + ..... (terms of degree >=4) |
---|
71 | |
---|
72 | //-> // Hamburger-Noether development of branch nr.4: |
---|
73 | //-> x = z(1)*y |
---|
74 | //-> y = -z(1)^2 |
---|
75 | |
---|
76 | //-> // Hamburger-Noether development of branch nr.5: |
---|
77 | //-> x = (a)*y^2 |
---|
78 | |
---|
79 | //-> // Hamburger-Noether development of branch nr.6: |
---|
80 | //-> x = (-a)*y^2 |
---|
81 | |
---|
82 | ring R_param = (0,a), (x,y,t), ls; |
---|
83 | minpoly = a2+1; |
---|
84 | list hne = imap(HNring,hne); |
---|
85 | list P = param(hne[3],1); |
---|
86 | //-> // ** Warning: result is exact up to order 5 in x and 7 in y ! |
---|
87 | P[1]; |
---|
88 | //-> _[1]=1/16*t4-3/16*t5+1/4*t7 |
---|
89 | //-> _[2]=1/64*t6-5/64*t7+3/32*t8+1/16*t9-1/8*t10 |
---|
90 | hne[3] = extdevelop(hne[3],5); |
---|
91 | P = param(hne[3],1); |
---|
92 | //-> // ** Warning: result is exact up to order 7 in x and 9 in y ! |
---|
93 | P[1]; |
---|
94 | //-> _[1]=1/16*t4-3/16*t5+47/128*t6-19/32*t7+ [...] |
---|
95 | //-> _[2]=1/64*t6-5/64*t7+237/1024*t8-271/512*t9+ [...] |
---|
96 | |
---|
97 | displayInvariants(hne); |
---|
98 | //-> [...] |
---|
99 | //-> --- invariants of branch number 3 : --- |
---|
100 | //-> characteristic exponents : 4,6,7 |
---|
101 | //-> generators of semigroup : 4,6,13 |
---|
102 | //-> Puiseux pairs : (3,2)(7,2) |
---|
103 | //-> degree of the conductor : 16 |
---|
104 | //-> delta invariant : 8 |
---|
105 | //-> sequence of multiplicities: 4,2,2,1,1 |
---|
106 | //-> [...] |
---|
107 | //-> -------------- intersection multiplicities : -------------- |
---|
108 | |
---|
109 | //-> branch | 6 5 4 3 2 |
---|
110 | //-> -------+----------------------------- |
---|
111 | //-> 1 | 1, 1, 2, 4, 1 |
---|
112 | //-> 2 | 1, 1, 2, 4 |
---|
113 | //-> 3 | 4, 4, 8 |
---|
114 | //-> 4 | 3, 3 |
---|
115 | //-> 5 | 2 |
---|
116 | //-> [...] |
---|
117 | |
---|
118 | |
---|
119 | kill R,L,HNring,R_param; |
---|
120 | //=================== Example 9.31 (new Session) ===================== |
---|
121 | ring R = 0, (x,y,z), dp; |
---|
122 | ideal I = x*(x2-y2z), (y-z)*(x2-y2z); |
---|
123 | ideal G = std(I); G; // compute Groebner basis |
---|
124 | //-> G[1]=y3z-y2z2-x2y+x2z |
---|
125 | //-> G[2]=xy2z-x3 |
---|
126 | dim(G); // global dimension |
---|
127 | //-> 2 |
---|
128 | ring R1 = 0, (x,y,z), ds; // implements local ring at (0,0,0) |
---|
129 | ideal I = imap(R,I); |
---|
130 | ideal G = std(I); G; // compute standard basis |
---|
131 | //-> G[1]=x3-xy2z |
---|
132 | //-> G[2]=x2y-x2z-y3z+y2z2 |
---|
133 | dim(G); // local dimension at (0,0,0) |
---|
134 | //-> 2 |
---|
135 | map phi = R,x,y-1,z-1; // translate (0,1,1) to the origin |
---|
136 | I = phi(I); |
---|
137 | G = std(I); G; |
---|
138 | //-> G[1]=x |
---|
139 | //-> G[2]=y-z-2y2+yz+z2+x2y+y3-x2z+y2z-2yz2-y3z+y2z2 |
---|
140 | dim(G); // local dimension at (0,1,1) |
---|
141 | //-> 1 |
---|
142 | map psi = R,x,y,z+1; // translate (0,0,-1) to the origin |
---|
143 | I = psi(I); |
---|
144 | G = std(I); |
---|
145 | G; |
---|
146 | //-> G[1]=x2-y2-x2y+y3+x2z-2y2z+y3z-y2z2 |
---|
147 | dim(G); // local dimension at (0,0,-1) |
---|
148 | //-> 2 |
---|
149 | setring R; |
---|
150 | if (not(defined(minAssGTZ))){ LIB "primdec.lib"; } |
---|
151 | list L = minAssGTZ(G); L; |
---|
152 | //-> [2]: |
---|
153 | //-> _[1]=y-z |
---|
154 | //-> _[2]=x |
---|
155 | //-> [1]: |
---|
156 | //-> _[1]=-y2z+x2 |
---|
157 | ideal SLoc = L[1][1], jacob(L[1][1]); |
---|
158 | radical(SLoc); |
---|
159 | //-> _[1]=y |
---|
160 | //-> _[2]=x |
---|
161 | |
---|
162 | |
---|
163 | kill R,R1; |
---|
164 | //=================== Example 9.36 (new Session) ===================== |
---|
165 | ring S = 0, (x,y), ds; // the local ring |
---|
166 | poly f = y2-2x28y-4x21y17+4x14y33-8x7y49+x56+20y65+4x49y16; |
---|
167 | ideal I = f, jacob(f); |
---|
168 | vdim(std(I)); // Tjurina number at the origin |
---|
169 | //-> 2260 |
---|
170 | ring R = 0, (x,y), dp; // the affine ring Q[x,y] |
---|
171 | ideal I = fetch(S,I); |
---|
172 | vdim(std(I)); |
---|
173 | //-> 2260 |
---|
174 | ring SH = 0, (x,y,z), dp; |
---|
175 | poly f = fetch(S,f); |
---|
176 | poly fhom = homog(f,z); |
---|
177 | ring R1 = 0, (y,z), dp; |
---|
178 | map phi = SH,1,y,z; |
---|
179 | poly g = phi(fhom); // fhom in the affine chart (x=1) |
---|
180 | g; |
---|
181 | //-> 20y65+y2z63-8y49z9+4y33z18-4y17z27-2yz36+4y16+z9 |
---|
182 | ideal J = g, jacob(g); |
---|
183 | vdim(std(J)); |
---|
184 | //-> 120 |
---|
185 | ring R2 = 0, (y,z), ds; // the local ring at (1:0:0) |
---|
186 | ideal J = fetch(R1,J); |
---|
187 | vdim(std(J)); |
---|
188 | //-> 120 |
---|
189 | |
---|
190 | |
---|
191 | kill S,R,SH,R1,R2; |
---|
192 | //=================== Example 9.39 (new Session) ===================== |
---|
193 | ring R_loc = 0, (x,y), ds; // local monomial order |
---|
194 | poly f, g = 2x2-y3, 2x2-y5; |
---|
195 | ideal I = f, g; |
---|
196 | vdim(std(I)); // intersection multiplicity at origin |
---|
197 | //-> 6 |
---|
198 | LIB "surf.lib"; |
---|
199 | // plot(f,"scale_x=0.15; scale_y=0.15;"); |
---|
200 | // plot(g,"scale_x=0.15; scale_y=0.15;"); |
---|
201 | // plot(f*g,"scale_x=0.15; scale_y=0.15;"); |
---|
202 | ring R_aff = 0, (x,y), dp; // global monomial order |
---|
203 | ideal I = imap(R_loc,I); |
---|
204 | vdim(std(I)); |
---|
205 | //-> 10 |
---|
206 | if (not(defined(primdecGTZ))){ LIB "primdec.lib"; } |
---|
207 | primdecGTZ(I); |
---|
208 | //-> [1]: |
---|
209 | //-> [1]: |
---|
210 | //-> _[1]=y3 |
---|
211 | //-> _[2]=x2 |
---|
212 | //-> [2]: |
---|
213 | //-> _[1]=y |
---|
214 | //-> _[2]=x |
---|
215 | //-> [2]: |
---|
216 | //-> [1]: |
---|
217 | //-> _[1]=y-1 |
---|
218 | //-> _[2]=2x2-1 |
---|
219 | //-> [2]: |
---|
220 | //-> _[1]=y-1 |
---|
221 | //-> _[2]=2x2-1 |
---|
222 | //-> [3]: |
---|
223 | //-> [1]: |
---|
224 | //-> _[1]=y+1 |
---|
225 | //-> _[2]=2x2+1 |
---|
226 | //-> [2]: |
---|
227 | //-> _[1]=y+1 |
---|
228 | //-> _[2]=2x2+1 |
---|
229 | ring Rt_loc = (0,t), (x,y), ds; // choose coefficient field Q(t) |
---|
230 | poly F = imap(R_loc,f)-(t/2)*y2; |
---|
231 | poly G = imap(R_loc,g)+(5t2/4)*y3-(5t4/16)*y-(t5/16); |
---|
232 | ideal I = F, G; |
---|
233 | vdim(std(I)); // intersection number at (0,0) for general fiber |
---|
234 | //-> 0 |
---|
235 | ring Rt_aff = (0,t), (x,y), dp; |
---|
236 | ideal I = imap(Rt_loc,I); |
---|
237 | vdim(std(I)); // sum of intersection numbers for general fiber |
---|
238 | //-> 10 |
---|
239 | primdecGTZ(I); |
---|
240 | //-> [1]: |
---|
241 | //-> [1]: |
---|
242 | //-> _[1]=16*y5+(-20t2-16)*y3+(-8t)*y2+(5t4)*y+(t5) |
---|
243 | //-> _[2]=-2*y3+4*x2+(-t)*y2 |
---|
244 | //-> [2]: |
---|
245 | //-> _[1]=16*y5+(-20t2-16)*y3+(-8t)*y2+(5t4)*y+(t5) |
---|
246 | //-> _[2]=-2*y3+4*x2+(-t)*y2 |
---|
247 | setring Rt_loc; |
---|
248 | poly f_def = subst(F,t,1/10); |
---|
249 | poly g_def = subst(G,t,1/10); |
---|
250 | setring R_loc; |
---|
251 | poly f_def = imap(Rt_loc,f_def); |
---|
252 | poly g_def = imap(Rt_loc,g_def); |
---|
253 | // plot(f_def,"scale_x=0.001; scale_y=0.015;"); |
---|
254 | // plot(g_def,"scale_x=0.001; scale_y=0.015;"); |
---|
255 | map phi = R_loc, 1/1000*x, 1/10*y; // zooming map |
---|
256 | // plot(10000000*phi(f_def)*phi(g_def),"scale_x=0.5;scale_y=0.075;"); |
---|
257 | if (not(defined(tjurina))){ LIB "sing.lib"; } |
---|
258 | tjurina(f); |
---|
259 | //-> 2 |
---|
260 | milnor(f); |
---|
261 | //-> 2 |
---|
262 | tjurina(g); |
---|
263 | //-> 4 |
---|
264 | milnor(g); |
---|
265 | //-> 4 |
---|
266 | setring Rt_loc; |
---|
267 | tjurina(F); // Tjurina number at origin for general fiber |
---|
268 | //-> 1 |
---|
269 | setring Rt_aff; |
---|
270 | poly F = imap(Rt_loc,F); |
---|
271 | tjurina(F); // sum of Tjurina numbers for general fiber |
---|
272 | //-> 1 |
---|
273 | poly G = imap(Rt_loc,G); |
---|
274 | tjurina(G); |
---|
275 | //-> 2 |
---|
276 | setring Rt_loc; |
---|
277 | tjurina(G); |
---|
278 | //-> 0 |
---|
279 | setring Rt_aff; |
---|
280 | milnor(F); // sum of Milnor numbers for general fiber |
---|
281 | //-> 2 |
---|
282 | milnor(G); |
---|
283 | //-> 4 |
---|
284 | setring R_loc; |
---|
285 | poly h0 = diff(g,x); |
---|
286 | poly h0_prime = diff(g,x)+diff(g,y); |
---|
287 | poly hc = diff(g_def,x); |
---|
288 | poly hc_prime = diff(g_def,x)+diff(g_def,y); |
---|
289 | // plot(h0*h0_prime,"scale_x=0.15; scale_y=0.15;"); |
---|
290 | // plot(hc*hc_prime,"scale_x=0.000005; scale_y=0.015;"); |
---|
291 | |
---|
292 | |
---|
293 | kill R_loc,Rt_loc,R_aff,Rt_aff; |
---|
294 | //=================== Remark 9.41 (new Session) ===================== |
---|
295 | ring R = 0, (x,y,z), dp; |
---|
296 | ideal I0 = x-z, y-z^2; // vanishing at the origin |
---|
297 | ideal I1 = x-z+1, y-z^2+1; // not vanishing at the origin |
---|
298 | ideal I = intersect(I0,I1); |
---|
299 | I = std(I); I; |
---|
300 | //-> _[1]=z2+x-y-z |
---|
301 | //-> _[2]=x2-2xz+y |
---|
302 | ring Rloc = 0, (x,y,z), ds; |
---|
303 | ideal Iloc = fetch(R,I); |
---|
304 | Iloc = std(Iloc); Iloc; |
---|
305 | //-> _[1]=x-y-z+z2 |
---|
306 | //-> _[2]=y+x2-2xz |
---|
307 | ideal J = eliminate(Iloc,z); |
---|
308 | J; |
---|
309 | //-> J[1]=2xy-y2-2x3+2x2y-x4 |
---|
310 | factorize(J[1],1); |
---|
311 | //-> _[1]=-2x+y-x2 |
---|
312 | //-> _[2]=-y+x2 |
---|
313 | ideal I0loc = fetch(R,I0); |
---|
314 | eliminate(I0loc,z); |
---|
315 | //-> _[1]=y-x2 |
---|
316 | |
---|
317 | |
---|
318 | kill R,Rloc; |
---|
319 | //=================== Example 9.42 (new Session) ===================== |
---|
320 | ring R = 0, (t,x,y,z), ds; |
---|
321 | ideal I = x-t+t3, y-t+t2, z-t; |
---|
322 | ideal C = eliminate(I,t); C; |
---|
323 | //-> C[1]=x-z+z3 |
---|
324 | //-> C[2]=y-z+z2 |
---|
325 | eliminate(C,z); |
---|
326 | //-> _[1]=x2-3xy+2y2+y3 |
---|
327 | // plot(x2-3xy+2y2+y3,"scale_x=0.05;scale_y=0.05;"); |
---|
328 | |
---|
329 | |
---|
330 | kill R; |
---|
331 | //=================== Remark 9.49 (new Session) ===================== |
---|
332 | ring R = 0, (x,y,t), ds; |
---|
333 | ideal J = x-t4, y-t6-t7; |
---|
334 | eliminate(J,t); |
---|
335 | //-> _[1]=y4-2x3y2+x6-4x5y-x7 |
---|
336 | |
---|
337 | tst_status(1);$ |
---|
338 | |
---|