changes to work modulo an ideal

This commit is contained in:
Nelynx 2025-02-28 16:35:12 +01:00
parent 05018b7d38
commit dd2cbef15e
3 changed files with 206 additions and 178 deletions

View File

@ -45,184 +45,189 @@ LIB"AeCodPruebas.lib";
ring r = 0,(x,y),ds;
ideal f = x,y2,y3+x2y;
TargetIdeal(f, std(ideal(x,y)));
ring r = 0,(x,y),ds;
ideal f = x,y2,y3+x2y;
LIB"AeCodPruebas.lib";
ring r = 0,(x),ds;
ideal f = x2+x4,x3;
TargetIdeal(f, std(ideal(x,y)));
LIB"AeCodPruebas.lib";
TargetIdeal(f, std(ideal(x,y)));
LIB"AeCodPruebas.lib";
TargetIdeal(f, std(ideal(x,y)));
LIB"AeCodPruebas.lib";
TargetIdeal(f, std(ideal(x,y)));
LIB"AeCodPruebas.lib";
TargetIdeal(f, std(ideal(x,y)));
TargetIdeal(f, std(maxideal(3)));
TargetIdeal(f, std(maxideal(5)));
LIB"AeCodPruebas.lib";
basering;
AeNormal(f);
AeNormal(f,maxideal(5));
LIB"AeCodPruebas.lib";
AeNormal(f);
;
LIB"AeCodPruebas.lib";
AeNormal(f);
LIB"AeCodPruebas.lib";
AeNormal(f);
;
LIB"AeCodPruebas.lib";
AeNormal(f);
ideal f = x+x4,y2,y3+x2y;
LIB"AeCodPruebas.lib";
ideal f = x+x4,y2,y3+x2y;
AeNormal(f,maxideal(3));
AeNormal(f,maxideal(4));
AeNormal(f,maxideal(10));
AeNormal(f,maxideal(6));
def Q = MalgrRing(ideal(0),1,f);
GF;
AeNormal(f);
LIB"AeCodPruebas.lib";
AeNormal(f);
AeNormal(f,maxideal(1));
AeNormal(f,maxideal(2));
AeNormal(f,maxideal(3));
AeNormal(f,maxideal(4));
AeNormal(f,maxideal(7));
AeNormal(f,maxideal(4));
AeNormal(f,maxideal(5));
f;
def Q = MalgrRing(ideal(0),2,f);
setring Q;
GF;
Gens;
setring r;
TargetIdeal(f,std(maxideal(10)));
int k = 5;
matrix jf[2][1] = jacob(f);
print(jf);
ideal w = x+x4,y2;
kbase(std(w));
setring Q;
def f = imap(r,f);
def jf = imap(r,jf);
ideal J = x10;
setring r;
def Q = MalgrRing(ideal(0),1,f);
setring Q;
def f = imap(r,f);
setring r;
quit;
quit;
quit;
c
?
n;
n
n
n
p f
?
b
n
n
n
n
p s
n
p k
n
n
n
n
p f
n
p f
n
n
p f
n
n
p wf
n
p h
n
p m
n
n
n
n
n
n
n
n
n
p wf
n
n
n
p wf;
p s
n
n
n
p jf
p wf
p jf
n
n
n
n
n
n
n
n
p NAef
p mk
n
n
n
p mk
p jf
p wf
p GOX
p G0X
p GOX
n
p GOX
p GOY
p print(GOY)
?
p GOY
n
n
n
n
n
nn
n
n
n
n
n
n
n
n
p T
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
p T
p VAX
p R1
?
p basering
p Raux
n
n
n
n
n
n
p T
n
n
ring r = 0,(x),ds;
ideal f = x2+x4,x3;
def Q = MalgrRing(ideal(0),1,f);
GF;
basering;
GF;
reduce(x2, GF);
MalgrFormPoly(x2);
MalgrFormPoly(x2, maxideal(4));
MalgrFormPoly(x2, maxideal(2));
MalgrFormPoly(x2, maxideal(5));
MalgrFormPoly(x2, maxideal(6));
GF;
reduce(x2,GF);
x2;
X(3) - f[3];
X(3) - mappingf[3];
MalgrFormPoly(x2, maxideal(6));
LIB"AeCodPruebas.lib";
def Q = MalgrRing(ideal(0),1,f);
ring r = 0,(x,y),(dp,c);
ring r = 0,(x,y),dp;
ring R0 = changeord(list(list("(dp,c)",nvars(basering))));
ring R0 = changeord(list(list("dp,c",nvars(basering))));
ring R0 = changeord(list("(dp,c)",nvars(basering)));
n
n
p T
n
p T
n
p T
n
p T
ring r = 0,(x),ds;
LIB"ring.lib";
changeordTo(r,"(dp,c)");
changeordTo(r,"dp");
changeordTo(r,r"dp");
ring r = 0,(x),(dp,c);
basering
MalgrFormPoly(x2, maxideal(6));
LIB"AeCodPruebas.lib";
MalgrFormPoly(x2, maxideal(6));
MalgrFormPoly(x2, ideal(x,y)^4);
LIB"AeCodPruebas.lib";
MalgrFormPoly(x2, ideal(x,y)^4);
print(_);
MalgrFormPoly(x3, ideal(x,y)^4);
MalgrFormPoly(x3, ideal(x,y)^6);
MalgrFormPoly(x3, ideal(x,y)^7);
;
GF;
LIB"AeCodPruebas.lib";
ring r = 0,(x,y),ds;
ideal f = x,y2,y7+x2y;
AeNormal(f);
ideal f = x,y2,y5+x2y;
AeNormal(f);
ring r = 0,(t,x,y),ds;
ideal f = t,x,y3+t2y,(x+y)^4+t3y;
AeNormal(f);
ideal f = t,x,y4+t3y,(x+y)^3+t3y;
AeNormal(f);
ideal f = t,x,y5+t4y,(x+y)^4+t3y;
ideal f = t,x,y4+t3y,(x+y)^3+t2y;
AeNormal(f);
ideal f = t,x,y4+t3y,(x+y)^3+t2y;
AeNormal(f);
ideal f = t,x,y5+t4y,(x+y)^4+t3y;
AeNormal(f);
ideal f = t,x,y4+t3y,(x+y)^5+t4y;
AeNormal(f);
quit;
ring r = 0,(x,y),ds;
ideal f = x,y2,y3+x2y;
AeNormal(f);
LIB"AeCodPruebas.lib";
AeNormal(f);
LIB"AeCodPruebas.lib";
AeNormal(f);
ideal f = x+x4,y2,y3+x2y;
AeNormal(f);
AeNormal(f,maxideal(4));
ideal f = x+x4,y2,y3+x2y;
LIB"AeCodPruebas.lib";
AeNormal(f,maxideal(4));
LIB"AeCodPruebas.lib";
AeNormal(f,maxideal(4));
LIB"AeCodPruebas.lib";
AeNormal(f,maxideal(4));
LIB"AeCodPruebas.lib";
AeNormal(f,maxideal(4));
LIB"AeCodPruebas.lib";
LIB"AeCodPruebas.lib";
AeNormal(f,maxideal(4));
f;
LIB"AeCodPruebas.lib";
AeNormal(f,maxideal(4));
LIB"AeCodPruebas.lib";
AeNormal(f,maxideal(4));
LIB"AeCodPruebas.lib";
AeNormal(f,maxideal(4));
f;
LIB"AeCodPruebas.lib";
AeNormal(f,maxideal(4));
AeNormal(f,maxideal(6));
AeNormal(f,maxideal(10));
AeNormal(f,maxideal(20));
LIB"AeCodPruebas.lib";
AeNormal(f,maxideal(10));
LIB"AeCodPruebas.lib";
AeNormal(f,maxideal(10));
LIB"AeCodPruebas.lib";
AeNormal(f,maxideal(10));
dimX
;
LIB"AeCodPruebas.lib";
AeNormal(f,maxideal(10));
AeNormal(f,maxideal(10));
LIB"AeCodPruebas.lib";
AeNormal(f,maxideal(10));
LIB"AeCodPruebas.lib";
AeNormal(f,maxideal(10));
AeNormal(f,maxideal(20));
LIB"AeCodPruebas.lib";
AeNormal(f,maxideal(20));
f;
ideal g = x,xy+y^6+y^9;
AeNormal(g,maxideal(20));
AeNormal(g,maxideal(10));
AeNormal(g,maxideal(12));
AeNormal(f,maxideal(12));
AeNormal(f);
AeNormal(g);
AeNormal(g,maxideal(12));
AeNormal(g,maxideal(20));
AeNormal(g);
AeNormal(g,maxideal(50));
ring r = 0,(x,y),ds;
ring R = 0,(X,Y),ds;
setring r;
map Rr = R,x2,y3;
ideal J = maxideal(20);
setring R;
preimage(r,Rr,J);
setring r;
ideal J = maxideal(50);
setring R;
ideal J = maxideal(50);
preimage(r,Rr,J);
setring r;
ideal J = maxideal(100);
setring R;
preimage(r,Rr,J);
setring r;
map f = R,x2+y3,y5+x7;
J = maxideal(20);
setring R;
preimage(r,f,J);

View File

@ -123,12 +123,15 @@ proc AeNormal(ideal f, list #)
int n = nvars(basering);
int p = ncols(f);
int s = size(#);
/*
if (s > 0)
{
int k = TargetIdeal(f,std(#[1]));
}
*/
def Raux = MalgrRing(ideal(0),n,ideal(f[1..n]));
@ -141,11 +144,12 @@ proc AeNormal(ideal f, list #)
execute("def f = imap("+RName+",f)");
execute("def jf = imap("+RName+",jf)");
if (s > 0)
{
execute("def # = imap("+RName+",#)");
}
module wf = freemodule(p);
int m = ncols(Gens);
@ -161,10 +165,12 @@ proc AeNormal(ideal f, list #)
}
}
/*
if (s>0)
{
wf = wf + freemodule(p)*(f^k);
}
*/
/*
if (size(#)>0)
@ -247,9 +253,11 @@ proc TargetIdeal(ideal f, ideal J)
int done = 0;
int k = 1;
ideal auxf = 1;
J = std(J);
while (done == 0)
{
auxf = auxf*f;
@ -287,14 +295,19 @@ proc GenerateOYModule(matrix GOX, matrix GOY, list #)
int i;
int j;
int s = size(#);
int k = 0;
if (s > 0)
{
k = TargetIdeal(mappingf, #[1]);
}
int m = ncols(Gens);
int ny = ncols(GOY);
int nx = ncols(GOX);
int a = nrows(GOY);
module M = 0; // This will be module with the same generators but over O_n
matrix col[a][1] = 0; // Auxiliar variable to store the particular vector to be transformed at each step
@ -327,6 +340,11 @@ proc GenerateOYModule(matrix GOX, matrix GOY, list #)
}
}
if (s > 0)
{
M = M + (X(1..dimX)^k)*freemodule(m*a);
}
return(M);
}
@ -403,9 +421,12 @@ proc MalgrRing(ideal J, int n, ideal f)
ideal mappingf = f;
export(mappingf);
int dimX = n;
export(dimX);
int dimX = n;
option(noredefine);
export(dimX);
option(redefine);
return(R2);
}

View File

@ -65,4 +65,6 @@ If $f(x)=x + x^3$, there is no solution for (3) with polynomial unit.
- In all rings generated: change ordering to (dp/ds,c/C)
- Change the use of the maximal ideal so that it works modulo a power in the target already.
- Change the use of the maximal ideal so that it works modulo a power in the target already.
- Do a baby example of why the implementation of the modulo power in the target is not working (try crosscap or Hiroshi example).