forked from nbreva/AeCodimension
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4968507824 | |||
| 46145a40ee | |||
| 6c7682073d | |||
|
|
8d435326a9 | ||
|
|
34d6393207 | ||
|
|
af26d3cb59 | ||
|
|
06957fc5fe | ||
|
|
09ec067dc0 | ||
|
|
363ed7f644 | ||
|
|
edec7c9b39 | ||
|
|
04028fb3df | ||
|
|
dd2cbef15e |
228
.singularhistory
228
.singularhistory
@ -1,228 +0,0 @@
|
||||
ring r = 0,(x,y),ds;
|
||||
ideal f = x,xy+y6+y9;
|
||||
kbase(std(f));
|
||||
ring s = 0,(x,y),dp;
|
||||
ideal f = x,xy+y6+y9
|
||||
;
|
||||
kbase(std(f));
|
||||
ideal f = x,xy+y6+y8+y9;
|
||||
kbase(std(f));
|
||||
setring r;
|
||||
f = imap(s,f);
|
||||
f;
|
||||
kbase(std(f));
|
||||
quit;
|
||||
LIB"AeCodPruebas.lib";
|
||||
ring r = 0,(x,y),ds;
|
||||
ideal f = x,y2,y3+x2y;
|
||||
def Q = MalgrRing(ideal(0),2,f);
|
||||
setring Q;
|
||||
TargetIdeal(ideal(x,y));
|
||||
LIB"AeCodPruebas.lib";
|
||||
TargetIdeal(ideal(x,y));
|
||||
LIB"AeCodPruebas.lib";
|
||||
TargetIdeal(ideal(x,y));
|
||||
LIB"AeCodPruebas.lib";
|
||||
TargetIdeal(ideal(x,y));
|
||||
LIB"AeCodPruebas.lib";
|
||||
TargetIdeal(ideal(x,y));
|
||||
LIB"AeCodPruebas.lib";
|
||||
TargetIdeal(ideal(x,y));
|
||||
LIB"AeCodPruebas.lib";
|
||||
TargetIdeal(ideal(x,y));
|
||||
LIB"AeCodPruebas.lib";
|
||||
TargetIdeal(ideal(x,y));
|
||||
LIB"AeCodPruebas.lib";
|
||||
TargetIdeal(ideal(x,y));
|
||||
ring r = 0,(x,y),ds;
|
||||
ideal f = x,y2,y3+x2y;
|
||||
LIB"AeCodPruebas.lib";
|
||||
TargetIdeal(f, ideal(x,y));
|
||||
TargetIdeal(f, std(ideal(x,y)));
|
||||
LIB"AeCodPruebas.lib";
|
||||
TargetIdeal(f, std(ideal(x,y)));
|
||||
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
|
||||
;
|
||||
5
.vscode/settings.json
vendored
5
.vscode/settings.json
vendored
@ -1,3 +1,6 @@
|
||||
{
|
||||
"C_Cpp.errorSquiggles": "disabled"
|
||||
"C_Cpp.errorSquiggles": "disabled",
|
||||
"files.associations": {
|
||||
"*.lib": "cpp"
|
||||
}
|
||||
}
|
||||
463
AeCodPruebas.lib
463
AeCodPruebas.lib
@ -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)
|
||||
@ -180,6 +186,125 @@ proc AeNormal(ideal f, list #)
|
||||
return(NAef);
|
||||
}
|
||||
|
||||
|
||||
|
||||
proc AeDeterminacyTestDP(ideal f)
|
||||
{
|
||||
/*
|
||||
f: Cn -> Cp is a map-germ with p >= n
|
||||
*/
|
||||
|
||||
int i;
|
||||
|
||||
int n = nvars(basering);
|
||||
int p = ncols(f);
|
||||
|
||||
matrix jf[p][n] = jacob(f);
|
||||
module tkef = module(jf) + f*freemodule(p);
|
||||
tkef = std(tkef);
|
||||
int tkemax = 0;
|
||||
module tkefmodk = tkef + maxideal(tkemax + 1)*freemodule(p);
|
||||
tkefmodk = std(tkefmodk);
|
||||
module freemax = freemodule(p);
|
||||
module auxtke = reduce(freemax, tkefmodk);
|
||||
|
||||
while (size(auxtke) != 0)
|
||||
{
|
||||
tkemax++;
|
||||
freemax = maxideal(tkemax)*freemodule(p);
|
||||
tkefmodk = tkef + maxideal(tkemax + 1)*freemodule(p);
|
||||
auxtke = reduce(freemax, std(tkefmodk));
|
||||
}
|
||||
// tkemax; //
|
||||
def Raux = MalgrRing(ideal(0),n,ideal(f[1..n]));
|
||||
|
||||
string RName=nameof(basering);
|
||||
|
||||
setring Raux;
|
||||
|
||||
execute("def f = imap("+RName+",f)");
|
||||
execute("def jf = imap("+RName+",jf)");
|
||||
|
||||
|
||||
module wf = freemodule(p);
|
||||
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;//
|
||||
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;//
|
||||
}
|
||||
}
|
||||
|
||||
int bool_maxi_contained = 0;
|
||||
int maxi_power = 0;
|
||||
module mktheta = freemodule(p);
|
||||
module mk1theta = (mappingf^tkemax)*freemodule(p);
|
||||
//module TAef = GenerateOYModule(jf, wf, #);
|
||||
module TAef;
|
||||
module Tmktheta;
|
||||
module Tmk1theta;
|
||||
module auxmod;
|
||||
module TAefmodmk1;
|
||||
|
||||
while (bool_maxi_contained == 0)
|
||||
{
|
||||
maxi_power; //
|
||||
mktheta = freemodule(p)*(maxOX^maxi_power);
|
||||
mk1theta = freemodule(p)*(maxOX^(maxi_power+tkemax));
|
||||
|
||||
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;//
|
||||
|
||||
//TAefmodmk1 = std(Tmk1theta + TAef);
|
||||
TAefmodmk1 = std(TAef);
|
||||
|
||||
|
||||
i = 1;
|
||||
|
||||
//Tmk1theta;
|
||||
|
||||
bool_maxi_contained = 1;
|
||||
|
||||
while (bool_maxi_contained == 1 && i <= size(Tmktheta))
|
||||
{
|
||||
if (reduce(Tmktheta[i], TAefmodmk1) != 0)
|
||||
{
|
||||
bool_maxi_contained = 0;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
if (bool_maxi_contained == 0)
|
||||
{
|
||||
maxi_power = maxi_power + 1;
|
||||
}
|
||||
}
|
||||
/*
|
||||
int maxi_power = 1;
|
||||
ideal mpfmax = std(mappingf^maxi_power_target);
|
||||
|
||||
while (size(reduce(maxOX^maxi_power, mpfmax))!=0)
|
||||
{
|
||||
maxi_power = maxi_power +1;
|
||||
}
|
||||
*/
|
||||
|
||||
return(maxi_power+tkemax);
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
proc NormalOYModule(matrix GOX, matrix GOY, list #)
|
||||
@ -203,6 +328,15 @@ proc NormalOYModule(matrix GOX, matrix GOY, list #)
|
||||
int m = ncols(Gens);
|
||||
module T = GenerateOYModule(GOX, GOY, #);
|
||||
//basering;//
|
||||
|
||||
/*
|
||||
for (i=1; i<= ncols(T); i++)
|
||||
{
|
||||
print(MalgrFormToOX(VectorToMatrix(T[i], a, m)));
|
||||
"---";
|
||||
//print("NOX = "); print(NOX); //
|
||||
}
|
||||
*/
|
||||
|
||||
int nx = nvars(basering) - p;
|
||||
|
||||
@ -210,28 +344,39 @@ proc NormalOYModule(matrix GOX, matrix GOY, list #)
|
||||
|
||||
for (i=1; i<= nx; i++)
|
||||
{
|
||||
V = V + ideal(var(i));
|
||||
V = V + ideal(var(p+i));
|
||||
}
|
||||
|
||||
//print(V);//
|
||||
|
||||
//T;//
|
||||
T = T + freemodule(a*m) * V; // This should be done by switching to a new ring with only X(1..p)
|
||||
//print(T);
|
||||
T = std(T);
|
||||
|
||||
module N = kbase(std(T));
|
||||
int CodimT = ncols(N);
|
||||
int CodimT = vdim(T);
|
||||
|
||||
//print("vector N[1] ="); VectorToMatrix(N[1],a,m);//
|
||||
|
||||
def NOX = MalgrFormToOX(VectorToMatrix(N[1], a, m));
|
||||
|
||||
//print("NOX = "); print(NOX); //
|
||||
|
||||
for (i=2; i<= CodimT; i++)
|
||||
if (CodimT >-1)
|
||||
{
|
||||
NOX = concat(NOX,MalgrFormToOX(VectorToMatrix(N[i], a, m)));
|
||||
//print("NOX = "); print(NOX); //
|
||||
}
|
||||
module N = kbase(T);
|
||||
|
||||
return(NOX);
|
||||
//print("vector N[1] ="); VectorToMatrix(N[1],a,m);//
|
||||
|
||||
def NOX = MalgrFormToOX(VectorToMatrix(N[1], a, m));
|
||||
|
||||
//print("NOX = "); print(NOX); //
|
||||
|
||||
for (i=2; i<= CodimT; i++)
|
||||
{
|
||||
NOX = concat(NOX,MalgrFormToOX(VectorToMatrix(N[i], a, m)));
|
||||
//print("NOX = "); print(NOX); //
|
||||
}
|
||||
|
||||
return(NOX);
|
||||
}
|
||||
else
|
||||
{
|
||||
return(-1);
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
@ -247,12 +392,14 @@ proc TargetIdeal(ideal f, ideal J)
|
||||
|
||||
int done = 0;
|
||||
int k = 1;
|
||||
|
||||
|
||||
ideal auxf = 1;
|
||||
|
||||
J = std(J);
|
||||
|
||||
while (done == 0)
|
||||
{
|
||||
auxf = auxf*f;
|
||||
auxf = auxf*f; /// Change to last thing in the loop so that auxf can also be 1 (only if J = 1 but still a case)
|
||||
if (size(reduce(auxf,J,1)) == 0)
|
||||
{
|
||||
done = 1;
|
||||
@ -287,13 +434,27 @@ 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);
|
||||
|
||||
|
||||
if (size(module(GOY)) != 0)
|
||||
{
|
||||
int a = nrows(GOY);
|
||||
}
|
||||
else
|
||||
{
|
||||
int a = nrows(GOX);
|
||||
}
|
||||
|
||||
module M = 0; // This will be module with the same generators but over O_n
|
||||
|
||||
@ -304,10 +465,29 @@ proc GenerateOYModule(matrix GOX, matrix GOY, list #)
|
||||
|
||||
// Convert GOY to an O_n - module
|
||||
|
||||
int flag_unit = 0;
|
||||
matrix auxcol;
|
||||
|
||||
for (i=1; i<= ny; i++)
|
||||
{
|
||||
col = submat(GOY,intvec(1..a),intvec(i)); // Pick the next generator in GOY
|
||||
M = M + MatrixToVector(MalgrFormVect(col, #)); // Convert to GOX
|
||||
if (GOY[i]!=0)
|
||||
{
|
||||
col = submat(GOY,intvec(1..a),intvec(i)); // Pick the next generator in GOY
|
||||
if (s>0)
|
||||
{
|
||||
M = M + MatrixToVector(MalgrFormVect(col, #[1])); // Convert to GOX
|
||||
}
|
||||
else
|
||||
{
|
||||
auxcol = MalgrFormVect(col);
|
||||
M = M + MatrixToVector(auxcol); // Convert to GOX
|
||||
if (MalgrFormToOX(auxcol) != col and flag_unit == 0)
|
||||
{
|
||||
print("Warning: a unit has been used for the MalgrForm of the target module. Computations might not be accurate.");
|
||||
flag_unit = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Convert GOX to an O_n -module
|
||||
@ -320,13 +500,30 @@ proc GenerateOYModule(matrix GOX, matrix GOY, list #)
|
||||
|
||||
for (i=1; i <= nx; i++)
|
||||
{
|
||||
col = submat(GOX,intvec(1..a),intvec(i)); // Pick the next generator in GOX
|
||||
for (j=1; j<= m; j++)
|
||||
if (GOX[i]!=0)
|
||||
{
|
||||
M = M + MatrixToVector(MalgrFormVect(Gens[j]*col, #)); // Compute each product of col times an element of Gens
|
||||
col = submat(GOX,intvec(1..a),intvec(i)); // Pick the next generator in GOX
|
||||
for (j=1; j<= m; j++)
|
||||
{
|
||||
if (s>0)
|
||||
{
|
||||
M = M + MatrixToVector(MalgrFormVect(Gens[j]*col, #[1])); // Convert to GOX
|
||||
}
|
||||
else
|
||||
{
|
||||
M = M + MatrixToVector(MalgrFormVect(Gens[j]*col));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
if (s > 0)
|
||||
{
|
||||
M = M + (ideal(X(1..dimX))^k)*freemodule(m*a);
|
||||
}
|
||||
//(ideal(X(1..dimX))^k)*freemodule(m*a);;//
|
||||
*/
|
||||
return(M);
|
||||
}
|
||||
|
||||
@ -350,18 +547,23 @@ proc MalgrRing(ideal J, int n, ideal f)
|
||||
ideal Gens = kbase(std(w+J)); // This is the set of generators of O_X as O_n-module.
|
||||
int nGens = ncols(Gens);
|
||||
|
||||
ideal maxOX = maxideal(1); // pick maximal ideal from source in case we need to work modulo something
|
||||
|
||||
|
||||
// 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.
|
||||
ring R0 = changeord(list(list("ds",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?
|
||||
|
||||
|
||||
/*
|
||||
string vaG ="G(";
|
||||
def R1=extendring(nGens,vaG,"dp",1); // Add G variables so that G(i) corresponds to the i-th generator of Gens.
|
||||
setring R1;
|
||||
|
||||
*/
|
||||
|
||||
string vaX="X(";
|
||||
def R2=extendring(p, vaX,"dp",1); // Add X variables so that X(j) corresponds to the j-th component of f.
|
||||
def R2=extendring(p, vaX,"ds"); // Add X variables so that X(j) corresponds to the j-th component of f.
|
||||
setring R2;
|
||||
|
||||
// Bring necessary information from source ring
|
||||
@ -369,16 +571,19 @@ proc MalgrRing(ideal J, int n, ideal f)
|
||||
execute("def Gens=imap("+RName+",Gens)");
|
||||
execute("def f=imap("+RName+",f)");
|
||||
execute("def J=imap("+RName+",J)");
|
||||
execute("def maxOX=imap("+RName+",maxOX)");
|
||||
|
||||
// Create auxiliar ideal for Malgrange procedures
|
||||
|
||||
ideal G;
|
||||
ideal W;
|
||||
|
||||
/*
|
||||
for(i = 1; i<=nGens; i++)
|
||||
{
|
||||
G = G + ideal(Gens[i]- G(i)); // Make G(i) correspond to Gens[i]
|
||||
}
|
||||
*/
|
||||
|
||||
for(i = 1; i<= n; i++)
|
||||
{
|
||||
@ -400,12 +605,16 @@ proc MalgrRing(ideal J, int n, ideal f)
|
||||
export(GF);
|
||||
export(Gens);
|
||||
export(J);
|
||||
export(maxOX);
|
||||
|
||||
ideal mappingf = f;
|
||||
export(mappingf);
|
||||
int dimX = n;
|
||||
export(dimX);
|
||||
|
||||
int dimX = n;
|
||||
option(noredefine);
|
||||
export(dimX);
|
||||
option(redefine);
|
||||
|
||||
return(R2);
|
||||
}
|
||||
|
||||
@ -426,14 +635,25 @@ proc MalgrFormPoly(poly h, list #)
|
||||
*/
|
||||
|
||||
int i;
|
||||
|
||||
int j;
|
||||
int s = size(#);
|
||||
// Prepare the ideal that reduces to the Malgrange Normal Form
|
||||
|
||||
ideal K = GF; // Save the GF ideal to a new variable since we are going to possibly modify it.
|
||||
|
||||
int maxibound = -1; // Power of max ideal contained in #: it will stay as -1 if # is empty
|
||||
|
||||
if (size(#)> 0)
|
||||
if (s > 0)
|
||||
{
|
||||
K = std(#[1]+GF); // Work modulo an ideal, if requested.
|
||||
K = std(#[1] + GF); // Work modulo an ideal, if requested.
|
||||
|
||||
ideal determinacyIdeal = std(#[1]);
|
||||
maxibound = 1;
|
||||
while(size(reduce(maxOX^(maxibound),determinacyIdeal)) != 0){
|
||||
// Compute power of maximal ideal contained in #.
|
||||
// To Do: Can this be done more efficiently?
|
||||
maxibound++;
|
||||
}
|
||||
}
|
||||
|
||||
for (i=dimX+1; i <= size(mappingf); i++)
|
||||
@ -446,22 +666,52 @@ proc MalgrFormPoly(poly h, list #)
|
||||
|
||||
// Compute the Malgrange Normal Form of the requested polynomial
|
||||
|
||||
poly hr = reduce(h,K); // Obtain Malgrange form as a sum. This should be a polynomial only in X's and G's,
|
||||
// and the G's should only appear as linear variables times polys in X.
|
||||
poly hr;
|
||||
|
||||
if (s > 0)
|
||||
{
|
||||
option(redSB);
|
||||
option(redTail);
|
||||
option(redThrough);
|
||||
hr = system("reduce_bound", h, K, maxibound);
|
||||
}
|
||||
else
|
||||
{
|
||||
option(redTail);
|
||||
option(redThrough);
|
||||
hr = reduce(h,K); // Obtain Malgrange form as a sum. This should be a polynomial only in X's and
|
||||
// the elements of Gens in "linear" form
|
||||
}
|
||||
|
||||
poly c;
|
||||
int nGens = ncols(Gens);
|
||||
|
||||
// Convert the Malgrange Normal Form of the polynomial to row matrix form.
|
||||
|
||||
/*
|
||||
Since the G's are only linear in hr, they determine a vector with
|
||||
coefficients only in the X's (one coefficient for each G(i)).
|
||||
We only need to extract these coefficients and add them to the corresponding component in v.
|
||||
Now we get the coefficients corresponding to each element of Gens and put them in vector form
|
||||
*/
|
||||
|
||||
poly prod = 1;
|
||||
for(i=1; i<=size(maxOX); i++){
|
||||
prod = prod * maxOX[i];
|
||||
}
|
||||
|
||||
matrix cofh = coef(hr,prod);
|
||||
|
||||
matrix v[1][nGens] = 0;
|
||||
|
||||
for(i=1; i<=nGens; i++){
|
||||
|
||||
for(j=1;j<=ncols(cofh);j++)
|
||||
{
|
||||
if(Gens[i] == cofh[1,j]){
|
||||
v[1,i] = cofh[2,j];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ----------OLD--------------
|
||||
for (i=1; i<= nGens-1; i++)
|
||||
{
|
||||
c = hr - subst(hr,G(i),0); // This is the coefficient of G(i) in hr
|
||||
@ -473,6 +723,19 @@ proc MalgrFormPoly(poly h, list #)
|
||||
// hence it does not appear in the Malgrange Normal Form.
|
||||
// Since its coefficient is the remaining part of the previous loop, we add it manually.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
matrix check = MalgrFormToOX(v);
|
||||
|
||||
if (s == 0)
|
||||
{
|
||||
if (check[1,1] - h != 0)
|
||||
{
|
||||
print("Some conversions use a unit. Answer might not be accurate");
|
||||
}
|
||||
}
|
||||
|
||||
return(v);
|
||||
}
|
||||
|
||||
@ -489,10 +752,128 @@ proc MalgrFormVect(matrix v, list #)
|
||||
|
||||
# is an optional ideal so that computations are made modulo this ideal.
|
||||
*/
|
||||
|
||||
int i;
|
||||
int j;
|
||||
int k;
|
||||
|
||||
int s = size(#);
|
||||
int nGens = size(Gens);
|
||||
int a = nrows(v);
|
||||
|
||||
int i;
|
||||
ideal K = GF; // Save the GF ideal to a new variable since we are going to possibly modify it.
|
||||
|
||||
int maxibound = -1; // Power of max ideal contained in #: it will stay as -1 if # is empty
|
||||
|
||||
if (s > 0)
|
||||
{
|
||||
// Work modulo an ideal, if requested.
|
||||
|
||||
ideal determinacyIdeal = std(#[1]);
|
||||
K = std(determinacyIdeal + GF);
|
||||
|
||||
maxibound = 1;
|
||||
while(size(reduce(maxOX^(maxibound),determinacyIdeal)) != 0){
|
||||
// Compute power of maximal ideal contained in #.
|
||||
// To Do: Can this be done more efficiently?
|
||||
maxibound++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ideal determinacyIdeal = std(0);
|
||||
}
|
||||
|
||||
for (i=dimX+1; i <= size(mappingf); i++)
|
||||
{
|
||||
K = K + ideal(X(i) - reduce(mappingf[i], K)); // Assign the components of f which do not give the finite mapping to variables in the target, if p > n.
|
||||
}
|
||||
|
||||
/* Caution: We do not compute again a standard basis of K since this would be equivalent to computing
|
||||
the polynomial of the image when p > n and this is too computationally expensive. */
|
||||
|
||||
module rv = v;
|
||||
module wv;
|
||||
module W;
|
||||
|
||||
int D = 0;
|
||||
|
||||
option(redSB);
|
||||
option(redTail);
|
||||
option(redThrough);
|
||||
|
||||
|
||||
//"v=";v; //
|
||||
|
||||
//"determinacyIdeal=";determinacyIdeal; //
|
||||
|
||||
while (reduce(rv, determinacyIdeal)[1] != 0)
|
||||
{
|
||||
//"rv=";rv;//
|
||||
D++;
|
||||
wv = system("reduce_bound", module(rv), K*freemodule(a), D);
|
||||
W = wv[1]+W[1];
|
||||
/*
|
||||
"D=";D;//
|
||||
"wv=";wv;//
|
||||
"W=";W;//
|
||||
*/
|
||||
for (i=1; i<= dimX; i++)
|
||||
{
|
||||
wv = module(subst(matrix(wv), X(i), mappingf[i]));
|
||||
}
|
||||
//"wv en OX=";wv;//
|
||||
|
||||
rv = rv[1] - wv[1];
|
||||
//"reduccion = ";reduce(rv, determinacyIdeal)[1]; //
|
||||
}
|
||||
|
||||
/*
|
||||
if (s > 0)
|
||||
{
|
||||
option(redSB);
|
||||
option(redTail);
|
||||
option(redThrough);
|
||||
rv = system("reduce_bound", module(v), K*freemodule(a), maxibound);
|
||||
}
|
||||
else
|
||||
{
|
||||
option(redTail);
|
||||
option(redThrough);
|
||||
rv = reduce(v,K); // Obtain Malgrange form as a sum. This should be a polynomial only in X's and
|
||||
// the elements of Gens in "linear" form
|
||||
}
|
||||
*/
|
||||
|
||||
poly prod = 1;
|
||||
for(i=1; i<=size(maxOX); i++){
|
||||
prod = prod * maxOX[i];
|
||||
}
|
||||
|
||||
matrix malgrv[a][nGens];
|
||||
matrix cofv;
|
||||
|
||||
//rv;//
|
||||
|
||||
for(i=1; i<= a; i++)
|
||||
{
|
||||
cofv = coef(W[1][i],prod);
|
||||
//cofv;//
|
||||
|
||||
for(j=1; j<=nGens; j++)
|
||||
{
|
||||
for(k=1;k<=ncols(cofv);k++)
|
||||
{
|
||||
if(Gens[j] == cofv[1,k]){
|
||||
malgrv[i,j] = cofv[2,k];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return(malgrv);
|
||||
|
||||
/* -------- OLD ---------
|
||||
|
||||
def m = MalgrFormPoly(v[1,1], #); // We need to manually compute the first component outside of the loop
|
||||
// so that the first row of the matrix already has the correct information
|
||||
@ -504,8 +885,12 @@ proc MalgrFormVect(matrix v, list #)
|
||||
}
|
||||
|
||||
return(m);
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
proc MatrixToVector(matrix M)
|
||||
|
||||
47
TeoriaAeCod/AeCod.aux
Executable file
47
TeoriaAeCod/AeCod.aux
Executable file
@ -0,0 +1,47 @@
|
||||
\relax
|
||||
\providecommand\hyper@newdestlabel[2]{}
|
||||
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
|
||||
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
|
||||
\global\let\oldcontentsline\contentsline
|
||||
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
|
||||
\global\let\oldnewlabel\newlabel
|
||||
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
|
||||
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
|
||||
\AtEndDocument{\ifx\hyper@anchor\@undefined
|
||||
\let\contentsline\oldcontentsline
|
||||
\let\newlabel\oldnewlabel
|
||||
\fi}
|
||||
\fi}
|
||||
\global\let\hyper@last\relax
|
||||
\gdef\HyperFirstAtBeginDocument#1{#1}
|
||||
\providecommand\HyField@AuxAddToFields[1]{}
|
||||
\providecommand\HyField@AuxAddToCoFields[2]{}
|
||||
\@writefile{toc}{\contentsline {section}{\tocsection {}{1}{Theoretical framework}}{1}{section.1}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{1.1}{The $\mathcal A_e$-tangent over the target}}{1}{subsection.1.1}\protected@file@percent }
|
||||
\newlabel{propGeneratorsOfTA}{{1.2}{2}{}{thm.1.2}{}}
|
||||
\newlabel{remAlpha}{{1.3}{2}{}{thm.1.3}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{1.2}{The $\mathcal A_e$-codimension}}{2}{subsection.1.2}\protected@file@percent }
|
||||
\newlabel{remLessCalculations}{{1.4}{2}{}{thm.1.4}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{1.3}{Computing $\mathcal A_e$-codimension by approximations}}{2}{subsection.1.3}\protected@file@percent }
|
||||
\newlabel{defFiltration}{{1.5}{3}{}{thm.1.5}{}}
|
||||
\newlabel{remFiltrationConditions}{{1.6}{3}{}{thm.1.6}{}}
|
||||
\newlabel{secComputationalMethod}{{1.4}{4}{The computation method}{subsection.1.4}{}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{1.4}{The computation method}}{4}{subsection.1.4}\protected@file@percent }
|
||||
\newlabel{remDr}{{1.10}{4}{}{thm.1.10}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\tocsection {}{2}{The algorithm}}{4}{section.2}\protected@file@percent }
|
||||
\newlabel{ItemLoop}{{2}{5}{The algorithm}{Item.13}{}}
|
||||
\newlabel{refItemElseFor}{{3}{5}{The algorithm}{Item.14}{}}
|
||||
\newlabel{refItemFor}{{3a}{5}{The algorithm}{Item.15}{}}
|
||||
\newlabel{remEfficiency}{{2.1}{6}{}{thm.2.1}{}}
|
||||
\newlabel{remEfficientQuotients}{{2.2}{6}{}{thm.2.2}{}}
|
||||
\@writefile{toc}{\contentsline {section}{\tocsection {}{3}{Filtration choices and their associated approximations}}{6}{section.3}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{3.1}{The target-degree filtration}}{7}{subsection.3.1}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{3.2}{The source-degree filtration}}{7}{subsection.3.2}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\tocsection {}{4}{Procedures}}{7}{section.4}\protected@file@percent }
|
||||
\newlabel{tocindent-1}{0pt}
|
||||
\newlabel{tocindent0}{0pt}
|
||||
\newlabel{tocindent1}{19.35791pt}
|
||||
\newlabel{tocindent2}{31.97072pt}
|
||||
\newlabel{tocindent3}{0pt}
|
||||
\@writefile{toc}{\contentsline {section}{\tocsection {}{5}{To do list}}{8}{section.5}\protected@file@percent }
|
||||
\gdef \@abspage@last{8}
|
||||
520
TeoriaAeCod/AeCod.log
Executable file
520
TeoriaAeCod/AeCod.log
Executable file
@ -0,0 +1,520 @@
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021) (preloaded format=pdflatex 2021.12.22) 7 JUL 2025 17:04
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
file:line:error style messages enabled.
|
||||
%&-line parsing enabled.
|
||||
**AeCod.tex
|
||||
(./AeCod.tex
|
||||
LaTeX2e <2020-10-01> patch level 4
|
||||
L3 programming layer <2021-02-18>
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/amscls/amsart.cls
|
||||
Document Class: amsart 2020/05/29 v2.20.6
|
||||
\linespacing=\dimen138
|
||||
\normalparindent=\dimen139
|
||||
\normaltopskip=\skip47
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/amsmath/amsmath.sty
|
||||
Package: amsmath 2020/09/23 v2.17i AMS math features
|
||||
\@mathmargin=\skip48
|
||||
|
||||
For additional information on amsmath, use the `?' option.
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/amsmath/amstext.sty
|
||||
Package: amstext 2000/06/29 v2.01 AMS text
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/amsmath/amsgen.sty
|
||||
File: amsgen.sty 1999/11/30 v2.0 generic functions
|
||||
\@emptytoks=\toks15
|
||||
\ex@=\dimen140
|
||||
))
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/amsmath/amsbsy.sty
|
||||
Package: amsbsy 1999/11/29 v1.2d Bold Symbols
|
||||
\pmbraise@=\dimen141
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/amsmath/amsopn.sty
|
||||
Package: amsopn 2016/03/08 v2.02 operator names
|
||||
)
|
||||
\inf@bad=\count179
|
||||
LaTeX Info: Redefining \frac on input line 234.
|
||||
\uproot@=\count180
|
||||
\leftroot@=\count181
|
||||
LaTeX Info: Redefining \overline on input line 399.
|
||||
\classnum@=\count182
|
||||
\DOTSCASE@=\count183
|
||||
LaTeX Info: Redefining \ldots on input line 496.
|
||||
LaTeX Info: Redefining \dots on input line 499.
|
||||
LaTeX Info: Redefining \cdots on input line 620.
|
||||
\Mathstrutbox@=\box47
|
||||
\strutbox@=\box48
|
||||
\big@size=\dimen142
|
||||
LaTeX Font Info: Redeclaring font encoding OML on input line 743.
|
||||
LaTeX Font Info: Redeclaring font encoding OMS on input line 744.
|
||||
\macc@depth=\count184
|
||||
\c@MaxMatrixCols=\count185
|
||||
\dotsspace@=\muskip16
|
||||
\c@parentequation=\count186
|
||||
\dspbrk@lvl=\count187
|
||||
\tag@help=\toks16
|
||||
\row@=\count188
|
||||
\column@=\count189
|
||||
\maxfields@=\count190
|
||||
\andhelp@=\toks17
|
||||
\eqnshift@=\dimen143
|
||||
\alignsep@=\dimen144
|
||||
\tagshift@=\dimen145
|
||||
\tagwidth@=\dimen146
|
||||
\totwidth@=\dimen147
|
||||
\lineht@=\dimen148
|
||||
\@envbody=\toks18
|
||||
\multlinegap=\skip49
|
||||
\multlinetaggap=\skip50
|
||||
\mathdisplay@stack=\toks19
|
||||
LaTeX Info: Redefining \[ on input line 2923.
|
||||
LaTeX Info: Redefining \] on input line 2924.
|
||||
)
|
||||
LaTeX Font Info: Trying to load font information for U+msa on input line 397
|
||||
.
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/amsfonts/umsa.fd
|
||||
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/amsfonts/amsfonts.sty
|
||||
Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
|
||||
\symAMSa=\mathgroup4
|
||||
\symAMSb=\mathgroup5
|
||||
LaTeX Font Info: Redeclaring math symbol \hbar on input line 98.
|
||||
LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
|
||||
(Font) U/euf/m/n --> U/euf/b/n on input line 106.
|
||||
)
|
||||
\copyins=\insert199
|
||||
\abstractbox=\box49
|
||||
\listisep=\skip51
|
||||
\c@part=\count191
|
||||
\c@section=\count192
|
||||
\c@subsection=\count193
|
||||
\c@subsubsection=\count194
|
||||
\c@paragraph=\count195
|
||||
\c@subparagraph=\count196
|
||||
\c@figure=\count197
|
||||
\c@table=\count198
|
||||
\abovecaptionskip=\skip52
|
||||
\belowcaptionskip=\skip53
|
||||
\captionindent=\dimen149
|
||||
\thm@style=\toks20
|
||||
\thm@bodyfont=\toks21
|
||||
\thm@headfont=\toks22
|
||||
\thm@notefont=\toks23
|
||||
\thm@headpunct=\toks24
|
||||
\thm@preskip=\skip54
|
||||
\thm@postskip=\skip55
|
||||
\thm@headsep=\skip56
|
||||
\dth@everypar=\toks25
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/cite/cite.sty
|
||||
LaTeX Info: Redefining \cite on input line 302.
|
||||
LaTeX Info: Redefining \nocite on input line 332.
|
||||
Package: cite 2015/02/27 v 5.5
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/graphics/graphicx.sty
|
||||
Package: graphicx 2020/09/09 v1.2b Enhanced LaTeX Graphics (DPC,SPQR)
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/graphics/keyval.sty
|
||||
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
|
||||
\KV@toks@=\toks26
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/graphics/graphics.sty
|
||||
Package: graphics 2020/08/30 v1.4c Standard LaTeX Graphics (DPC,SPQR)
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/graphics/trig.sty
|
||||
Package: trig 2016/01/03 v1.10 sin cos tan (DPC)
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
|
||||
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
|
||||
)
|
||||
Package graphics Info: Driver file: pdftex.def on input line 105.
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/graphics-def/pdftex.def
|
||||
File: pdftex.def 2020/10/05 v1.2a Graphics/color driver for pdftex
|
||||
))
|
||||
\Gin@req@height=\dimen150
|
||||
\Gin@req@width=\dimen151
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/eurosym/eurosym.sty
|
||||
Package: eurosym 1998/08/06 v1.1 European currency symbol ``Euro''
|
||||
\@eurobox=\box50
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/base/inputenc.sty
|
||||
Package: inputenc 2020/08/01 v1.3d Input encoding file
|
||||
\inpenc@prehook=\toks27
|
||||
\inpenc@posthook=\toks28
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/base/fontenc.sty
|
||||
Package: fontenc 2020/08/10 v2.0s Standard LaTeX package
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/amsfonts/amssymb.sty
|
||||
Package: amssymb 2013/01/14 v3.01 AMS font symbols
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/jknapltx/mathrsfs.sty
|
||||
Package: mathrsfs 1996/01/01 Math RSFS package v1.0 (jk)
|
||||
\symrsfs=\mathgroup6
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/fundus-calligra/calligra.sty
|
||||
Package: calligra 2012/04/10 v1.9 LaTeX package calligra
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/amsmath/amscd.sty
|
||||
Package: amscd 2017/04/14 v2.1 AMS Commutative Diagrams
|
||||
\athelp@=\toks29
|
||||
\minaw@=\dimen152
|
||||
\bigaw@=\dimen153
|
||||
\minCDarrowwidth=\dimen154
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/base/latexsym.sty
|
||||
Package: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols)
|
||||
\symlasy=\mathgroup7
|
||||
LaTeX Font Info: Overwriting symbol font `lasy' in version `bold'
|
||||
(Font) U/lasy/m/n --> U/lasy/b/n on input line 52.
|
||||
)
|
||||
\c@thm=\count266
|
||||
\c@open=\count267
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/hyperref/hyperref.sty
|
||||
Package: hyperref 2021-02-27 v7.00k Hypertext links for LaTeX
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
|
||||
Package: ltxcmds 2020-05-10 v1.25 LaTeX kernel commands for general use (HO)
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/generic/iftex/iftex.sty
|
||||
Package: iftex 2020/03/06 v1.0d TeX engine tests
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
|
||||
Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO
|
||||
)
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/generic/infwarerr/infwarerr.sty
|
||||
Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO)
|
||||
)
|
||||
Package pdftexcmds Info: \pdf@primitive is available.
|
||||
Package pdftexcmds Info: \pdf@ifprimitive is available.
|
||||
Package pdftexcmds Info: \pdfdraftmode found.
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty
|
||||
Package: kvsetkeys 2019/12/15 v1.18 Key value parser (HO)
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
|
||||
Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO)
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/generic/pdfescape/pdfescape.sty
|
||||
Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO)
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/hycolor/hycolor.sty
|
||||
Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO)
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty
|
||||
Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO)
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/auxhook/auxhook.sty
|
||||
Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO)
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/kvoptions/kvoptions.sty
|
||||
Package: kvoptions 2020-10-07 v3.14 Key value format for package options (HO)
|
||||
)
|
||||
\@linkdim=\dimen155
|
||||
\Hy@linkcounter=\count268
|
||||
\Hy@pagecounter=\count269
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/hyperref/pd1enc.def
|
||||
File: pd1enc.def 2021-02-27 v7.00k Hyperref: PDFDocEncoding definition (HO)
|
||||
Now handling font encoding PD1 ...
|
||||
... no UTF-8 mapping file for font encoding PD1
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/hyperref/hyperref-langpatches.def
|
||||
File: hyperref-langpatches.def 2021-02-27 v7.00k Hyperref: patches for babel la
|
||||
nguages
|
||||
) (/usr/local/texlive/2021/texmf-dist/tex/generic/intcalc/intcalc.sty
|
||||
Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO)
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/generic/etexcmds/etexcmds.sty
|
||||
Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO)
|
||||
)
|
||||
\Hy@SavedSpaceFactor=\count270
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/hyperref/puenc.def
|
||||
File: puenc.def 2021-02-27 v7.00k Hyperref: PDF Unicode definition (HO)
|
||||
Now handling font encoding PU ...
|
||||
... no UTF-8 mapping file for font encoding PU
|
||||
)
|
||||
Package hyperref Info: Hyper figures OFF on input line 4192.
|
||||
Package hyperref Info: Link nesting OFF on input line 4197.
|
||||
Package hyperref Info: Hyper index ON on input line 4200.
|
||||
Package hyperref Info: Plain pages OFF on input line 4207.
|
||||
Package hyperref Info: Backreferencing OFF on input line 4212.
|
||||
Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
|
||||
Package hyperref Info: Bookmarks ON on input line 4445.
|
||||
\c@Hy@tempcnt=\count271
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/url/url.sty
|
||||
\Urlmuskip=\muskip17
|
||||
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
|
||||
)
|
||||
LaTeX Info: Redefining \url on input line 4804.
|
||||
\XeTeXLinkMargin=\dimen156
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/generic/bitset/bitset.sty
|
||||
Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO)
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty
|
||||
Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO
|
||||
)
|
||||
))
|
||||
\Fld@menulength=\count272
|
||||
\Field@Width=\dimen157
|
||||
\Fld@charsize=\dimen158
|
||||
Package hyperref Info: Hyper figures OFF on input line 6075.
|
||||
Package hyperref Info: Link nesting OFF on input line 6080.
|
||||
Package hyperref Info: Hyper index ON on input line 6083.
|
||||
Package hyperref Info: backreferencing OFF on input line 6090.
|
||||
Package hyperref Info: Link coloring OFF on input line 6095.
|
||||
Package hyperref Info: Link coloring with OCG OFF on input line 6100.
|
||||
Package hyperref Info: PDF/A mode OFF on input line 6105.
|
||||
LaTeX Info: Redefining \ref on input line 6145.
|
||||
LaTeX Info: Redefining \pageref on input line 6149.
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/base/atbegshi-ltx.sty
|
||||
Package: atbegshi-ltx 2020/08/17 v1.0a Emulation of the original atbegshi packa
|
||||
ge
|
||||
with kernel methods
|
||||
)
|
||||
\Hy@abspage=\count273
|
||||
\c@Item=\count274
|
||||
\c@Hfootnote=\count275
|
||||
)
|
||||
Package hyperref Info: Driver (autodetected): hpdftex.
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/hyperref/hpdftex.def
|
||||
File: hpdftex.def 2021-02-27 v7.00k Hyperref driver for pdfTeX
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/base/atveryend-ltx.sty
|
||||
Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atvery packag
|
||||
e
|
||||
with kernel methods
|
||||
)
|
||||
\Fld@listcount=\count276
|
||||
\c@bookmark@seq@number=\count277
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
|
||||
Package: rerunfilecheck 2019/12/05 v1.9 Rerun checks for auxiliary files (HO)
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty
|
||||
Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO)
|
||||
)
|
||||
Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
|
||||
86.
|
||||
)
|
||||
\Hy@SectionHShift=\skip57
|
||||
)
|
||||
Package hyperref Info: Option `colorlinks' set `true' on input line 50.
|
||||
|
||||
|
||||
Package hyperref Warning: Option `pdftex' has already been used,
|
||||
(hyperref) setting the option has no effect on input line 50.
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
|
||||
File: l3backend-pdftex.def 2021-03-18 L3 backend support: PDF output (pdfTeX)
|
||||
\l__color_backend_stack_int=\count278
|
||||
\l__pdf_internal_box=\box51
|
||||
)
|
||||
(./AeCod.aux)
|
||||
\openout1 = `AeCod.aux'.
|
||||
|
||||
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 180.
|
||||
LaTeX Font Info: ... okay on input line 180.
|
||||
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 180.
|
||||
LaTeX Font Info: ... okay on input line 180.
|
||||
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 180.
|
||||
LaTeX Font Info: ... okay on input line 180.
|
||||
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 180.
|
||||
LaTeX Font Info: ... okay on input line 180.
|
||||
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 180.
|
||||
LaTeX Font Info: ... okay on input line 180.
|
||||
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 180.
|
||||
LaTeX Font Info: ... okay on input line 180.
|
||||
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 180.
|
||||
LaTeX Font Info: ... okay on input line 180.
|
||||
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 180.
|
||||
LaTeX Font Info: ... okay on input line 180.
|
||||
LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 180.
|
||||
LaTeX Font Info: ... okay on input line 180.
|
||||
LaTeX Font Info: Trying to load font information for U+msa on input line 180
|
||||
.
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/amsfonts/umsa.fd
|
||||
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
|
||||
)
|
||||
LaTeX Font Info: Trying to load font information for U+msb on input line 180
|
||||
.
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/amsfonts/umsb.fd
|
||||
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
|
||||
)
|
||||
LaTeX Font Info: Trying to load font information for U+rsfs on input line 18
|
||||
0.
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/jknapltx/ursfs.fd
|
||||
File: ursfs.fd 1998/03/24 rsfs font definition file (jk)
|
||||
)
|
||||
LaTeX Font Info: Trying to load font information for U+lasy on input line 18
|
||||
0.
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/base/ulasy.fd
|
||||
File: ulasy.fd 1998/08/17 v2.2e LaTeX symbol font definitions
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
|
||||
[Loading MPS to PDF converter (version 2006.09.02).]
|
||||
\scratchcounter=\count279
|
||||
\scratchdimen=\dimen159
|
||||
\scratchbox=\box52
|
||||
\nofMPsegments=\count280
|
||||
\nofMParguments=\count281
|
||||
\everyMPshowfont=\toks30
|
||||
\MPscratchCnt=\count282
|
||||
\MPscratchDim=\dimen160
|
||||
\MPnumerator=\count283
|
||||
\makeMPintoPDFobject=\count284
|
||||
\everyMPtoPDFconversion=\toks31
|
||||
) (/usr/local/texlive/2021/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
|
||||
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
|
||||
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
|
||||
85.
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
|
||||
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
|
||||
e
|
||||
))
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/graphics/color.sty
|
||||
Package: color 2020/02/24 v1.2b Standard LaTeX Color (DPC)
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/graphics-cfg/color.cfg
|
||||
File: color.cfg 2016/01/02 v1.6 sample color configuration
|
||||
)
|
||||
Package color Info: Driver file: pdftex.def on input line 147.
|
||||
)
|
||||
Package hyperref Info: Link coloring ON on input line 180.
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/hyperref/nameref.sty
|
||||
Package: nameref 2021-04-02 v2.47 Cross-referencing by name of section
|
||||
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/refcount/refcount.sty
|
||||
Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO)
|
||||
)
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/generic/gettitlestring/gettitlestring.s
|
||||
ty
|
||||
Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO)
|
||||
)
|
||||
\c@section@level=\count285
|
||||
)
|
||||
LaTeX Info: Redefining \ref on input line 180.
|
||||
LaTeX Info: Redefining \pageref on input line 180.
|
||||
LaTeX Info: Redefining \nameref on input line 180.
|
||||
(./AeCod.out) (./AeCod.out)
|
||||
\@outlinefile=\write3
|
||||
\openout3 = `AeCod.out'.
|
||||
|
||||
|
||||
|
||||
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
|
||||
(hyperref) removing `math shift' on input line 211.
|
||||
|
||||
|
||||
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
|
||||
(hyperref) removing `subscript' on input line 211.
|
||||
|
||||
|
||||
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
|
||||
(hyperref) removing `math shift' on input line 211.
|
||||
|
||||
[1{/usr/local/texlive/2021/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
|
||||
|
||||
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
|
||||
(hyperref) removing `math shift' on input line 241.
|
||||
|
||||
|
||||
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
|
||||
(hyperref) removing `subscript' on input line 241.
|
||||
|
||||
|
||||
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
|
||||
(hyperref) removing `math shift' on input line 241.
|
||||
|
||||
|
||||
Overfull \hbox (11.43091pt too wide) in paragraph at lines 250--251
|
||||
[]$\OML/cmm/m/it/10.95 []\OT1/cmr/m/n/10.95 (\OML/cmm/m/it/10.95 u[]\OT1/cmr/m
|
||||
/n/10.95 ) = (0\OML/cmm/m/it/10.95 ; [] ; '[]\OT1/cmr/m/n/10.95 (\OML/cmm/m/it/
|
||||
10.95 m[]\OT1/cmr/m/n/10.95 )\OML/cmm/m/it/10.95 ; [] ; \OT1/cmr/m/n/10.95 0)$\
|
||||
T1/cmr/m/n/10.95 , with $\OT1/cmr/m/n/10.95 1 \OMS/cmsy/m/n/10.95 ^^T \OML/cmm/
|
||||
m/it/10.95 j \OMS/cmsy/m/n/10.95 ^^T \OML/cmm/m/it/10.95 p$\T1/cmr/m/n/10.95 ,
|
||||
$\OML/cmm/m/it/10.95 \OT1/cmr/m/n/10.95 = (\OML/cmm/m/it/10.95 []; [] ; []\
|
||||
OT1/cmr/m/n/10.95 )$
|
||||
[]
|
||||
|
||||
|
||||
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
|
||||
(hyperref) removing `math shift' on input line 257.
|
||||
|
||||
|
||||
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
|
||||
(hyperref) removing `subscript' on input line 257.
|
||||
|
||||
|
||||
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
|
||||
(hyperref) removing `math shift' on input line 257.
|
||||
|
||||
[2]
|
||||
LaTeX Font Info: Trying to load font information for U+euf on input line 276
|
||||
.
|
||||
(/usr/local/texlive/2021/texmf-dist/tex/latex/amsfonts/ueuf.fd
|
||||
File: ueuf.fd 2013/01/14 v3.01 Euler Fraktur
|
||||
)
|
||||
Overfull \hbox (16.69417pt too wide) in paragraph at lines 276--277
|
||||
[]\T1/cmr/m/n/10.95 The ori-gin sup-ported con-di-tion is equiv-a-lent to the f
|
||||
act that $[]\OT1/cmr/m/n/10.95 (\OML/cmm/m/it/10.95 M=M[]\OT1/cmr/m/n/10.95 ) \
|
||||
OMS/cmsy/m/n/10.95 ^^R
|
||||
[]
|
||||
|
||||
[3] [4] [5] [6]
|
||||
|
||||
LaTeX Font Warning: Command \sc invalid in math mode on input line 474.
|
||||
|
||||
[7] [8] (./AeCod.aux)
|
||||
Package rerunfilecheck Info: File `AeCod.out' has not changed.
|
||||
(rerunfilecheck) Checksum: 812F8A0371BDAC53D3593A8CB3F319A6;2266.
|
||||
)
|
||||
Here is how much of TeX's memory you used:
|
||||
10058 strings out of 478994
|
||||
140852 string characters out of 5858183
|
||||
445215 words of memory out of 5000000
|
||||
27161 multiletter control sequences out of 15000+600000
|
||||
417777 words of font info for 75 fonts, out of 8000000 for 9000
|
||||
1302 hyphenation exceptions out of 8191
|
||||
82i,11n,88p,651b,582s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
{/usr/local/texlive/2021/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc}
|
||||
</usr/local/texlive/2021/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb><
|
||||
/usr/local/texlive/2021/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></
|
||||
usr/local/texlive/2021/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi6.pfb></us
|
||||
r/local/texlive/2021/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi8.pfb></usr/
|
||||
local/texlive/2021/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/lo
|
||||
cal/texlive/2021/texmf-dist/fonts/type1/public/amsfonts/cm/cmr6.pfb></usr/local
|
||||
/texlive/2021/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb></usr/local/te
|
||||
xlive/2021/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/local/tex
|
||||
live/2021/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy6.pfb></usr/local/texli
|
||||
ve/2021/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb></usr/local/texlive
|
||||
/2021/texmf-dist/fonts/type1/public/amsfonts/euler/eufm10.pfb></usr/local/texli
|
||||
ve/2021/texmf-dist/fonts/type1/public/amsfonts/symbols/msbm10.pfb></usr/local/t
|
||||
exlive/2021/texmf-dist/fonts/type1/public/cm-super/sfbx1095.pfb></usr/local/tex
|
||||
live/2021/texmf-dist/fonts/type1/public/cm-super/sfcc1095.pfb></usr/local/texli
|
||||
ve/2021/texmf-dist/fonts/type1/public/cm-super/sfrm0800.pfb></usr/local/texlive
|
||||
/2021/texmf-dist/fonts/type1/public/cm-super/sfrm1095.pfb></usr/local/texlive/2
|
||||
021/texmf-dist/fonts/type1/public/cm-super/sfti1095.pfb>
|
||||
Output written on AeCod.pdf (8 pages, 247038 bytes).
|
||||
PDF statistics:
|
||||
218 PDF objects out of 1000 (max. 8388607)
|
||||
189 compressed objects within 2 object streams
|
||||
58 named destinations out of 1000 (max. 500000)
|
||||
89 words of extra memory for PDF output out of 10000 (max. 10000000)
|
||||
|
||||
11
TeoriaAeCod/AeCod.out
Executable file
11
TeoriaAeCod/AeCod.out
Executable file
@ -0,0 +1,11 @@
|
||||
\BOOKMARK [1][-]{section.1}{\376\377\0001\000.\000\040\000T\000h\000e\000o\000r\000e\000t\000i\000c\000a\000l\000\040\000f\000r\000a\000m\000e\000w\000o\000r\000k}{}% 1
|
||||
\BOOKMARK [2][-]{subsection.1.1}{\376\377\0001\000.\0001\000.\000\040\000T\000h\000e\000\040\000A\000e\000-\000t\000a\000n\000g\000e\000n\000t\000\040\000o\000v\000e\000r\000\040\000t\000h\000e\000\040\000t\000a\000r\000g\000e\000t}{section.1}% 2
|
||||
\BOOKMARK [2][-]{subsection.1.2}{\376\377\0001\000.\0002\000.\000\040\000T\000h\000e\000\040\000A\000e\000-\000c\000o\000d\000i\000m\000e\000n\000s\000i\000o\000n}{section.1}% 3
|
||||
\BOOKMARK [2][-]{subsection.1.3}{\376\377\0001\000.\0003\000.\000\040\000C\000o\000m\000p\000u\000t\000i\000n\000g\000\040\000A\000e\000-\000c\000o\000d\000i\000m\000e\000n\000s\000i\000o\000n\000\040\000b\000y\000\040\000a\000p\000p\000r\000o\000x\000i\000m\000a\000t\000i\000o\000n\000s}{section.1}% 4
|
||||
\BOOKMARK [2][-]{subsection.1.4}{\376\377\0001\000.\0004\000.\000\040\000T\000h\000e\000\040\000c\000o\000m\000p\000u\000t\000a\000t\000i\000o\000n\000\040\000m\000e\000t\000h\000o\000d}{section.1}% 5
|
||||
\BOOKMARK [1][-]{section.2}{\376\377\0002\000.\000\040\000T\000h\000e\000\040\000a\000l\000g\000o\000r\000i\000t\000h\000m}{}% 6
|
||||
\BOOKMARK [1][-]{section.3}{\376\377\0003\000.\000\040\000F\000i\000l\000t\000r\000a\000t\000i\000o\000n\000\040\000c\000h\000o\000i\000c\000e\000s\000\040\000a\000n\000d\000\040\000t\000h\000e\000i\000r\000\040\000a\000s\000s\000o\000c\000i\000a\000t\000e\000d\000\040\000a\000p\000p\000r\000o\000x\000i\000m\000a\000t\000i\000o\000n\000s}{}% 7
|
||||
\BOOKMARK [2][-]{subsection.3.1}{\376\377\0003\000.\0001\000.\000\040\000T\000h\000e\000\040\000t\000a\000r\000g\000e\000t\000-\000d\000e\000g\000r\000e\000e\000\040\000f\000i\000l\000t\000r\000a\000t\000i\000o\000n}{section.3}% 8
|
||||
\BOOKMARK [2][-]{subsection.3.2}{\376\377\0003\000.\0002\000.\000\040\000T\000h\000e\000\040\000s\000o\000u\000r\000c\000e\000-\000d\000e\000g\000r\000e\000e\000\040\000f\000i\000l\000t\000r\000a\000t\000i\000o\000n}{section.3}% 9
|
||||
\BOOKMARK [1][-]{section.4}{\376\377\0004\000.\000\040\000P\000r\000o\000c\000e\000d\000u\000r\000e\000s}{}% 10
|
||||
\BOOKMARK [1][-]{section.5}{\376\377\0005\000.\000\040\000T\000o\000\040\000d\000o\000\040\000l\000i\000s\000t}{}% 11
|
||||
BIN
TeoriaAeCod/AeCod.pdf
Executable file
BIN
TeoriaAeCod/AeCod.pdf
Executable file
Binary file not shown.
BIN
TeoriaAeCod/AeCod.synctex.gz
Executable file
BIN
TeoriaAeCod/AeCod.synctex.gz
Executable file
Binary file not shown.
567
TeoriaAeCod/AeCod.tex
Executable file
567
TeoriaAeCod/AeCod.tex
Executable file
@ -0,0 +1,567 @@
|
||||
\documentclass[a4paper,11pt]{amsart} %%% Hola 07 enero 2013
|
||||
%%%%%%%%%%%%%%%%%% MISCELLANEOUS
|
||||
|
||||
\usepackage{cite}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{eurosym}
|
||||
\usepackage[utf8]{inputenc}
|
||||
%\usepackage[ansinew]{inputenc}
|
||||
%\usepackage[applemac]{inputenc}
|
||||
\usepackage[T1]{fontenc}
|
||||
%\usepackage[spanish]{babel}
|
||||
\usepackage{amssymb}
|
||||
\usepackage{mathrsfs}
|
||||
%%%
|
||||
\usepackage{amsthm,calligra,mathrsfs}
|
||||
\usepackage{amsfonts,amscd,amsmath}
|
||||
\usepackage{amssymb,latexsym}
|
||||
%%%%
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%% THEOREM STYLES AND NUMERATION
|
||||
|
||||
\theoremstyle{plain}
|
||||
|
||||
\newtheorem{thm}{Theorem}[section]
|
||||
\newtheorem{cor}[thm]{Corollary}
|
||||
\newtheorem{lem}[thm]{Lemma}
|
||||
\newtheorem{prop}[thm]{Proposition}
|
||||
|
||||
|
||||
|
||||
\theoremstyle{definition}
|
||||
|
||||
\newtheorem{definition}[thm]{Definition}
|
||||
\newtheorem{defprop}[thm]{Proposition-Definition}
|
||||
\newtheorem{rem}[thm]{Remark}
|
||||
\newtheorem{ex}[thm]{Example}
|
||||
\newtheorem{open}{Open Problem}
|
||||
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%% HYPERREF
|
||||
|
||||
\usepackage{hyperref}
|
||||
\hypersetup{colorlinks,%
|
||||
citecolor=black,%
|
||||
filecolor=black,%
|
||||
linkcolor=black,%
|
||||
urlcolor=black,%
|
||||
pdftex}
|
||||
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%% SHORTCUTS
|
||||
\newcommand{\pd}[2]{\frac{\partial#1}{\partial#2}}
|
||||
\newcommand{\correct}[1]{{\color{red}\LARGE{#1}}}
|
||||
|
||||
|
||||
\def\ad{\operatorname{ad}}
|
||||
\def\Ann{\operatorname{Ann}}
|
||||
\def\Ass{\operatorname{Ass}}
|
||||
\def\At{\operatorname{\hbox{$A_t$}}}
|
||||
\def\cl{\operatorname{cl}}
|
||||
\def\charac{\operatorname{char}}
|
||||
\DeclareMathOperator{\cHom}{\mathscr{H}\text{\kern -3pt {\calligra\large om}}\,}
|
||||
\def\codim{\operatorname{codim}}
|
||||
\def\codimc{\operatorname{codim_\C}}
|
||||
\def\coheight{\operatorname{coht}}
|
||||
\def\Coker{\operatorname{Coker}}
|
||||
\def\corank{\operatorname{corank}}
|
||||
\def\ct{\operatorname{\hbox{$c_t$}}}
|
||||
\def\Cyl{\operatorname{Cyl}}
|
||||
\def\depth{\operatorname{depth}}
|
||||
\def\dim{\operatorname{dim}}
|
||||
\def\dimc{\operatorname{dim_\C}}
|
||||
\def\edim{\operatorname{edim}}
|
||||
\def\Ext{\operatorname{Ext}}
|
||||
\def\Hess{\operatorname{Hess}}
|
||||
\def\Hom{\operatorname{Hom}}
|
||||
\def\height{\operatorname{ht}}
|
||||
\def\id{\operatorname{id}}
|
||||
\def\im{\operatorname{m}}
|
||||
\def\ind{\operatorname{ind}}
|
||||
\def\Ker{\operatorname{Ker}}
|
||||
\def\lcm{\operatorname{lcm}}
|
||||
\def\Mc{\operatorname{Mc}}
|
||||
\def\nil{\operatorname{nil}}
|
||||
\def\nt{\operatorname{\hbox{$n_t$}}}
|
||||
\def\ot{\operatorname{\hbox{$o_t$}}}
|
||||
\def\rad{\operatorname{rad}}
|
||||
\def\rank{\operatorname{rank}}
|
||||
\def\sign{\operatorname{sign}}
|
||||
\def\Sing{\operatorname{Sing}}
|
||||
\def\Span{\operatorname{Span}}
|
||||
\def\Spec{\operatorname{Spec}}
|
||||
\def\Specan{\operatorname{Specan}}
|
||||
\def\supp{\operatorname{supp}}
|
||||
\def\Tors{\operatorname{Tors}}
|
||||
\def\trdeg{\operatorname{trdeg}}
|
||||
|
||||
|
||||
\def\C{\mathbb C}
|
||||
\def\F{\mathbb F}
|
||||
\def\K{\mathbb K}
|
||||
\def\Q{\mathbb Q}
|
||||
\def\Z{\mathbb Z}
|
||||
\def\N{\mathbb N}
|
||||
\def\P{\mathbb P}
|
||||
\def\R{\mathbb R}
|
||||
%\def\S{\mathbb S}
|
||||
|
||||
\def\sA{\mathscr A}
|
||||
\def\sB{\mathscr B}
|
||||
\def\sC{\mathscr C}
|
||||
\def\sD{\mathscr D}
|
||||
\def\sE{\mathscr E}
|
||||
\def\sF{\mathscr F}
|
||||
\def\sG{\mathscr G}
|
||||
\def\sH{\mathscr H}
|
||||
\def\sI{\mathscr I}
|
||||
\def\sJ{\mathscr J}
|
||||
\def\sK{\mathscr K}
|
||||
\def\sL{\mathscr L}
|
||||
\def\sM{\mathscr M}
|
||||
\def\sN{\mathscr N}
|
||||
\def\sO{\mathscr O}
|
||||
\def\sP{\mathscr P}
|
||||
\def\sQ{\mathscr Q}
|
||||
\def\sR{\mathscr R}
|
||||
\def\sS{\mathscr S}
|
||||
\def\sT{\mathscr T}
|
||||
\def\sU{\mathscr U}
|
||||
\def\sV{\mathscr V}
|
||||
\def\sW{\mathscr W}
|
||||
\def\sX{\mathscr X}
|
||||
\def\sY{\mathscr Y}
|
||||
\def\sZ{\mathscr Z}
|
||||
|
||||
\def\cA{\mathcal A}
|
||||
\def\cB{\mathcal B}
|
||||
\def\cC{\mathcal C}
|
||||
\def\cD{\mathcal D}
|
||||
\def\cE{\mathcal E}
|
||||
\def\cF{\mathcal F}
|
||||
\def\cG{\mathcal G}
|
||||
\def\cH{\mathcal H}
|
||||
\def\cI{\mathcal I}
|
||||
\def\cJ{\mathcal J}
|
||||
\def\cK{\mathcal K}
|
||||
\def\cL{\mathcal L}
|
||||
\def\cM{\mathcal M}
|
||||
\def\cN{\mathcal N}
|
||||
\def\cO{\mathcal O}
|
||||
\def\cP{\mathcal P}
|
||||
\def\cQ{\mathcal Q}
|
||||
\def\cR{\mathcal R}
|
||||
\def\cS{\mathcal S}
|
||||
\def\cT{\mathcal T}
|
||||
\def\cU{\mathcal U}
|
||||
\def\cV{\mathcal V}
|
||||
\def\cW{\mathcal W}
|
||||
\def\cX{\mathcal X}
|
||||
\def\cY{\mathcal Y}
|
||||
\def\cZ{\mathcal Z}
|
||||
|
||||
\def\ka{\mathfrak a}
|
||||
\def\kk{\mathfrak k}
|
||||
\def\km{\mathfrak m}
|
||||
\def\kp{\mathfrak p}
|
||||
\def\kq{\mathfrak q}
|
||||
|
||||
\def\kX{\mathfrak X}
|
||||
\def\kF{\mathfrak F}
|
||||
|
||||
\def\kSh{\mathfrak {Sh}}
|
||||
\def\kTop{\mathfrak {Top}}
|
||||
%%%%%%%%%%%%%%%%%%
|
||||
|
||||
|
||||
\begin{document}
|
||||
%\author{Author 1, Author 2}
|
||||
|
||||
%\title[Short tittle] {tittle}
|
||||
\title {Computation of $\mathcal A _e$-codimension}
|
||||
|
||||
%\address{Adress 1st author}
|
||||
|
||||
%\email{1stauthor@email.com}
|
||||
|
||||
%\address{Adress 2nd author}
|
||||
|
||||
%\email{2ndauthor@email.com}
|
||||
|
||||
%\thanks{Supported by }
|
||||
|
||||
%\subjclass[2000]{Primary XXXXX; Secondary YYYYY, ZZZZZ}
|
||||
|
||||
%\keywords{Some keywords}
|
||||
|
||||
|
||||
%\begin{abstract} The abstract
|
||||
%\end{abstract}
|
||||
|
||||
|
||||
|
||||
\maketitle
|
||||
|
||||
\section{Theoretical framework}
|
||||
|
||||
\subsection{The $\mathcal A_e$-tangent over the target}
|
||||
Consider a polynomial map-germ $f\colon (\C^n,0)\to(\C^p,0),$ with coordinate functions $f_j(x)$, such that the map given by the first $n$ coordinates functions, \[\overline f\colon (\C^n,0)\to (\C^n,0)\] is finite. To avoid confusion, we write \[X=(\C^n,0)\quad \text{and}\quad \overline f\colon X\to (\C^n,0).\] Let \[g_1,\dots,g_m\in \overline f_*\cO_n\] be a minimal set of generators of $\overline f_*\cO_n$, which is the ring $\cO_X$, regarded as an $\cO_n$-algebra via composition with $\overline f$. From the fact that $X$ is Cohen-Macaulay and $\dim X=n$ it follows that there is an isomorphism
|
||||
\[\bigoplus^m \cO_n\xrightarrow{\varphi}\overline f_*\cO_X,\]
|
||||
given by
|
||||
\[(H^k)_{k=1}^m\mapsto \sum_{k=1}^m H^k\cdot g_k,\] where $H^k\cdot g_k=(H^k\circ \overline f)\,g_k.$
|
||||
\begin{rem}All our troubles have to do with the behaviour of the inverse of $\varphi$. Assuming $\overline f$ to be a polynomial mapping and the generators $g_k$ to be polynomials, the isomorphism $\varphi$ takes polynomial vectors to polynomial functions. However, the inverse $\varphi^{-1}$ need not take polynomials to polynomial vectors. A simple example is provided by $\overline f(x)=x+x^2$, with a single generator $g_1=1$. The function $h(x)=x$ cannot be expressed as a polynomial in $x+x^2$.
|
||||
\end{rem}
|
||||
|
||||
Similarly, consider the the $\cO_n$-module\[\theta(f)=\bigoplus^p \overline f_*\cO_X\] and the isomorphism
|
||||
\[\bigoplus^p\bigoplus^m \cO_n \xrightarrow{\psi}\overline f_*\cO_X,\]
|
||||
given by
|
||||
\[(H^k_j)_{\substack{1 \leq k \leq m \\ 1 \leq j \leq p}}\mapsto (\sum_{k=1}^m H^k_j\cdot g_k)_{1\leq j\leq p},\]
|
||||
|
||||
Finally consider the $\mathcal A_e$-tangent submodule
|
||||
\[T\mathcal A_e(f)=\left\langle \pd{f}{x_i}\mid 1\leq i\leq n\right\rangle_{\cO_X}+\bigoplus^p f^*\cO_p,\]
|
||||
where $f^*\cO_p$ stands for the subring of $\cO_n$ consisting of functions of the form $f^*H=H\circ f$, with $H\in \cO_p$ (Caution: composition is taken with $f$ and not with $\overline f$).
|
||||
|
||||
\begin{prop}\label{propGeneratorsOfTA}As an $\cO_n$-module, the space $T\mathcal A_e(f)$ is generated by the following collection of vectors \smallskip
|
||||
\begin{itemize}
|
||||
\item $\dfrac{\partial f}{\partial x_i}\,g_k$, with $1\leq i\leq n$, $1\leq k\leq m$
|
||||
\medskip
|
||||
\item $u_j^\alpha=(0,\dots,\overset{\stackrel{j}{\smile}}m_\alpha,\dots,0)$, with $1\leq j\leq p$, $\alpha=(\alpha_{n+1},\dots,\alpha_p)$ and $0\leq \alpha_\alpha\leq m$, and where
|
||||
\[m_\alpha=f_{n+1}^{\alpha_{n+1}}\dots f_{p}^{\alpha_{p}}\]
|
||||
\end{itemize}
|
||||
\end{prop}
|
||||
|
||||
\begin{rem}\label{remAlpha}Question: is it enough to take $\alpha=(\alpha_{n+1},\dots,\alpha_p)$ with $0\leq \vert \alpha\vert \leq m$ instead?
|
||||
\end{rem}
|
||||
|
||||
\subsection{The $\mathcal A_e$-codimension}
|
||||
|
||||
By definition, the $\mathcal A_e$-codimension of $f$ is
|
||||
\[\codim_{\mathcal A_e}(f)=\dim_\C\frac{\theta(f)}{T\mathcal A_e(f)}\]
|
||||
|
||||
The difficulty in computing the $\mathcal A_e$-codimension resides in the fact that it is a subset of $\theta(f)$, thus it consists of vectors in $\cO_X$, but it is not a $\cO_X$ module. To solve this, we may move everything isomorphically to $\bigoplus^p\bigoplus^m\cO_n$, applying the isomorphism $\psi$, so that the calculation that we actually perform is
|
||||
\[\codim_{\mathcal A_e}(f)=\dim_\C\frac{\bigoplus^p\bigoplus^m\cO_n}{\psi^{-1}(T\mathcal A_e(f))}\]
|
||||
Since $\psi$ is an isomorphism of $\cO_n$-modules, the generators of $\psi^{-1}(T\mathcal A_e(f))$ are
|
||||
\begin{itemize}
|
||||
\item $\psi^{-1}\left(\dfrac{\partial f}{\partial x_i}\,g_k\right)$, with $1\leq i\leq n$, $1\leq k\leq m$
|
||||
\medskip
|
||||
\item $\psi^{-1}(u_j^\alpha)=(0,\dots,\varphi^{-1}(m_\alpha),\dots,0)$, with $1\leq j\leq p$, $\alpha=(\alpha_{n+1},\dots,\alpha_p)$ and $0\leq \alpha_\alpha\leq m$, and where
|
||||
\[m_\alpha=f_{n+1}^{\alpha_{n+1}}\dots f_{p}^{\alpha_{p}}\]
|
||||
\end{itemize}
|
||||
\begin{rem}\label{remLessCalculations} Observe that, in order to compute $\psi^{-1}(u^\alpha_j)$, it is enough to compute $\varphi^{-1}(f_{\ell})$, for $n+1\leq \ell\leq p$
|
||||
\end{rem}
|
||||
|
||||
\subsection{Computing $\mathcal A_e$-codimension by approximations}
|
||||
The obstacle to compute $\mathcal A_e$-codimension is that we must compute the generators \[\psi^{-1}(\dfrac{\partial f}{\partial x_i}\,g_k) \quad\text{and}\quad \psi^{-1}(u_j^\alpha),\]which may even fail to have polynomial entries. This may be solved by introducing a decreasing filtration of $\bigoplus^p\bigoplus^m\cO_n$.
|
||||
\begin{definition}\label{defFiltration}A \emph{complete, separated, origin supported filtration} of an $\cO_n$ module $M$ is a sequence
|
||||
\[M_0\supseteq M_1\supseteq \dots \supseteq M_r\supset \dots\]
|
||||
of $\cO_n$-modules, satisfying the following properties.
|
||||
\begin{enumerate}
|
||||
\item Completeness: $M_0=M$.
|
||||
\smallskip
|
||||
\item Separation: $\bigcap_{r=1}^\infty M_r=0$.
|
||||
\smallskip
|
||||
\item Origin supported: $\supp (M_r/M_{r+1})\subseteq \{0\}$, for all $r$.
|
||||
\end{enumerate}
|
||||
From now on, we just use the term filtration, and always assume them to be complete, separated and origin supported.
|
||||
\end{definition}
|
||||
|
||||
\begin{rem}\label{remFiltrationConditions}
|
||||
Completeness is easily achieved, by adding an extra initial term $M_0=M$ to any given filtration.
|
||||
|
||||
Separation may be though of as the property that ensures that the approximations that we will introduce later on actually converge to the desired result.
|
||||
|
||||
The origin supported condition is equivalent to the fact that $\supp (M/M_{r+1})\subseteq \{0\}$ (By induction, the stalks at $x\neq 0$ of $M_0$ and $M_r$ must agree). For the module $M=\bigoplus^p\bigoplus^m\cO_n$ that we study, this is in turn equivalent to the fact that, for all $r$, there exists $K$, such that $\bigoplus^p\bigoplus^m\mathfrak m_n^K\subseteq M_r$, where $\mathfrak m_n$ stands for the maximal ideal in $\cO_n$).
|
||||
\end{rem}
|
||||
|
||||
\begin{definition}Given a filtration $M_\bullet$ of $\bigoplus^p\bigoplus^m\cO_n$, we define
|
||||
\[d_r=\dim_\C\frac{\psi^{-1}(T\mathcal A_e(f))+M_r}{\psi^{-1}(T\mathcal A_e(f))+M_{r+1}}<\infty\]
|
||||
(Observe that the fact that $d_r<\infty$ is a direct consequence of the origin supported condition for the filtration).
|
||||
\end{definition}
|
||||
|
||||
|
||||
Any such filtration gives a way to express the $\mathcal A_e$-codimension as an infinite sum, or as a ``degree $r$ aproximation'' plus a tail, that is:
|
||||
\begin{enumerate}
|
||||
\item$\codim_{\mathcal A_e}(f)=d_0+d_1+\dots$
|
||||
\smallskip
|
||||
\item $\codim_{\mathcal A_e}(f)=d_0+d_1+\dots+d_{r}+\dim_\C\frac{\psi^{-1}(T\mathcal A_e(f))+M_{r+1}}{\psi^{-1}(T\mathcal A_e(f))}$
|
||||
\end{enumerate}
|
||||
Both expressions are helpful in different situations and allow us to compute $\codim_{\mathcal A_e}(f)$ by a series of aproximations of $\psi^{-1}(T\mathcal A_e(f))$, defined as follows.
|
||||
|
||||
\begin{definition} Given a map $f$ as above and a filtration $M_\bullet$ of $\bigoplus^p\bigoplus^m\cO_n$. An \emph{approximating sequence} for $T\cA_e(f)$ (subject to $M_\bullet$) is a sequence $A_\bullet$ of $\cO_n$-submodules
|
||||
$A_r\leq \bigoplus^p\bigoplus^m\cO_n$, called \emph{approximations}, such that
|
||||
\[A_r\equiv \psi^{-1}(T\mathcal A_e(f))\mod M_{r+1}\]
|
||||
or, equivalently,
|
||||
\[\psi(A_r)\equiv T\mathcal A_e(f)\mod \psi(M_{r+1}).\]
|
||||
\end{definition}
|
||||
|
||||
Then, clearly we have that
|
||||
\[d_r=\dim_\C\frac{A_r+M_r}{A_r+M_{r+1}}.\]
|
||||
|
||||
\subsection{The computation method}\label{secComputationalMethod}
|
||||
The notions of the previous sections gives two strategies to compute $\codim_{\mathcal A_e}(f)$ by computing the successive approximations $A_r$:
|
||||
|
||||
We start computing $A_r$ and $d_r$ for $r=0,1,2,\dots$ and, for each $r$,
|
||||
\begin{enumerate}
|
||||
\item If $d_r=0$, then find the biggest number $L$ such that \[d_{r-L}=\dots=d_{r-1}=d_r=0.\] If $L$ satisfies \textcolor{red}{something which can be decided directly from the expression of $f$ (This is Du Plessis' criterion, which we need to adapt slightly to our setup)}, then all $d_j$ are zero for $j\geq r$. In that case,
|
||||
\[\codim_{\mathcal A_e}(f)=d_0+\dots+d_{r-L-1}.\]
|
||||
\item If $\psi(A_r)=T\mathcal A_e(f)$, then
|
||||
\[\codim_{\mathcal A_e}(f)=d_0+d_1+\dots+d_{r}+\dim_\C\frac{A_r+M_{r+1}}{A_r}\]
|
||||
\end{enumerate}
|
||||
|
||||
\begin{rem}
|
||||
On one hand, strategy (1) finishes if and only if $T\mathcal A_e(f)<\infty$. In particular, it is unable to decide whether of not $f$ is $\mathcal A$-finite. On the other hand, we are only able to use strategy (2) if at some point our approximation is exact. But, if we do, we are able to decide whether or not $f$ is $\mathcal A$-finite in finite time, since this happens if and only if $\dim_\C\frac{A_r+M_{r+1}}{A_r}<\infty$
|
||||
\end{rem}
|
||||
|
||||
|
||||
\begin{rem}\label{remDr}
|
||||
Alternatively (but probably not equivalently in terms of computing efficiency) we may define
|
||||
\[D_r=\dim_\C\frac{\bigoplus^p\bigoplus^m\cO_n}{\psi^{-1}(T\mathcal A_e(f))+M_{r+1}}=\dim_\C\frac{\bigoplus^p\bigoplus^m\cO_n}{A_r+M_{r+1}}.\]
|
||||
Then we have an increasing sequence $D_0\leq D_1\leq\dots$ such that
|
||||
\[\codim_{\mathcal A_e}(f)=\lim_{r\to\infty}D_r\]
|
||||
and obviously $D_r=d_0+\dots d_r$, The two strategies above now look as follows:
|
||||
We start computing $A_r$ and $D_r$ for $r=0,1,2,\cdots$, and for each $r$
|
||||
\begin{enumerate}
|
||||
\item If $D_r=D_{r-1}$, then find the biggest number $L$ such that \[D_{r-L}=\dots=D_{r-1}=D_r=0.\] There is a criterion by Du Plessis, computable in terms of $A_r$, which ensures that, if $L$ satisfies \textcolor{red}{something (We need to make this precise)}, then all remaining $D_j$ for $j\geq r$ are equal to $D_r$. Consequently,
|
||||
\[\codim_{\mathcal A_e}(f)=D_r.\]
|
||||
\item If $\psi(A_r)=T\mathcal A_e(f)$, then
|
||||
\[\codim_{\mathcal A_e}(f)=D_r\]
|
||||
\end{enumerate}
|
||||
\end{rem}
|
||||
|
||||
\section{The algorithm} Assume that, given a map-germ $f$, for every integer $r$, we have
|
||||
\begin{enumerate}
|
||||
\item The module $M_r$ of a filtration $M_\bullet$ of $\bigoplus^p\bigoplus^m\cO_n$.
|
||||
\item A procedure to compute, for any vector $v\in \theta(f)$ and every integer $r\geq 0$, a matrix $H$ such that
|
||||
\[\psi(H)\equiv v\mod \psi(M_{r+1}).\]
|
||||
(Although not strictly necessary, it isconvenient to ask for this procedure to return $H=0$ if $v\in \psi(M_{r+1})$, or at least if $v=0$).
|
||||
\end{enumerate}
|
||||
Then, the computational method of Section \ref{secComputationalMethod} can be implemented as follows:
|
||||
|
||||
{\sc Input:}
|
||||
\begin{itemize}
|
||||
\item The map $f$,
|
||||
\item The generators $g_1,\dots,g_m$ of $\overline f_*\cO_X$.
|
||||
\item (Optional) a degree bound $K$.
|
||||
\end{itemize}
|
||||
|
||||
{\sc Output:}
|
||||
\begin{itemize}
|
||||
\item An integer $a$, which may be of the following forms:
|
||||
\begin{itemize}
|
||||
\item $a\geq 0$, in which case $\codim_{\mathcal A_e}(f)=a$
|
||||
\item $a=-1$, in which case $\codim_{\mathcal A_e}(f)=\infty$
|
||||
\item $a=-2$, in which case the degree bound $K$ has been surpassed during calculations (in a sense to be made precise later)
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
|
||||
{\sc
|
||||
Steps:}
|
||||
\begin{enumerate}
|
||||
\item {\sc Set}
|
||||
\begin{itemize}
|
||||
\item $a=-2$
|
||||
\item $r=0$
|
||||
\item $M=\bigoplus^p\bigoplus^m\cO_n$
|
||||
\item {\sc Set} $v_1,\dots,v_q=$ the collection of generators of $T\mathcal A_e(f)$ as an $\cO_n$-module (see Proposition \ref{propGeneratorsOfTA})
|
||||
\item $V_1,\dots,V_q=0$
|
||||
\end{itemize}
|
||||
\medskip
|
||||
\item\label{ItemLoop}{\sc If $r$ is too big for $K$} \textcolor{red}{(To be made precise)}
|
||||
\begin{itemize}
|
||||
\item {\sc return $a$}
|
||||
\end{itemize}
|
||||
|
||||
\medskip
|
||||
\item\label{refItemElseFor} {\sc Else:}
|
||||
\begin{enumerate}
|
||||
\item {\sc For $i=1,\dots,q$}\label{refItemFor}
|
||||
\begin{itemize}
|
||||
\item {\sc Find a matrix $R_i$, such that}
|
||||
\[\psi(R_i)\equiv v_i\mod \psi(M_{r+1}).\]
|
||||
(See Remark \ref{remEfficiency})
|
||||
\item $V_i=V_i+R_i$
|
||||
\item $v_i=v_i-\psi(R_i)$
|
||||
\end{itemize}
|
||||
\medskip
|
||||
\item $d_r=\dim_\C\dfrac{\langle V_1,\dots,V_q\rangle+M_r}{\langle V_1,\dots,V_q\rangle+M_{r+1}}$
|
||||
\medskip
|
||||
\item
|
||||
{\sc If $v_1=\dots=v_q=0$, then}
|
||||
\begin{itemize}
|
||||
\item $T=\dim_\C\dfrac{\langle V_1,\dots,V_q\rangle+M_r}{\langle V_1,\dots,V_q\rangle+M_{r+1}}$
|
||||
\smallskip
|
||||
\item {\sc If $T=-1$}
|
||||
\begin{itemize}
|
||||
\item {\sc return $T$}
|
||||
\end{itemize}
|
||||
\smallskip
|
||||
\item {\sc Else,}
|
||||
\begin{itemize}
|
||||
\item{\sc return $d_0+\dots+d_r+T$}
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\item {\sc Else}
|
||||
\begin{itemize}
|
||||
\item {\sc If $d_r=0$ and we have enough consecutive $d_{r-L}=\dots=d_r=0$} \textcolor{red}{(To be made precise)},
|
||||
\begin{itemize}
|
||||
\item {\sc return $d_0+\dots+d_{r-L-1}$.}
|
||||
\end{itemize}
|
||||
\item {\sc Else,}
|
||||
\begin{itemize}
|
||||
\item $r=r+1$
|
||||
\item {\sc go to step \ref{ItemLoop}}
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\end{itemize}
|
||||
\end{enumerate}
|
||||
\end{enumerate}
|
||||
|
||||
\begin{rem}\label{remEfficiency} Step \ref{refItemFor} involves a huge amount of calculations. Remarks \ref{remAlpha}
|
||||
and \ref{remLessCalculations} should be taken into account in order to reduce it. Without being very precise, in principle, it should be enough to compute at most the consecutive approximations of certain set of monomials, or of the products, $x_ig_j$ or something like that
|
||||
\end{rem}
|
||||
|
||||
\begin{rem}\label{remEfficientQuotients}
|
||||
If we replace $d_r$ by $D_r$ as in Remark \ref{remDr} and choose $M_r$ adequately, the calculations of $D_r$ required are calculations in a free module over a quotient ring, which could speed up calculations.
|
||||
\end{rem}
|
||||
|
||||
|
||||
\section{Filtration choices and their associated approximations}
|
||||
The method explained above requires to
|
||||
\begin{enumerate}
|
||||
\item Chose a filtration $M_\bullet$ as in Definition \ref{defFiltration}
|
||||
\item Computing aproximations $H\in M_r$ of residues $v\in \psi(M_{r})$ modulo the chosen filtration:
|
||||
|
||||
\end{enumerate}
|
||||
We must take into account that at this point we do not know how to compute approximations modulo an arbitrary submodule $\psi(M_r)$, but only approximations of the form
|
||||
\[\psi(H)\equiv v\mod \bigoplus^p \km_X^N.\]
|
||||
Theoretically, this is not a problem, because the origin-supported condition together with the finiteness of $\overline f$ (see Remark \ref{remFiltrationConditions}) ensure that, for every $r$, there is some exponent $N$ such that
|
||||
\[\bigoplus^p \km_X^N\subseteq M_r\] and clearly an approximation modulo $\bigoplus^p \km_X^N$ is a valid approximation modulo $M_r$ as well.
|
||||
|
||||
\begin{rem}Notice that we do not need to compute $N$ before proceeding to compute the approximations. We can fix a tentative $N$, compute the approximation modulo $\bigoplus^p \km_X^N$. Then compute its residue modulo $\psi(M_r)$. If the residue is zero, the desired approximation has been obtained. Otherwise, the residue of this approximation is approximated again with $N$ replaced by $N+1$.
|
||||
\end{rem}
|
||||
|
||||
|
||||
It is however likely that the choice of the filtration affects the efficiency of the algorithm. The idea of this section is to collect the different choices that we want to experiment with.
|
||||
\subsection{The target-degree filtration}
|
||||
For each $r$, take
|
||||
\[M_r=\bigoplus^p\bigoplus^m \km_n^r\]
|
||||
For this filtration, if we let \[\operatorname{ord}(\overline f)=\max\{\operatorname{ord}(f_1),\dots,\operatorname{ord}(f_n)\}\qquad \rho=\max\{\operatorname{ord}(g_1),\dots,\operatorname{ord}(g_n)\},\]
|
||||
For each $r$, our tentative initial $N$ is
|
||||
\[N= r\cdot \operatorname{ord}(\overline f)+\rho\]
|
||||
|
||||
\subsection{The source-degree filtration}
|
||||
For each $r$, take
|
||||
\[\mathfrak n_{k,r}=\{X^\alpha\mid \sum_{j=1}^n\alpha_j\cdot \operatorname{ord}(f_j)\operatorname{ord}(g_k)\geq r\}\]
|
||||
The tentative initial $N$ is
|
||||
\[N= r\]
|
||||
|
||||
\section{Procedures}
|
||||
\begin{enumerate}
|
||||
\item GeneratingSetOverC:
|
||||
|
||||
{\sc Input:} list of polynomials $H=h_1,\dots,h_n$
|
||||
|
||||
{\sc Output:}
|
||||
\begin{itemize}
|
||||
\item basis $Q=q_1,\dots,q_r$ of $\Span_\C\{h_1,\dots,h_n\}$.
|
||||
\item $n\times r$ matrix $M$ with entries in $\C$ such that
|
||||
\[H=MQ\]
|
||||
\end{itemize}
|
||||
Should consist just on calling \[{\sc coef (ideal(h1,\dots,h_n),x_1\cdot\dots\cdot x_n))}\] and applying Gauss reduction to the resulting matrix while keeping track of the steps to undo the process.
|
||||
|
||||
Remark: Ideally, we would provide a generating set over $\cO_n$, and a matrix $M$ with entries in $\cO_n$, but producing this may be too costly.
|
||||
\bigskip
|
||||
\item ListEntries:
|
||||
|
||||
{\sc Input:} list of vectors $V=v_1,\dots,v_n$ of size $p$
|
||||
|
||||
{\sc Output:}
|
||||
\begin{itemize}
|
||||
\item list of polinomials $h_1,\dots,h_m$ consisting of the entries of $v_i$ (in order of appearance)
|
||||
\item the integer $p$
|
||||
\end{itemize}
|
||||
\bigskip
|
||||
|
||||
\item AproxModuloM:
|
||||
|
||||
{\sc Input:}
|
||||
\begin{itemize}
|
||||
\item polynomial $h$
|
||||
\item module M
|
||||
\end{itemize}
|
||||
|
||||
{\sc Output:}
|
||||
\begin{itemize}
|
||||
\item vector $H=H_1,\dots,H_m$ such that
|
||||
\[h\equiv\varphi(H)\mod M\]
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\end{enumerate}
|
||||
|
||||
|
||||
\section{To do list}
|
||||
\begin{enumerate}
|
||||
\item Minimizing ammount of approximations: Much of the calculations are repeated, simply because they appear at different entries of vectors. It seems that, for every graded piece $M_r/M_{r+1}$ we should be pin down a set of monomials that need to be approximated, and use these to write down all the required vectors. Also, we may be able to exploit the expressions of the monomials in lower degree to speed up the current degree calculations.
|
||||
|
||||
Idea: replace $v_1,\dots,v_q$ by a basis of the $\C$-vector space spanned by all entries of $v_1,\dots,v_q$.
|
||||
\item Replacement of generators: Figure out whether a generator $v$ can be replaced by a combination $\tilde v$ of the existing generators with target coefficients, in a way such that
|
||||
\begin{itemize}
|
||||
\item The submodule generated is the same using $v$ or $\tilde v$
|
||||
\item The approximation of $\tilde v$ is exact
|
||||
\end{itemize}
|
||||
|
||||
\end{enumerate}
|
||||
|
||||
|
||||
|
||||
%
|
||||
%\section{\textcolor{red}{Old Stuff }}
|
||||
%
|
||||
%Consider a polynomial map-germ $f\colon (\C^n,0)\to(\C^p,0),$ with coordinate functions $f_i(x)$, such that the map given by the first $n$ coordinates functions, \[\overline f\colon (\C^n,0)\to (\C^n,0)\] is finite. To avoid confusion, we write \[X=(\C^n,0)\quad \text{and}\quad \overline f\colon X\to (\C^n,0).\] Let \[g_1,\dots,g_m\in \overline f_*\cO_n\] be a set of generators of $\overline f_*\cO_n$, which is the ring $\cO_X$, regarded as an $\cO_n$-algebra via composition with $\overline f$.
|
||||
%Consider the $\cO_n$-module\[\theta(f)=\bigoplus^p \overline f_*\cO_X\cong \bigoplus^p\bigoplus^m \cO_n \]
|
||||
%and the $\mathcal A_e$-tangent submodule
|
||||
%\[T\mathcal A _e(f)\leq \theta(f).\]
|
||||
%This is the smallest submodule of $\theta(f)$ containing all vectors \[h(x)\cdot\pd{f}{x_i},\quad h\in \cO_X, 1\leq i\leq n,\] and the submodule \[\bigoplus^p \C[f_1,\dots,f_p].\]
|
||||
%\begin{prop}
|
||||
%With the above notations, $T\mathcal A _e(f)$ is generated as an $\cO_n$-module by
|
||||
%\begin{itemize}
|
||||
%\item The vectors
|
||||
%\[\pd{f}{x_i}\cdot g_\ell,\quad i=1,\dots,n,\ell=1,\dots,m\]
|
||||
%\item The vectors
|
||||
%\[(0,\dots,H,\dots,0),\]
|
||||
%where $H$ is of the form $f_{n+1}^{\alpha_{n+1}}\dots f_{p}^{\alpha_{p}}$, with $0\leq \alpha_i\leq m-1$.
|
||||
%\end{itemize}
|
||||
%\end{prop}
|
||||
%Let $\km$ be the maximal ideal in $\cO_X$ and write
|
||||
%\[\mathcal M^{(j)}=\bigoplus^p \km^j\leq \theta(f)\]
|
||||
%Consider a sequence of submodules $T\mathcal A _e(f)^{(j)}\subseteq \theta(f)$, such that
|
||||
%\[T\mathcal A _e(f)^{(j)}\equiv T\mathcal A _e(f)\mod \cM^{(j+1)},\]
|
||||
%and write
|
||||
%\[d_j=\dim_\C\frac{T\mathcal A _e(f)^{(j)}+\cM^{(j)}}{T\mathcal A _e(f)^{(j)}+\cM^{(j+1)}}=\dim_\C\frac{T\mathcal A _e(f)+\cM^{(j)}}{T\mathcal A _e(f)+\cM^{(j+1)}}\]
|
||||
%
|
||||
%\begin{prop}[Case 1]Assume that there exists $k$ such that $T\mathcal A _e(f)^{(k)}=T\mathcal A _e(f)$. Then,
|
||||
%\[\operatorname{cod}_{\mathcal A _e}(f)=d_0+d_1+d_2+\cdots+d_{k-1}+\dim_\C\frac{T\mathcal A _e(f)^{(k)}+\cM^{(k)}}{T\mathcal A _e(f)^{(k)}}\]
|
||||
%\end{prop}
|
||||
%
|
||||
%\begin{prop}[Case 2]Assume that there exists $\ell$ as in Du Plesis result (\textcolor{red}{to be made precise}) and assume that there exists $k$ such that $d_{k+1}=\dots=d_{k+\ell}=0$. Then,
|
||||
%\[\operatorname{cod}_{\mathcal A _e}(f)=d_1+d_2+\cdots+d_{k}.\]
|
||||
%
|
||||
%\end{prop}
|
||||
%
|
||||
%\section{to do list}
|
||||
%\begin{enumerate}
|
||||
%\item Replace $\cM^{(k)}$ by any decreasing sequence of $\cO_n$-modules
|
||||
%\[\theta(f)=\cM^{(0)}\geq \cM^{(1)}\geq\dots\geq \cM^{(j)}\geq \cdots,\]
|
||||
%such that
|
||||
%\[\bigcap_j\cM^{(j)}=0\]
|
||||
%(the idea is to compute aproximations modulo $\cM^{(j)}$, and then let $\cM^{(j+1)}$ be the smallest module containing the ``residues'', or something like that, in a way that, if the aproximation modulo $\cM^{(j)}$ is exact, then we may take $\cM^{(j+1)}=0$)
|
||||
%\item Formalize the fact that we are going to compute things in $\bigoplus^p\bigoplus^m \cO_n$, and replace the corresponding modules by the isomorphic images of their aproximations modulo $\cM^{(j)}$ in $\bigoplus^p\bigoplus^m \cO_n$
|
||||
%\end{enumerate}
|
||||
|
||||
\end{document}
|
||||
|
||||
@ -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).
|
||||
@ -28,5 +28,6 @@ Time is expressed in seconds.
|
||||
| 2. | 0.01 | 0.10 | 0.03 |
|
||||
| 3. | 0.07 | 0.36 | 0.03 |
|
||||
| 4. | 0.01 | 0.13 | 0.11 |
|
||||
| 5. | ---- | |
|
||||
| 6. | 0.03 | 163.34 | 36659.08 |
|
||||
| 7. | 0.03 | 0.60 | 83043.46 |
|
||||
|
||||
@ -1,9 +0,0 @@
|
||||
LIB "AeCodPruebas.lib";
|
||||
|
||||
ring r = 0,(x),(c,ds);
|
||||
ideal f = x2+x4,x3;
|
||||
|
||||
breakpoint(NormalOYModule);
|
||||
AeNormal(f,maxideal(10));
|
||||
|
||||
quit;
|
||||
57
example.c
Normal file
57
example.c
Normal file
@ -0,0 +1,57 @@
|
||||
LIB"AeCodPruebas.lib";
|
||||
ring r = 0,(x,y),ds;
|
||||
int i;
|
||||
|
||||
ideal f = x, xy+y6+y9;
|
||||
ideal mappingf = f[1..nvars(r)];
|
||||
//breakpoint(MaxPowerContained);
|
||||
|
||||
//AeNormal(f,maxideal(3));quit;
|
||||
|
||||
int k = MaxPowerContained(f);
|
||||
int a = 0;
|
||||
ideal aux1 = 0;
|
||||
ideal aux2 = 0;
|
||||
k;
|
||||
while (size(aux1)==0 && size(aux2)==0)
|
||||
{
|
||||
a++;
|
||||
aux1 = reduce(maxideal(k), std(mappingf^a));
|
||||
aux2 = reduce(maxideal(k-1), std(mappingf^a));
|
||||
}
|
||||
|
||||
a;
|
||||
|
||||
if (size(aux1)!=0)
|
||||
{
|
||||
"warning!";
|
||||
}
|
||||
|
||||
AeNormal(f, maxideal(a));
|
||||
|
||||
//breakpoint(GenerateOYModule,464);
|
||||
//breakpoint(MalgrFormVect);
|
||||
/*
|
||||
int k = MaxPowerContained(f);
|
||||
int a = 1;
|
||||
ideal mappingf = f[1..nvars(r)];
|
||||
ideal auxred=reduce(mappingf^k, maxideal(1));
|
||||
|
||||
TargetIdeal(f,maxideal(5));
|
||||
*/
|
||||
|
||||
//AeNormal(f, );
|
||||
|
||||
/*
|
||||
def Q = MalgrRing(ideal(0),2,ideal(x,y2));
|
||||
setring Q;
|
||||
|
||||
def f = imap(r,f);
|
||||
def jf = imap(r,jf);
|
||||
|
||||
jf[1];
|
||||
|
||||
MalgrFormVect(matrix(jf[1]), maxOX^5);
|
||||
*/
|
||||
|
||||
quit;
|
||||
66
example2.c
Normal file
66
example2.c
Normal file
@ -0,0 +1,66 @@
|
||||
LIB"AeCodPruebas.lib";
|
||||
|
||||
/*ring r = 0,(x(1..5)),ds;
|
||||
|
||||
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;
|
||||
107
example3.c
Normal file
107
example3.c
Normal file
@ -0,0 +1,107 @@
|
||||
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;
|
||||
;
|
||||
322
main.tex
Normal file
322
main.tex
Normal file
@ -0,0 +1,322 @@
|
||||
\documentclass[a4paper]{amsart}
|
||||
%\documentclass[a4paper,twoside]{article}
|
||||
|
||||
\usepackage{color}
|
||||
%\usepackage{authblk}
|
||||
%\usepackage{makeidx} % allows index generatio
|
||||
\makeindex
|
||||
\usepackage{graphicx}
|
||||
\usepackage[all]{xy}
|
||||
\usepackage{amssymb}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{amsthm}
|
||||
\usepackage{hhline}
|
||||
\usepackage{tikz-cd}
|
||||
\usepackage{longtable}
|
||||
\usepackage{ulem}
|
||||
%\usepackage{amsfont}
|
||||
\usepackage[a4paper, left=2cm, right=2cm, top=2cm,bottom=2cm]{geometry}
|
||||
\usepackage{hyperref}
|
||||
\usepackage[draft=true]{minted}
|
||||
\usepackage{xspace}
|
||||
\usepackage[backend=bibtex, bibencoding=utf8, doi=false, url=false, isbn=false]{biblatex}
|
||||
\addbibresource{./sources.bib}
|
||||
%\usepackage{draftwatermark}
|
||||
%\SetWatermarkText{Early draft -- Do not circulate!}
|
||||
%\SetWatermarkScale{1.2}
|
||||
%\usepackage{cleveref}
|
||||
|
||||
\theoremstyle{definition}
|
||||
\newtheorem{theorem}{Theorem}[section]
|
||||
\newtheorem{definition}[theorem]{Definition}
|
||||
\newtheorem{remark}[theorem]{Remark}
|
||||
\newtheorem{result}[theorem]{Result}
|
||||
\newtheorem{proposition}[theorem]{Proposition}
|
||||
\newtheorem{lemma}[theorem]{Lemma}
|
||||
\newtheorem{example}[theorem]{Example}%
|
||||
\newtheorem{conjecture}[theorem]{Conjecture}%
|
||||
\newtheorem{corollary}[theorem]{Corollary}
|
||||
\newtheorem{construction}[theorem]{Construction}%
|
||||
\newtheorem{observation}[theorem]{Observation}
|
||||
|
||||
%\newenvironment{proof}{\noindent
|
||||
%{\bf Proof:}}{
|
||||
%\begin{flushright}$\Box$\end{flushright}}
|
||||
|
||||
\usepackage[all]{xy}
|
||||
\usepackage{pdflscape}
|
||||
%\usepackage{nccmath}
|
||||
|
||||
%\newenvironment{mpmatrix}{\begin{smallsize}\begin{pmatrix}}{\end{\pmatrix}\end{smallsize}}%
|
||||
\setcounter{MaxMatrixCols}{66}
|
||||
|
||||
\newcommand{\Span}{\mathrm{span}\,}
|
||||
\newcommand{\Tor}{\mathrm{Tor}\,}
|
||||
\newcommand{\Der}{\mathrm{Der}}
|
||||
\newcommand{\KK}{\mathbb{K}}
|
||||
\newcommand{\fsl}{\mathfrak{sl}}
|
||||
\newcommand{\Eu}{\mathrm{Eu}}
|
||||
\newcommand{\fgl}{\mathfrak{gl}}
|
||||
\newcommand{\sq}{\mathrm{sq}}
|
||||
\newcommand{\Hom}{\mathrm{Hom}}
|
||||
\newcommand{\Pf}{\mathrm{Pf}\,}
|
||||
\newcommand{\Jac}{\mathrm{Jac}}
|
||||
\newcommand{\Grass}{\mathrm{Grass}}
|
||||
\newcommand{\im}{\mathrm{im}\,}
|
||||
\newcommand{\RR}{\mathbb{R}}
|
||||
\newcommand{\Id}{\mathrm{Id}}
|
||||
\newcommand{\PP}{\mathbb{P}}
|
||||
\newcommand{\IA}{\mathbb{A}}
|
||||
\newcommand{\FF}{\mathbb{F}}
|
||||
\newcommand{\Inf}{\mathrm{Inf}}
|
||||
\newcommand{\NN}{\mathbb{N}}
|
||||
\newcommand{\Spec}{\mathrm{Spec}\,}
|
||||
\newcommand{\CC}{\mathbb C}
|
||||
\newcommand{\sk}{\mathrm{sk}}
|
||||
\newcommand{\sym}{\mathrm{sym}}
|
||||
\newcommand{\QQ}{\mathbb Q}
|
||||
\newcommand{\bbk}{\mathbf k}
|
||||
\newcommand{\ZZ}{\mathbb Z}
|
||||
\renewcommand{\PP}{\mathbb P}
|
||||
\newcommand{\GL}{\mathrm{GL}}
|
||||
\newcommand{\SL}{\mathrm{SL}}
|
||||
\newcommand{\OO}{\mathcal{O}}
|
||||
\newcommand{\m}{\mathfrak{m}}
|
||||
\newcommand{\height}{\mathrm{height}\,}
|
||||
\newcommand{\coker}{\mathrm{coker}\,}
|
||||
\newcommand{\grade}{\mathrm{grade}\,}
|
||||
\newcommand{\depth}{\mathrm{depth}\,}
|
||||
\newcommand{\projdim}{\mathrm{projdim}\,}
|
||||
\newcommand{\Ext}{\mathrm{Ext}}
|
||||
\newcommand{\Aut}{\mathrm{Aut}}
|
||||
\newcommand{\Triv}{\mathrm{Triv}}
|
||||
\newcommand{\nef}{\mathrm{nef}}
|
||||
\newcommand{\aut}{\mathrm{aut}}
|
||||
\newcommand{\rk}{\mathrm{rank}}
|
||||
\newcommand{\Div}{\mathrm{Div}}
|
||||
\newcommand{\Kosz}{\mathrm{Kosz}}
|
||||
\newcommand{\rank}{\mathrm{rank}\,}
|
||||
\newcommand{\tr}{\mathrm{tr}\,}
|
||||
\newcommand{\NS}{\mathrm{NS}}
|
||||
\newcommand{\Num}{\mathrm{Num}}
|
||||
\newcommand{\Pic}{\mathrm{Pic}}
|
||||
\newcommand{\Oscar}{OSCAR\xspace}
|
||||
%\newcommand{\D}{d}
|
||||
\newcommand{\D}{\operatorname{d}\!}
|
||||
|
||||
%CHANGE FOR WORKING PHASE -- DELETE SUBSEQUENT TWO LINES LATER
|
||||
\newcommand{\red}[1]{{\textcolor{red}{#1}}}
|
||||
\newcommand{\blue}[1]{{\textcolor{blue}{#1}}}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\begin{document}
|
||||
|
||||
\title{Some thoughts on finite extensions of rings}
|
||||
|
||||
\author{Others}
|
||||
\address{
|
||||
Other authors\dots
|
||||
}
|
||||
%\email{brandhorst@math.uni-sb.de}
|
||||
%
|
||||
\author{Matthias Zach}
|
||||
\address{
|
||||
Matthias Zach:
|
||||
RPTU Kaiserslautern-Landau,
|
||||
67663 Kaiserslautern,
|
||||
Germany
|
||||
}
|
||||
|
||||
%\email{zach@mathematik.uni-kl.de}
|
||||
\begin{abstract}
|
||||
Dah.
|
||||
\end{abstract}
|
||||
\maketitle
|
||||
|
||||
We are considering complex analytic maps $f \colon (\CC^n, 0) \to (\CC^p, 0)$ which
|
||||
are \textit{finite}. In particular, we may assume $n \geq p$. By definition, $f$ is
|
||||
finite if and only if its pullback $\varphi \colon \OO_p \to \OO_n$ is a finite
|
||||
extension of rings, i.e. $\OO_n = \CC\{x_1,\dots,x_n\}$ is a finite
|
||||
$\OO_p = \CC\{y_1,\dots,y_p\}$-module via $\varphi$.
|
||||
|
||||
\begin{definition}
|
||||
Let $\varphi \colon R \to S$ be a morphism of commutative rings with unit. An element
|
||||
$x \in S$ is called \textit{integral} over $R$ if there exists a \textit{monic}
|
||||
polynomial
|
||||
\[
|
||||
P = X^r + c_{r-1} \cdot X^{r-1} + \dots + c_1 \cdot X + c_0 \in R[X]
|
||||
\]
|
||||
such that $P(x) = 0$ in $S$.
|
||||
\end{definition}
|
||||
|
||||
\begin{proposition}
|
||||
\label{prp:Finiteness}
|
||||
Let $\varphi \colon R \to S$ be a morphism of commutative, Noetherian rings with unit.
|
||||
The set of elements in $S$ which are integral over $R$ is a subalgebra of $S$.
|
||||
Moreover, $S$ is finite over $R$ if and only if $S$ is generated
|
||||
as an $R$-algebra by finitely many integral elements.
|
||||
\end{proposition}
|
||||
\noindent
|
||||
For a proof see \cite[Theorem 4.2 and Corollary 4.5]{Eisenbud95}.
|
||||
|
||||
\medskip
|
||||
|
||||
For complex analytic mappings $f$ as above, we are working with rings of
|
||||
convergent power series in several variables. In practice, however, we will
|
||||
mostly encounter maps which admit a \textit{polynomial representative}
|
||||
\[
|
||||
f \colon \CC^n \to \CC^p, \quad (x_1,\dots,x_n) \mapsto (y_1,\dots, y_p) =
|
||||
(f_1(x), \dots, f_p(x)), \quad f_j(x) \in \CC[x_1,\dots,x_n].
|
||||
\]
|
||||
It seems to be no significant restriction for practical applications to
|
||||
assume that also this polynomial representative is actually finite.
|
||||
For finite extensions of polynomial rings we do have algorithmic methods
|
||||
to compute with the structure of $S$ as an $R$-module.
|
||||
|
||||
\begin{proposition}
|
||||
Let $\varphi \colon \CC[y] \to \CC[x]$ be a mapping of polynomial
|
||||
rings given by $y_j \mapsto f_j(x_1,\dots,x_n)$. Let
|
||||
\[
|
||||
J = \langle y_j - f_j(x) : j = 1,\dots, p\rangle \subset \CC[y, x]
|
||||
\]
|
||||
and $LJ$ the \textit{leading ideal} of $J$ with respect to a monomial
|
||||
ordering which is an elimination ordering on the $x$-variables.
|
||||
Then $\varphi$ is finite if and only if $\langle x_1,\dots, x_n\rangle^N \subset LJ$
|
||||
for some $N \in \NN$. In this case, the set of monomials
|
||||
$\{ x^\alpha : \alpha \in \NN^n, \, x^\alpha \notin LI\}$
|
||||
are a generating set for $\CC[x]$ as a $\CC[y]$-module.
|
||||
\end{proposition}
|
||||
\noindent
|
||||
TODO: Find a reference for the proof.
|
||||
\medskip
|
||||
|
||||
Based on this result we can implement seamless transitions for elements $h \in S$
|
||||
between their representation as polynomials $h \in \CC[x]$
|
||||
and module elements $v \in R \cdot e_1 + \dots + R \cdot e_m$ with respect to a
|
||||
chosen system of generators over $R$.
|
||||
|
||||
\medskip
|
||||
Working with power series in computer algebra is an almost impossible undertaking
|
||||
beyond simple arithmetic. Recall that in general it must be deemed impossible to even decide
|
||||
equality of two given power series. Thus, the naive hope at this point would be
|
||||
that \textit{localizing} at the origins of the domain and codomain of $f$,
|
||||
respectively, would bring us sufficiently close to working with power
|
||||
series by restricting ourselves to those which are in fact \textit{rational functions}.
|
||||
|
||||
\begin{proposition}
|
||||
\label{prp:NonFiniteness}
|
||||
Let $\varphi \colon R \to S$ be a finite extension of commutative Noetherian rings with
|
||||
unit. Let $P \subset R$ be a prime ideal and $Q \subset S$ prime with
|
||||
$\varphi^{-1}(Q) = P$ (i.e. $Q$ is a \textit{prime over} $P$).
|
||||
Then the naturally induced morphism on the localizations
|
||||
\[
|
||||
\phi \colon R_P \to S_Q
|
||||
\]
|
||||
is finite if and only if $Q$ is the only prime in $S$ with that property.
|
||||
\end{proposition}
|
||||
|
||||
\begin{proof}
|
||||
According to Proposition
|
||||
\ref{prp:Finiteness}, we have finiteness of $\phi$ if and only if an arbitrary element
|
||||
$\frac{a}{b} \in S_Q$ is integral over $R_P$. Now by assumption both $a$ and $b$ are
|
||||
integral over $R$ and hence over $R_P$ and since $\frac{a}{b} = a \cdot \frac{1}{b}$
|
||||
it suffices to consider elements of the form $\frac{1}{b}$ for $b \notin Q$.
|
||||
|
||||
Suppose we found a monic polynomial
|
||||
\[
|
||||
F = X^r + c_{r-1} \cdot X^{r-1} + \dots + c_1 \cdot X^1 + c_0 \in R_P[X]
|
||||
\]
|
||||
with $F\left(\frac{1}{b}\right) = 0$ in $S_Q$. Then we can clear denominators to
|
||||
obtain
|
||||
\[
|
||||
F' = c'_r \cdot X^r + c'_{r-1} \cdot X^{r-1} + \dots + c'_1 \cdot X^1 + c'_0 \in R[X]
|
||||
\]
|
||||
with $F'\left(\frac{1}{b}\right) = 0$ and $c'_r \notin P$.
|
||||
But then, by definition of localization at $Q$,
|
||||
\[
|
||||
u \cdot \left( c'_r + c'_{r-1} \cdot b + \dots + c'_1 \cdot b^{r-1} + c'_0 \cdot b^r
|
||||
\right) = 0
|
||||
\]
|
||||
in $S$ for some $u \notin Q$. This expression can be split as
|
||||
\begin{equation}
|
||||
\label{eqn:Splitting}
|
||||
-u \cdot c'_r = u \cdot b \cdot \left(c'_{r-1} + c'_{r-2} \cdot b + \dots + c'_1 \cdot b^{r-2} + c'_0 \cdot b^{r-1} \right).
|
||||
\end{equation}
|
||||
|
||||
Now suppose $Q'\neq Q$ was another prime with $\varphi^{-1}(Q') = P = \varphi^{-1}(Q)$.
|
||||
Choosing $b \in Q' \setminus Q$ leads to a contradiction in (\ref{eqn:Splitting}):
|
||||
Clearly, the right hand side, containing $b$ as a factor, is an element in $Q'$.
|
||||
Comparing with the left hand side, we find that
|
||||
$c'_r \notin P = \varphi^{-1}(Q) = \varphi^{-1}(Q')$ and, hence, $\varphi(c'_r) \in S$ is
|
||||
neither an element of $Q$, nor of $Q'$. This leaves us with $u \in Q'$.
|
||||
|
||||
To arrive at a contradiction, let
|
||||
\[
|
||||
\mathrm{ord}_{Q'} \colon S \to \NN_0, \quad a \mapsto \mathrm{max}
|
||||
\left\{k \in \NN_0 : a \in Q'^{(k)}\right\}
|
||||
\]
|
||||
where $Q'^{(k)}$ denotes the $k$-th \textit{symbolic power}, i.e.
|
||||
the preimage of $\left(Q'_{Q'}\right)^k$ in $S$ under the localization
|
||||
map $S \to S_{Q'}$. The map $\mathrm{ord}_{Q'}$ is a \textit{valuation}
|
||||
and it is now easy to see that the valuation of the left hand side of
|
||||
(\ref{eqn:Splitting}) is strictly less than the valuation of the
|
||||
right hand side.
|
||||
|
||||
TODO: Find an argument to prove the converse.
|
||||
% On the contrary, if $Q$ was the only prime over $P$, we can argue as follows.
|
||||
% Let $b \in S \setminus Q$ be arbitrary and
|
||||
% \[
|
||||
% G = X^r + a_{r-1} \cdot X^{r-1} + a_{r-2} \cdot X^{r-2} + \dots + a_1 \cdot X + a_0 \in
|
||||
% R[X]
|
||||
% \]
|
||||
% a monic polynomial with $G(b) = 0$ in $S$. We may choose $G$ to be of minimal
|
||||
% degree with this property. Then
|
||||
% \[
|
||||
% G^\vee = 1 + a_{r-1} \cdot X + a_{r-2} \cdot X^2 + \dots + a_1 \cdot X^{r-1} + a_0 \cdot X^r
|
||||
% \]
|
||||
% satisfies $G^\vee\left(\frac{1}{b}\right) = 0$ in $S_Q$. Provided that we are allowed
|
||||
% to divide by $a_0$ in $R_P$, we would thus get a monic polynomial
|
||||
% in $R_P[X]$ annihilating $\frac{1}{b}$.
|
||||
%
|
||||
% Now suppose $a_0 \in P$ so that $\varphi(a_0) \in Q$. Expanding $G(b) = 0$
|
||||
% then yields
|
||||
% is a unit in $
|
||||
% Now suppose $\varphi(a_0) \in Q$, so
|
||||
% $a_0 \in P = \varphi^{1}(Q)$.
|
||||
|
||||
\end{proof}
|
||||
|
||||
\begin{example}
|
||||
Consider the map
|
||||
\[
|
||||
f \colon \CC \to \CC, \quad x \mapsto y = x - x^3.
|
||||
\]
|
||||
Clearly, $\varphi \colon \CC[y] \to \CC[x]$ is finite and, in fact,
|
||||
$\CC[x]$ is a free $\CC[y]$-module with generating set $1, x, x^2$.
|
||||
|
||||
For the analytification of this map $f \colon (\CC, 0) \to (\CC, 0)$
|
||||
the implicit function theorem yields that there exists a local inverse
|
||||
\[
|
||||
y = x - x^3, \quad x = y + \sum_{k = 2}^\infty c_k \cdot y^k \in \CC\{y\}
|
||||
\]
|
||||
as a convergent power series in $y$. Therefore $\varphi^h \colon \CC\{y\} \to \CC\{x\}$
|
||||
is in fact an \textit{isomorphism} and $\CC\{x\}$ is generated as a $\CC\{y\}$-module
|
||||
by the unit element $1 \in \CC\{x\}$.
|
||||
|
||||
Thus we find a discrepancy of $3 - 1 = 2$ in the ranks of the two modules over the
|
||||
respective rings. One could hope that the localization
|
||||
\[
|
||||
\phi \colon \CC[y]_{\langle y\rangle} \to \CC[x]_{\langle x \rangle}
|
||||
\]
|
||||
provides us with a reasonable approximation to $\varphi^h$, but
|
||||
Proposition \ref{prp:NonFiniteness} tells us that the elements
|
||||
\[
|
||||
M_p = \left\langle\left(\frac{1}{1 - x}\right)^k : k \leq p\right\rangle_{\CC[y]_{\langle y\rangle}}
|
||||
\]
|
||||
form an infinite, ever increasing sequence of
|
||||
$\CC[y]_{\langle y \rangle}$-submodules of $\CC[x]_{\langle x \rangle}$ and
|
||||
that, hence, $\CC[x]_{\langle x \rangle}$ does not have a finite
|
||||
$\CC[y]_{\langle y\rangle}$-module structure.
|
||||
\end{example}
|
||||
\printbibliography
|
||||
\end{document}
|
||||
Loading…
Reference in New Issue
Block a user