AeCodimension/example3.c
2025-07-08 09:44:08 +02:00

107 lines
2.2 KiB
C

LIB"AeCodPruebas.lib";
int i; int j;
LIB"matrix.lib";
/*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);
*/
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;
;