|
D.15.12.42 multiDegResolution
Procedure from library multigrading.lib (see multigrading_lib).
- Usage:
- multiDegResolution(I,l,[f]); I is poly/vector/ideal/module; l,f are integers
- Purpose:
- computes the multigraded resolution of I of the length l,
or the whole resolution if l is zero. Returns minimal resolution if an optional
argument 1 is supplied
- Note:
- input must have multigraded-homogeneous generators.
The returned list is truncated beginning with the first zero differential.
- Returns:
- list, the computed resolution
Example:
| LIB "multigrading.lib";
ring r = 0,(x,y,z,w),dp;
intmat M[2][4]=
1,1,1,1,
0,1,3,4;
setBaseMultigrading(M);
module m= ideal( xw-yz, x2z-y3, xz2-y2w, yw2-z3);
isHomogeneous(ideal( xw-yz, x2z-y3, xz2-y2w, yw2-z3), "checkGens");
==> 1
ideal A = xw-yz, x2z-y3, xz2-y2w, yw2-z3;
int j;
for(j=1; j<=ncols(A); j++)
{
multiDegPartition(A[j]);
}
==> _[1]=-yz+xw
==> _[1]=-y3+x2z
==> _[1]=xz2-y2w
==> _[1]=-z3+yw2
intmat v[2][1]=
1,
0;
m = setModuleGrading(m, v);
// Let's compute Syzygy!
def S = multiDegSyzygy(m); S;
==> S[1]=yw*gen(1)-x*gen(4)-z*gen(3)
==> S[2]=z2*gen(1)-y*gen(4)-w*gen(3)
==> S[3]=xz*gen(1)+y*gen(3)-w*gen(2)
==> S[4]=y2*gen(1)+x*gen(3)-z*gen(2)
"Module Units Multigrading: "; print( getModuleGrading(S) );
==> Module Units Multigrading:
==> 3 4 4 4
==> 4 3 6 9
"Multidegrees: "; print(multiDeg(S));
==> Multidegrees:
==> 5 5 5 5
==> 9 10 7 6
/////////////////////////////////////////////////////////////////////////////
S = multiDegGroebner(S); S;
==> S[1]=yw*gen(1)-x*gen(4)-z*gen(3)
==> S[2]=z2*gen(1)-y*gen(4)-w*gen(3)
==> S[3]=xz*gen(1)+y*gen(3)-w*gen(2)
==> S[4]=y2*gen(1)+x*gen(3)-z*gen(2)
==> S[5]=xy*gen(4)+yz*gen(3)+xw*gen(3)-zw*gen(2)
==> S[6]=xz2*gen(4)+z3*gen(3)-y2w*gen(4)-yw2*gen(3)
==> S[7]=x2z*gen(4)+xz2*gen(3)+y2w*gen(3)-yw2*gen(2)
==> S[8]=y3*gen(3)-x2z*gen(3)+xz2*gen(2)-y2w*gen(2)
==> S[9]=y3*gen(4)+xz2*gen(3)-z3*gen(2)+y2w*gen(3)
"Module Units Multigrading: "; print( getModuleGrading(S) );
==> Module Units Multigrading:
==> 3 4 4 4
==> 4 3 6 9
"Multidegrees: "; print(multiDeg(S));
==> Multidegrees:
==> 5 5 5 5 6 7 7 7 7
==> 9 10 7 6 10 15 12 9 12
/////////////////////////////////////////////////////////////////////////////
list L = multiDegResolution(m, 0, 1);
for( j =1; j<=size(L); j++)
{
"----------------------------------- ", j, " -----------------------------";
L[j];
"Module Multigrading: "; print( getModuleGrading(L[j]) );
"Multigrading: "; print(multiDeg(L[j]));
}
==> ----------------------------------- 1 -----------------------------
==> _[1]=yz*gen(1)-xw*gen(1)
==> _[2]=z3*gen(1)-yw2*gen(1)
==> _[3]=xz2*gen(1)-y2w*gen(1)
==> _[4]=y3*gen(1)-x2z*gen(1)
==> Module Multigrading:
==> 1
==> 0
==> Multigrading:
==> 3 4 4 4
==> 4 9 6 3
==> ----------------------------------- 2 -----------------------------
==> _[1]=yw*gen(1)-x*gen(2)+z*gen(3)
==> _[2]=z2*gen(1)-y*gen(2)+w*gen(3)
==> _[3]=xz*gen(1)-y*gen(3)-w*gen(4)
==> _[4]=y2*gen(1)-x*gen(3)-z*gen(4)
==> Module Multigrading:
==> 3 4 4 4
==> 4 9 6 3
==> Multigrading:
==> 5 5 5 5
==> 9 10 7 6
==> ----------------------------------- 3 -----------------------------
==> _[1]=x*gen(2)-y*gen(1)-z*gen(3)+w*gen(4)
==> Module Multigrading:
==> 5 5 5 5
==> 9 10 7 6
==> Multigrading:
==> 6
==> 10
/////////////////////////////////////////////////////////////////////////////
L = multiDegResolution(maxideal(1), 0, 1);
for( j =1; j<=size(L); j++)
{
"----------------------------------- ", j, " -----------------------------";
L[j];
"Module Multigrading: "; print( getModuleGrading(L[j]) );
"Multigrading: "; print(multiDeg(L[j]));
}
==> ----------------------------------- 1 -----------------------------
==> _[1]=w
==> _[2]=z
==> _[3]=y
==> _[4]=x
==> Module Multigrading:
==> 0
==> 0
==> Multigrading:
==> 1 1 1 1
==> 4 3 1 0
==> ----------------------------------- 2 -----------------------------
==> _[1]=-z*gen(1)+w*gen(2)
==> _[2]=-y*gen(1)+w*gen(3)
==> _[3]=-y*gen(2)+z*gen(3)
==> _[4]=-x*gen(1)+w*gen(4)
==> _[5]=-x*gen(2)+z*gen(4)
==> _[6]=-x*gen(3)+y*gen(4)
==> Module Multigrading:
==> 1 1 1 1
==> 4 3 1 0
==> Multigrading:
==> 2 2 2 2 2 2
==> 7 5 4 4 3 1
==> ----------------------------------- 3 -----------------------------
==> _[1]=y*gen(1)-z*gen(2)+w*gen(3)
==> _[2]=x*gen(1)-z*gen(4)+w*gen(5)
==> _[3]=x*gen(2)-y*gen(4)+w*gen(6)
==> _[4]=x*gen(3)-y*gen(5)+z*gen(6)
==> Module Multigrading:
==> 2 2 2 2 2 2
==> 7 5 4 4 3 1
==> Multigrading:
==> 3 3 3 3
==> 8 7 5 4
==> ----------------------------------- 4 -----------------------------
==> _[1]=-x*gen(1)+y*gen(2)-z*gen(3)+w*gen(4)
==> Module Multigrading:
==> 3 3 3 3
==> 8 7 5 4
==> Multigrading:
==> 4
==> 8
kill v;
def h = hilbertSeries(m);
==> ------------
==> This proc returns a ring with polynomials called 'numerator1/2' and 'deno\
minator1/2'!
==> They represent the first and the second Hilbert Series.
==> The s_(i)-variables are defined to be the inverse of the t_(i)-variables.
==> ------------
setring h;
numerator1;
==> -t_(1)^6*t_(2)^10+t_(1)^5*t_(2)^10+t_(1)^5*t_(2)^9-t_(1)^4*t_(2)^9+t_(1)^\
5*t_(2)^7+t_(1)^5*t_(2)^6-t_(1)^4*t_(2)^6-t_(1)^4*t_(2)^3-t_(1)^3*t_(2)^4\
+t_(1)
factorize(numerator1);
==> [1]:
==> _[1]=-1
==> _[2]=t_(1)
==> _[3]=t_(1)*t_(2)-1
==> _[4]=t_(1)*t_(2)^3-1
==> _[5]=t_(1)^3*t_(2)^6-t_(1)^2*t_(2)^6-t_(1)^2*t_(2)^2-t_(1)*t_(2)^3-t_(\
1)*t_(2)-1
==> [2]:
==> 1,1,1,1,1
denominator1;
==> t_(1)^4*t_(2)^8-t_(1)^3*t_(2)^8-t_(1)^3*t_(2)^7+t_(1)^2*t_(2)^7-t_(1)^3*t\
_(2)^5-t_(1)^3*t_(2)^4+t_(1)^2*t_(2)^5+2*t_(1)^2*t_(2)^4+t_(1)^2*t_(2)^3-\
t_(1)*t_(2)^4-t_(1)*t_(2)^3+t_(1)^2*t_(2)-t_(1)*t_(2)-t_(1)+1
factorize(denominator1);
==> [1]:
==> _[1]=1
==> _[2]=t_(1)-1
==> _[3]=t_(1)*t_(2)-1
==> _[4]=t_(1)*t_(2)^3-1
==> _[5]=t_(1)*t_(2)^4-1
==> [2]:
==> 1,1,1,1,1
numerator2;
==> -t_(1)^4*t_(2)^6+t_(1)^3*t_(2)^6+t_(1)^3*t_(2)^2+t_(1)^2*t_(2)^3+t_(1)^2*\
t_(2)+t_(1)
factorize(numerator2);
==> [1]:
==> _[1]=-1
==> _[2]=t_(1)
==> _[3]=t_(1)^3*t_(2)^6-t_(1)^2*t_(2)^6-t_(1)^2*t_(2)^2-t_(1)*t_(2)^3-t_(\
1)*t_(2)-1
==> [2]:
==> 1,1,1
denominator2;
==> t_(1)^2*t_(2)^4-t_(1)*t_(2)^4-t_(1)+1
factorize(denominator2);
==> [1]:
==> _[1]=1
==> _[2]=t_(1)-1
==> _[3]=t_(1)*t_(2)^4-1
==> [2]:
==> 1,1,1
|
|