monitor("lezione16-04-19.txt","io"); //---Robot dell'esempio 1, [CLO, p. 299, 305-310] ring r=(0,l3,l2,a,b),(c1,s1,c2,s2),dp; option(redSB); ideal id=l3*(c1*c2-s1*s2)+l2*c1-a, l3*(c1*s2+c2*s1)+l2*s1-b, c1^2+s1^2-1,c2^2+s2^2-1; ideal j=std(id); dim(j); j; //---Groebner cover di in Q(t)[x,y] LIB "grobcov.lib"; ring rr = (0,t),(x,y),lp; ideal I = x+y, x+t*y; grobcov(I); //---Torniamo al robot setring(r); list g = grobcov(id); //---Groebner cover (Montes e Wibmer, 2010, [CLO, p. 309-310]) //---Output di grobcov(id): // (1) monomi iniziali // (2) sottoinsiemi finiti G_i of k[x,t_1,...,t_m] // la cui specializzazione t --> a in S_i e base di Groebner // con i monomi iniziali (1) // (3) sottoinsiemi costruibili S_i = V_i - W_i in k^m // (4) monomi iniziali per la omogenizzazione dell'ideale // Dai 12 segmenti g_i soltanto g_1, g_3, g_5, g_10, g_12 // hanno un G_i non triviale, vedi la tabella [CLO, p. 310] g; //---Poniamo l2 = l3 = 1 ideal ids=subst(id,l3,1,l2,1); ring rs=(0,a,b),(c1,s1,c2,s2),dp; ideal ids=imap(r,ids); std(ids); // si veda [CLO, p. 306, formula (3)] monitor(""); quit;