diff --git a/.singularhistory b/.singularhistory index 387b5bc..f567832 100644 --- a/.singularhistory +++ b/.singularhistory @@ -45,3 +45,184 @@ LIB"AeCodPruebas.lib"; ring r = 0,(x,y),ds; ideal f = x,y2,y3+x2y; TargetIdeal(f, std(ideal(x,y))); +LIB"AeCodPruebas.lib"; +ring r = 0,(x),ds; +ideal f = x2+x4,x3; +AeNormal(f); +AeNormal(f,maxideal(5)); +AeNormal(f,maxideal(4)); +AeNormal(f,maxideal(10)); +AeNormal(f,maxideal(6)); +def Q = MalgrRing(ideal(0),1,f); +GF; +setring Q; +GF; +Gens; +setring r; +TargetIdeal(f,std(maxideal(10))); +int k = 5; +matrix jf[2][1] = jacob(f); +print(jf); +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); +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 +; diff --git a/AeCodPruebas.lib b/AeCodPruebas.lib index b63cb69..faf67b8 100644 --- a/AeCodPruebas.lib +++ b/AeCodPruebas.lib @@ -166,10 +166,12 @@ proc AeNormal(ideal f, list #) wf = wf + freemodule(p)*(f^k); } + /* if (size(#)>0) { jf = jf + #[1]*freemodule(p); } + */ module NAef = NormalOYModule(jf, wf, #); execute("setring(" + RName + ")"); @@ -350,6 +352,7 @@ proc MalgrRing(ideal J, int n, ideal f) // Create a ring with generators as variables and target variables. + ring R0 = changeord(list(list("dp",nvars(basering)))); // Change ordering of basering to global. In local, computations fail since one of the generators of Gens is always a constant. // ¿To Do: let user choose the local ordering? @@ -358,7 +361,7 @@ proc MalgrRing(ideal J, int n, ideal f) setring R1; string vaX="X("; - def R2=extendring(p, vaX,"lp",1); // Add X variables so that X(j) corresponds to the j-th component of f. + def R2=extendring(p, vaX,"dp",1); // Add X variables so that X(j) corresponds to the j-th component of f. setring R2; // Bring necessary information from source ring diff --git a/checklist.md b/checklist.md index 33c536c..2dc682e 100644 --- a/checklist.md +++ b/checklist.md @@ -61,4 +61,8 @@ If $f(x)=x + x^3$, there is no solution for (3) with polynomial unit. - Verify that if the local-global basis is the same then the algorithm: 1. Finishes 2. It finishes correctly - 3. If it does not, it gives an upper bound \ No newline at end of file + 3. If it does not, it gives an upper bound + +- 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. \ No newline at end of file diff --git a/ejemplo.c b/ejemplo.c new file mode 100644 index 0000000..1d1a765 --- /dev/null +++ b/ejemplo.c @@ -0,0 +1,9 @@ +LIB "AeCodPruebas.lib"; + +ring r = 0,(x),(c,ds); +ideal f = x2+x4,x3; + +breakpoint(NormalOYModule); +AeNormal(f,maxideal(10)); + +quit; \ No newline at end of file