////Here we consider simlple modules for the quotien of D(b) by central group-like elements, where b is the Borel subalgebra of ////u_r,s(sl3)...the double parameter quantum group, where r=q^y, s=q^z and q is a primitve lth root of unity. /////////////////////////////// ///// One has to input l, y z and the output filename ///// In this example l=5, y=0, z=1 and the ouput file is quot_1q_5 LIB "linalg.lib"; LIB "matrix.lib"; LIB "nctools.lib"; LIB "qhmoduli.lib"; ///// INPUT FILENAME link u = ":w quot_1q_5"; ring r0= 0,x,dp; //////INPUT PARAMETERS int l= 5; int y = 0; int z= 1; ring R = (0,Q),(F(1), F(21), F(2), L(1), L(2)),Dp; minpoly = rootofUnity(l); matrix C[5][5]; matrix D[5][5]; C[1,2] = Q^(y); C[1,3] = Q^(z); C[1,4] = Q^(y-(z)); C[1,5] = Q^(z); C[2,3] = Q^(y); C[2,4] = Q^(-(z)); C[2,5] = Q^(y); C[3,4] = Q^(-(y)); C[3,5] = Q^(y-(z)); C[4,5] = 1; D[1,3] = F(21); ncalgebra(C,D); option(redSB); option(redTail); ideal I= F(1)^l, F(2)^l, L(1)^l - 1 , L(2)^l - 1, (F(21))^l; qring B = twostd(I); ///////////// to have Plural do opereations in the quotient we need to /////// ///////////// reduce mod std(0) ///////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////// ///////////////////////DEFINITION OF THE BETA ACTION/////////////////////// /////////////////////////////////////////////////////////////////////////// ///////////// Betai is the action of Fi/////////////////////////////// ////// the integers j and k are such that beta(L(1))=Q^j, beta(L(2))=Q^k ////// proc Beta1( int a, poly g) { poly X; X= reduce((- g) * F(1)*L(1)^(l-1) + Q^a* F(1)* g * L(1)^(l-1), std(0)); return(X); } proc Beta2(int b, poly g) { poly X; X= reduce((- g) * F(2)*L(2)^(l-1) + Q^b* F(2)* g * L(2)^(l-1), std(0)); return(X); } proc Beta21(int a, int b, poly g) { return(Beta2(b, Beta1(a,g)) - Q^((z)) * Beta1(a,Beta2(b,g))); } ////////////////////////////////////////////////////////////////////////////// //////////////// PBetai(a, g, k) = the beta action of F(i)^k on g///////////// proc PBeta1(int a, poly g, int k) { poly Y = g; for(int n=1;n<=k;n++) { Y= Beta1( a, Y); } return(Y); } proc PBeta2(int b, poly g, int j) { poly Y = g; for(int n=1;n<=j;n++) { Y= Beta2( b, Y); } return(Y); } proc PBeta21(int a, int b, poly g, int l) { poly Y = g; for(int n=1;n<=l;n++) { Y= Beta21( a, b, Y); } return(Y); } ////////////////////////////////////////////////////////////////////////////// ////// the following defines the beta(a,b) action of ////////////////// ////// F(1)^k * F(21) ^t * F(2) ^ m ////////////////// ////////////////////////////////////////////////////////////////////////////// proc Beta( int a , int b, int k, int t, int m, poly g) { return( PBeta1( a, PBeta21( a, b, PBeta2(b,g,m) , t), k)) ; } ///////////////////////////////////////////////////////////////////////////// /////////////////// DIMENSION and BASIS OF u (\dot beta) g ///////////////// ////////////////////////////////////////////////////////////////////////////// //// For each (a,b) (c,d), we construct the modules H_{c,d,a,b} //// meaning beta(L1)=q^a, beta(L2)= q^b, g= L(1)^c L(2)^d //// but we only look at the modules that are modules //// for the quotient by grouplike central elements. //// so when beta(L1)=q^c and beta(L2)=q^{d-c}, and g=L1^cL2^d proc Submod(int c, int d, int x, int y) { list L; ideal J; ideal T; list e = x-(l-1),y-(l-1),0; int n= Max(e); list f= x,y, l-1; int m= Min(f); for(int i= n; i<= m; i++) { J[i+1-n] = Beta( c, d-c, x-i, i, y-i , L(1)^c * L(2)^d); T[i+1-n] = F(1)^(x-i) * F(21)^i * F(2)^(y-i) * L(1)^(((l-1)*x+c) mod l) * L(2)^(((l-1)*y+d) mod l); } matrix M = coeffs(J,T); matrix N= gauss_col(M); matrix K[1][m-n+1] = T; matrix S= K*N; L[1]=compress(S); L[2]=mat_rk(N); return(L); } proc Totalbasis(int c , int d) { list B; list A; int t; t=0; for(int x= 0; x<=2*(l-1); x++) { list e= 0, x-(l-1); list f= x+(l-1), 2*(l-1); for(int y= Max(e); y<= Min(f); y++) { list M= Submod(c,d, x,y); A= insert(A, M[1]); t= t + M[2]; }} B[2]= A; B[1]= t; return(B); } //////////////////////CHANGE the second line depending on the parameters open(u); write(u, "quotient of u_{1,q}(sl3) by central grouplikes, q^5=1"); ////////////////////In this procedure, one has to CHANGE the name of the filr proc BETA { for(int s=1; s<=l; s++) { for(int t=1; t<=l; t++) { string r=string("c=", s-1, " d=", t-1); write("quot_1q_5",r); list M= Totalbasis(s-1, t-1); write("quot_1q_5", "dimension = ", M[1]); write("quot_1q_5", "basis ="); fprintf("quot_1q_5", "%p", list(M[2])); }} } BETA(); close(u); quit;