From 46145a40eeef4a259762c93b26a7e434c5cb6614 Mon Sep 17 00:00:00 2001 From: "Nacho B. R." Date: Tue, 8 Jul 2025 09:44:08 +0200 Subject: [PATCH] changes to DP test --- .singularhistory | 910 ----------------------------------------------- AeCodPruebas.lib | 88 ++--- example2.c | 65 +++- example3.c | 106 +++++- 4 files changed, 212 insertions(+), 957 deletions(-) delete mode 100644 .singularhistory diff --git a/.singularhistory b/.singularhistory deleted file mode 100644 index b79f3de..0000000 --- a/.singularhistory +++ /dev/null @@ -1,910 +0,0 @@ -quit; -quit; -quit; -quit; -quit; -ring r = 0,(X(1..30)),ds; -ideal i = maxideal(50); -qring Q = i; -setring Q; -reduce(x(1)^51); -reduce(X(1)^51); -reduce(X(1)^51,ideal(0)); -reduce(X(1)^51,std(ideal(0))); -basering; -Q = std(Q); -nameof(basering); -std(X(1)^51); -setring r; -qring q2 = std(maxideal(50)); -setring q2; -reduce(X(1)^51,std(0)); -basering; -quit; -ring r = 0,(x(1..8)),ds; -ideal i = maxideal(50); -ring r = 0,(x(1..8)),ds; -ideal i = maxideal(10); -i; -qring q = std(i); -ring r = 0,(x(1..)),ds; -ideal i = maxideal(5); -ring r = 0,(x(1..3)),ds; -ideal i = maxideal(20); -ideal i = maxideal(40); -qring q = std(i); -basering; -setring r; -ring r = 0,(x(1..6)),ds; -ideal i = maxideal(40); -qring q = std(i); -LIB"AeCodPruebas.lib"; -ring r = 0,(x,y),ds; -ideal f = x,y2,y3+xy; -AeNormal(f,maxideal(4)); -LIB"AeCodPruebas.lib"; -def Q = MalgrRing(ideal(0),2, -ideal f = x,y2,y3+xy; -def Q = MalgrRing(ideal(0),2,ideal(x,y2)); -setring Q; -def f = imap(r,f); -setring r; -matrix jf = jacob(f); -setring Q; -def jf = imap(r,jf); -print(jf); -jf[1]; -MalgrFormVect(jf[1]); -; -print(jf); -jf[1]; -MalgrFormVect(jf[1], maxOX^5); -quit; -quit; -quit; -quit; -quit; -quit; -quit; -quit; -quit; -setring r; -f; -AeNormal(f); -AeNormal(f); -quit; -ring r; -quit; -; -AeNormal(f,maxideal(5)); -AeNormal(f); -quit; -; -quit; -; -quit; -quit; -; -quit; -quit; -LIB"AeCodPruebas.lib"; -ring r = 0,(x,y),ds; -ideal f = x,y2,x3y+xy3,y5; -AeNormal(f); -ring s = 0,(x,y,a,b),ds; -ideal i = x-a,y-b; -reduce(xy3+x3y-ab3-a3b,std(i)); -lift(i,xy3+x3y-ab3-a3b); -ring r = 0,(x,y,a,b),ds; -ideal f = x-a,y2-b2,x3y+xy3-a3b-ab3,y5-b5; -qring q = std(f); -basering; -ideal i = x-a,y-b; -std(i); -kbase(i); -kbase(std(i)); -dim(y-b); -dim(std(i)); -vdim(std(i)); -i; -i = std(i); -i; -ideal z = std(0); -reduce(i,z); -reduce(i*maxideal(1),z); -reduce(i*maxideal(4),z); -reduce(i*maxideal(10),z); -reduce(i*maxideal(5),z); -reduce(i*maxideal(6),z); -reduce(i*maxideal(5),z); -reduce(i*maxideal(1),z); -reduce(i*maxideal(2),z); -setring r; -f; -ring R = 0,(x,y,b),ds; -ideal f = y+b,x*(y2+yb+b2)+x3,y4+y3b+y2b2+yb3+b4; -kbase(std(f)); -quit -; -if(0){"a";} -if(1){"a";} -; -quit; -LIB"AeCodPruebas.lib"; -ring r = 0,(x,y),ds; -AeNormal(ideal(x,y2,xy)); -AeNormal(ideal(x,y2,y3+x2y)); -AeNormal(ideal(x,y2,y3+x19y)); -AeNormal(ideal(x,y2,y3+x15y)); -AeNormal(ideal(x,y2,y3+x5y)); -module m; -ncols(m); -m[1]==0; -m[1]!=0; -module m = 0,0,0,0; -print(m); -m = 0*gen(1)+0*gen(2); -m; -m = 0,gen(2); -m; -m[1] == 0; -print(m); -m=0; -size(m); -quit; -LIB"AeCodPruebas.lib"; -ring r = 0,(x,y),ds; -ideal f = x,y2,y3+x2y; -MaxPowerContained(f); -LIB"AeCodPruebas.lib"; -MaxPowerContained(f); -LIB"AeCodPruebas.lib"; -MaxPowerContained(f); -LIB"AeCodPruebas.lib"; -MaxPowerContained(f); -MaxPowerContained(f); -LIB"AeCodPruebas.lib"; -MaxPowerContained(f); -quit; -LIB"AeCodPruebas.lib"; -LIB"AeCodPruebas.lib"; -quit; -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -nn -n -n -n -n -n -n -n -n -n -n -n -p GOX -n -n -n -n -n -n -p a -p GOY -n -n -n -n -n -nn -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -p a -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -p col -n -n -n -n -n -n -p M -n -p M -n -n -n -n -n -n -n -p M -n -p M -n -n -n -n -n -n -n -n -n -n -p col -n -p col -n -n -n -n -n -n -n -p M -n -n -n -n -n -n -n -n -p M -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -p M -n -n -n -n -n -n -n -n -n -n -n -p M -n -n -n -n -n -n -n -p col -n -n -n -n -n -n -n -p M -n -n -n -n -n -n -n -n -p M -p col -p k -c -? -c -c -c -c -c -c -n -n -n -n -n -nn -n -n -n -n -n -n -n -n -n -n -n -nn -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -nn -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -p M -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -nn -n -n -n -p M -n -n -n -n -n -n -p col -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -p M -n -n -n -n -n -n -n -n -n -p col -n -n -n -n -n -n -n -p M -n -n -n -n -n -n -n -n -p M -n col -p col -p mappingf -p k -p Raux -quit; -c -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -? -n -n -n -n -n -n -p col -n -p v -n -p v -c -n -n -n -n -n -n -n -n -n -c -p M -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -c -n -n -n -n -n -n -n -n -p M -n -c -p M -p Gens -p M -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -c -p m -p M -n -n -n -n -n -n -n -n -n -c -p M -n -n -n -n -n -n -n -n -n -n -n -p col -n -n -n -n -n -n -n -n -p v -n -c -n -p M -n -n -n -n -n -n -p col -n -n -p v -c -p M -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -c -c -c -c -c -c -c -c -c -c -c -c -c -c -c -c -c -c -c -c -c -c -c -c -c -c -n -p GOX -n -n -n -n -n -n -n -n -n -n -n -n -n -p col -n -n -n -n -n -n -n -n -p v -n -p # -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -p determinacyIdeal -n GF -p GF -p K -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -p maxibound -n -n -n -n -n -p determinacyIdeal -p maxibound -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -p maxibound -p determinacyIdeal -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -n -p tkef -n -n -p tkef -n -n -p freemax -n -n -n -n -n -n -p freemax -n -n -p auxtke -n -n -n -n -n -p auxtke diff --git a/AeCodPruebas.lib b/AeCodPruebas.lib index 591d983..b427e5a 100644 --- a/AeCodPruebas.lib +++ b/AeCodPruebas.lib @@ -188,7 +188,7 @@ proc AeNormal(ideal f, list #) -proc MaxPowerContained(ideal f) +proc AeDeterminacyTestDP(ideal f) { /* f: Cn -> Cp is a map-germ with p >= n @@ -203,7 +203,7 @@ proc MaxPowerContained(ideal f) module tkef = module(jf) + f*freemodule(p); tkef = std(tkef); int tkemax = 0; - tkefmodk = tkef + maxideal(tkemax + 1)*freemodule(p); + module tkefmodk = tkef + maxideal(tkemax + 1)*freemodule(p); tkefmodk = std(tkefmodk); module freemax = freemodule(p); module auxtke = reduce(freemax, tkefmodk); @@ -213,9 +213,9 @@ proc MaxPowerContained(ideal f) tkemax++; freemax = maxideal(tkemax)*freemodule(p); tkefmodk = tkef + maxideal(tkemax + 1)*freemodule(p); - auxtke = reduce(freemax, tkefmodk); + auxtke = reduce(freemax, std(tkefmodk)); } - + // tkemax; // def Raux = MalgrRing(ideal(0),n,ideal(f[1..n])); string RName=nameof(basering); @@ -229,7 +229,9 @@ proc MaxPowerContained(ideal f) module wf = freemodule(p); int m = ncols(Gens); - //print("wf=");wf;// + // Take into account that not all of these powers might be necessary + // deppending on the power of the maximal that is contained. + // print("wf=");wf;// if (p > n) { ideal h = ideal(f[(n+1)..p]); @@ -241,8 +243,8 @@ proc MaxPowerContained(ideal f) } } - int maxi_contained = 0; - int maxi_power_target = 0; + int bool_maxi_contained = 0; + int maxi_power = 0; module mktheta = freemodule(p); module mk1theta = (mappingf^tkemax)*freemodule(p); //module TAef = GenerateOYModule(jf, wf, #); @@ -250,46 +252,47 @@ proc MaxPowerContained(ideal f) module Tmktheta; module Tmk1theta; module auxmod; - - while (maxi_contained == 0) + module TAefmodmk1; + + while (bool_maxi_contained == 0) { - maxi_power_target = maxi_power_target + 1; + maxi_power; // + mktheta = freemodule(p)*(maxOX^maxi_power); + mk1theta = freemodule(p)*(maxOX^(maxi_power+tkemax)); - mktheta = mappingf*mktheta; - mk1theta = mappingf*mk1theta; + Tmktheta = GenerateOYModule(mktheta, 0, maxOX^(maxi_power+tkemax)); + + //Tmk1theta = GenerateOYModule(mk1theta, 0, maxOX^(maxi_power+tkemax)); + + TAef = GenerateOYModule(jf, wf, maxOX^(maxi_power+tkemax)); + + //Tmk1theta;// - Tmktheta = GenerateOYModule(mktheta, 0, mappingf^(maxi_power_target+1)); - Tmk1theta = GenerateOYModule(mk1theta, 0, mappingf^(maxi_power_target+1)); - TAef = GenerateOYModule(jf, wf, mappingf^(maxi_power_target+1)); + //TAefmodmk1 = std(Tmk1theta + TAef); + TAefmodmk1 = std(TAef); - - /*Tmktheta; - "---"; - TAef; - "---"; - Tmk1theta; - */ - /* - mktheta; - Tmktheta; - maxOX^(maxi_power+1); - */ - - auxmod = reduce(Tmktheta, std(Tmk1theta + TAef)); - //reduce(Tmktheta,std(Tmk1theta)); - //std(TAef); - if (size(auxmod)==0) + i = 1; + + //Tmk1theta; + + bool_maxi_contained = 1; + + while (bool_maxi_contained == 1 && i <= size(Tmktheta)) { - maxi_contained = 1; + if (reduce(Tmktheta[i], TAefmodmk1) != 0) + { + bool_maxi_contained = 0; + } + i++; + } + + if (bool_maxi_contained == 0) + { + maxi_power = maxi_power + 1; } } - /* - execute("setring(" + RName + ")"); - module NAef = imap(Raux, NAef); - */ - int maxi_power = 1; ideal mpfmax = std(mappingf^maxi_power_target); @@ -297,8 +300,9 @@ proc MaxPowerContained(ideal f) { maxi_power = maxi_power +1; } + */ - return(maxi_power); + return(maxi_power+tkemax); } ////////////////////////////////////////////////////////////////////////////// @@ -471,7 +475,7 @@ proc GenerateOYModule(matrix GOX, matrix GOY, list #) col = submat(GOY,intvec(1..a),intvec(i)); // Pick the next generator in GOY if (s>0) { - M = M + MatrixToVector(MalgrFormVect(col, mappingf^k)); // Convert to GOX + M = M + MatrixToVector(MalgrFormVect(col, #[1])); // Convert to GOX } else { @@ -503,7 +507,7 @@ proc GenerateOYModule(matrix GOX, matrix GOY, list #) { if (s>0) { - M = M + MatrixToVector(MalgrFormVect(Gens[j]*col, mappingf^k)); // Convert to GOX + M = M + MatrixToVector(MalgrFormVect(Gens[j]*col, #[1])); // Convert to GOX } else { @@ -513,11 +517,13 @@ proc GenerateOYModule(matrix GOX, matrix GOY, list #) } } + /* if (s > 0) { M = M + (ideal(X(1..dimX))^k)*freemodule(m*a); } //(ideal(X(1..dimX))^k)*freemodule(m*a);;// + */ return(M); } diff --git a/example2.c b/example2.c index 4fa96d4..f7cbce3 100644 --- a/example2.c +++ b/example2.c @@ -1,7 +1,66 @@ LIB"AeCodPruebas.lib"; -ring r = 0,(x,y,z),ds; -ideal f = x,y,yz+z6+z8,z3+xz; +/*ring r = 0,(x(1..5)),ds; -AeNormal(f, maxideal(2)); +ideal f = x(3),x(4),x(5),x(2)*x(1),x(1)^3+x(2)^3+x(3)*x(1)+x(4)*x(2)+(-x(5)-x(5)^2)*x(1)^2 +x(5)*x(2)^2; +*/ + + +/* +ring r = 0,(x,y),ds; +ideal f = x,xy+y6+y9; +*/ + +//def Q = MalgrRing(ideal(0),2,f); + +//breakpoint(AeDeterminacyTestDP); + +"---"; +//int a = AeDeterminacyTestDP(f); +//a; +"---"; +/* +ring r = 0,(u,v,y,z),ds; +ideal f = u,v,y,z3-y2z,uz+vz2+yuz5; +*/ +ring r = 0,(x(1..6),y,z),ds; + +ideal f = x(1..6),y,z5+y2z3+x(4)*z3+x(5)*z2+x(6)*z, x(1)*z+x(2)*z2+x(3)*z3+x(4)*z4; +matrix jf = jacob(f); + +int p = ncols(f); +int n = nvars(basering); + +def Q = MalgrRing(ideal(0),n,f); +setring Q; +def f = imap(r,f); +def jf = imap(r, jf); +module wf = freemodule(9); +int i; +int m = ncols(Gens); +if (p > n) + { + ideal h = ideal(f[(n+1)..p]); + //print("h=");h;// + for (i=1; i <= m-1; i++) + { + wf = wf + (freemodule(p) * (h)^i); + //print("wf=");wf;// + } + } +"Generando modulos ....."; +module TAef = GenerateOYModule(jf,wf); +"Modulo Tae generado"; +module Maxi6 = GenerateOYModule(maxideal(6)*freemodule(9), 0); +"Modulo Maxi Generado"; +ring target = 0,(X(1..n)),ds; +module TAef = imap(Q,TAef); +module Maxi6 = imap(Q, Maxi6); +"Calculando base std..."; +module B = std(TAef + Maxi6); +"Calculando kbase...."; +kbase(std(TAef + Maxi6)); + +//AeDeterminacyTestDP(f); +//AeNormal(f); quit; \ No newline at end of file diff --git a/example3.c b/example3.c index 240f20b..b957a32 100644 --- a/example3.c +++ b/example3.c @@ -1,7 +1,107 @@ LIB"AeCodPruebas.lib"; -ring r = 0,(x,y),ds; +int i; int j; +LIB"matrix.lib"; -ideal f = x,y2,y3+x2y; +/*ring r = 0,(x(1..3),w(1..3),y,z),ds; + +ideal f = x(1..3),w(1..3),y,x(1)*z+x(2)*z^2+x(3)*z^3+(y2+2*w(3))*z4+z6,w(1)*z+w(2)*z2+w(3)*z3+z5; +f; +*/ +ring r = 0,(t,x,y),ds; +ideal f = x,t,y2+ty,(x+y)^3+t2y; +AeNormal(f); +quit; + + +ring r = (0),(x,w,y,z),ds; + +ideal f = x,w,y,z*(x2+w2+y2)+z3,z2; +AeDeterminacyTestDP(f); +quit; +//ideal f = x,w,y,x*z+(y2)*z2+z4,w*z+z3; +ideal f = x,w,y,xz+z4,wz+yz2; +AeNormal(f); +quit; + +/* +AeDeterminacyTestDP(f); AeNormal(f); -quit; \ No newline at end of file +*/ +matrix jf = jacob(f); + +module tkef = jf + f*freemodule(5); +ideal maxOX = maxideal(1); +/*"Check: is m3 contained in tkef mod m4?"; + +compress(reduce(maxideal(3)*freemodule(5), std(tkef + maxideal(4)*freemodule(5)))); +*/ + +def Q = MalgrRing(ideal(0),4,ideal(f[1..4])); +setring Q; + +def f = imap(r,f); +def jf = imap(r,jf); +print(jf); +module wf = 0; //freemodule(5); +//def maxOX = imap(r,maxOX); + +for(i=1; i<= ncols(Gens); i++) +{ + wf = wf + f[5]*freemodule(5); +} +"modulot taef..."; +module taef = GenerateOYModule(maxOX*jf,wf); +"modulo extra..."; +module extra = GenerateOYModule(maxOX^5*f*freemodule(5),0); +"modulo extra 2..."; +module extra2 = GenerateOYModule(maxOX^10*freemodule(5),0); +"max5..."; +module Max5 = GenerateOYModule(maxOX^5*freemodule(5),0); +"reduciendo..."; +reduce(Max5, std(taef+extra+extra2)); +quit; + +// taef; // +module NOX = 0; +/* +for (i=1; i<= size(taef); i++) +{ + NOX = concat(NOX,MalgrFormToOX(VectorToMatrix(taef[i], 5, size(Gens)))); + //print("NOX = "); print(NOX); // +} +*/ + +module Max1 = GenerateOYModule(maxOX*freemodule(5),0); +module Max3 = GenerateOYModule(maxOX^3*freemodule(5),0); +module Max4 = GenerateOYModule(maxOX^4*freemodule(5),0); + +module tae4 = taef + Max4; +tae4 = std(tae4); +"---"; +"Is m3 contained in taef?"; +compress(reduce(Max3,std(taef))); +quit; + + +module fail = compress(reduce(Max1, tae4)); + +fail; +for (i=1; i<= ncols(fail); i++) +{ + print(transpose(MalgrFormToOX(VectorToMatrix(fail[i], 5, size(Gens))))); + //print("NOX = "); print(NOX); // +} + +"______"; +matrix v[5][1] = 0,z,0,0,0; +def V = MatrixToVector(MalgrFormVect(v)); +reduce(V,tae4); +quit; +ring target = 0,(X(1..5)),ds; +module tae4 = imap(Q,tae4); +kbase(std(tae4)); + +Auf Wiedersehe +quit; +; \ No newline at end of file