// The simple curve singularity E6 and all non-free
// indecomposable MCM modules
LIB "conn.lib";
ring s = 0, (x,y), dp;
ideal i = x3+y4;
qring a = std(i);
matrix M1[2][2] = x2,y3,y,-x;
matrix M2[2][2] = x2,y2,y2,-x;
matrix N[2][2] = x,y3,y,-x2;
matrix X[3][3] = y,0,x,x,-y2,0,0,x,-y;
matrix Y[3][3] = y3,x2,xy2,xy,-y2,x2,x2,-xy,-y3;
matrix Z[4][4] = x,y2,0,y,y2,-x2,-xy,0,0,0,x2,y2,0,0,y2,-x;
list MCM = M1,M2,N,X,Y,Z;
matrix sM1[2][2] = x,y3,y,-x2;
matrix sM2[2][2] = x,y2,y2,-x2;
matrix sN[2][2] = x2,y3,y,-x;
matrix sX[3][3] = y3,x2,xy2,xy,-y2,x2,x2,-xy,-y3;
matrix sY[3][3] = y,0,x,x,-y2,0,0,x,-y;
matrix sZ[4][4] = x2,y2,0,xy,y2,-x,-y,0,0,0,x,y2,0,0,y2,-x2;
list sMCM = sM1,sM2,sN,sX,sY,sZ;
print("Curve E6:");
print("-------");
int i;
for(i=1;i<=size(MCM);i++)
{
print("Module:");
print("-------");
print(MCM[i]);
print("-------");
print("Obstructions:");
print("-------");
print(KSKernel(MCM[i]));
print(LClass(MCM[i]));
print("-------");
}