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
@ -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);
}

View File

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

View File

@ -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;
*/
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;
;