changes to DP test

This commit is contained in:
Nacho B. R. 2025-07-08 09:44:08 +02:00
parent 6c7682073d
commit 46145a40ee
4 changed files with 212 additions and 957 deletions

View File

@ -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

View File

@ -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 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); module tkef = module(jf) + f*freemodule(p);
tkef = std(tkef); tkef = std(tkef);
int tkemax = 0; int tkemax = 0;
tkefmodk = tkef + maxideal(tkemax + 1)*freemodule(p); module tkefmodk = tkef + maxideal(tkemax + 1)*freemodule(p);
tkefmodk = std(tkefmodk); tkefmodk = std(tkefmodk);
module freemax = freemodule(p); module freemax = freemodule(p);
module auxtke = reduce(freemax, tkefmodk); module auxtke = reduce(freemax, tkefmodk);
@ -213,9 +213,9 @@ proc MaxPowerContained(ideal f)
tkemax++; tkemax++;
freemax = maxideal(tkemax)*freemodule(p); freemax = maxideal(tkemax)*freemodule(p);
tkefmodk = tkef + maxideal(tkemax + 1)*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])); def Raux = MalgrRing(ideal(0),n,ideal(f[1..n]));
string RName=nameof(basering); string RName=nameof(basering);
@ -229,6 +229,8 @@ proc MaxPowerContained(ideal f)
module wf = freemodule(p); module wf = freemodule(p);
int m = ncols(Gens); int m = ncols(Gens);
// 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;// // print("wf=");wf;//
if (p > n) if (p > n)
{ {
@ -241,8 +243,8 @@ proc MaxPowerContained(ideal f)
} }
} }
int maxi_contained = 0; int bool_maxi_contained = 0;
int maxi_power_target = 0; int maxi_power = 0;
module mktheta = freemodule(p); module mktheta = freemodule(p);
module mk1theta = (mappingf^tkemax)*freemodule(p); module mk1theta = (mappingf^tkemax)*freemodule(p);
//module TAef = GenerateOYModule(jf, wf, #); //module TAef = GenerateOYModule(jf, wf, #);
@ -250,46 +252,47 @@ proc MaxPowerContained(ideal f)
module Tmktheta; module Tmktheta;
module Tmk1theta; module Tmk1theta;
module auxmod; module auxmod;
module TAefmodmk1;
while (maxi_contained == 0) 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; Tmktheta = GenerateOYModule(mktheta, 0, maxOX^(maxi_power+tkemax));
mk1theta = mappingf*mk1theta;
Tmktheta = GenerateOYModule(mktheta, 0, mappingf^(maxi_power_target+1)); //Tmk1theta = GenerateOYModule(mk1theta, 0, maxOX^(maxi_power+tkemax));
Tmk1theta = GenerateOYModule(mk1theta, 0, mappingf^(maxi_power_target+1));
TAef = GenerateOYModule(jf, wf, mappingf^(maxi_power_target+1)); TAef = GenerateOYModule(jf, wf, maxOX^(maxi_power+tkemax));
//Tmk1theta;//
//TAefmodmk1 = std(Tmk1theta + TAef);
TAefmodmk1 = std(TAef);
/*Tmktheta; i = 1;
"---";
TAef;
"---";
Tmk1theta;
*/
/*
mktheta;
Tmktheta;
maxOX^(maxi_power+1);
*/
auxmod = reduce(Tmktheta, std(Tmk1theta + TAef)); //Tmk1theta;
//reduce(Tmktheta,std(Tmk1theta)); bool_maxi_contained = 1;
//std(TAef);
if (size(auxmod)==0) 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; int maxi_power = 1;
ideal mpfmax = std(mappingf^maxi_power_target); ideal mpfmax = std(mappingf^maxi_power_target);
@ -297,8 +300,9 @@ proc MaxPowerContained(ideal f)
{ {
maxi_power = maxi_power +1; 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 col = submat(GOY,intvec(1..a),intvec(i)); // Pick the next generator in GOY
if (s>0) if (s>0)
{ {
M = M + MatrixToVector(MalgrFormVect(col, mappingf^k)); // Convert to GOX M = M + MatrixToVector(MalgrFormVect(col, #[1])); // Convert to GOX
} }
else else
{ {
@ -503,7 +507,7 @@ proc GenerateOYModule(matrix GOX, matrix GOY, list #)
{ {
if (s>0) 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 else
{ {
@ -513,11 +517,13 @@ proc GenerateOYModule(matrix GOX, matrix GOY, list #)
} }
} }
/*
if (s > 0) if (s > 0)
{ {
M = M + (ideal(X(1..dimX))^k)*freemodule(m*a); M = M + (ideal(X(1..dimX))^k)*freemodule(m*a);
} }
//(ideal(X(1..dimX))^k)*freemodule(m*a);;// //(ideal(X(1..dimX))^k)*freemodule(m*a);;//
*/
return(M); return(M);
} }

View File

@ -1,7 +1,66 @@
LIB"AeCodPruebas.lib"; 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; quit;

View File

@ -1,7 +1,107 @@
LIB"AeCodPruebas.lib"; 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); AeNormal(f);
quit; 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);
*/
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;
;