Changeset 67f529 in git
- Timestamp:
- Mar 18, 2004, 10:34:54 PM (20 years ago)
- Branches:
- (u'spielwiese', 'a719bcf0b8dbc648b128303a49777a094b57592c')
- Children:
- 972862b70bd04676f798402908397895dad57a38
- Parents:
- 971833a66146e6f804f642b0f3cd2cba8c89dd05
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/lieA.lib
r971833a r67f529 1 1 /////////////////////////////////////////////////////////////////////////////// 2 version="$Id: lieA.lib,v 1. 5 2003-10-17 16:02:52levandov Exp $";2 version="$Id: lieA.lib,v 1.6 2004-03-18 21:34:54 levandov Exp $"; 3 3 category="Plural: Lie Theory"; 4 4 info=" 5 LIBRARY: lieA.lib definitions of several envelopingalgebras5 LIBRARY: lieA.lib definitions of important G-algebras 6 6 AUTHORS: Viktor Levandovskyy, levandov@mathematik.uni-kl.de, 7 7 @* Oleksandr Khomenko, Oleksandr.Khomenko@math.uni-freiburg.de, 8 @* Oleksander Motsak 8 @* Oleksandr Motsak, motsak@mathematik.uni-kl.de 9 9 10 10 11 PROCEDURES: 11 A(n); returns U(A(n))=U(sl_{n+1}) 12 sl(n); returns U(sl_n) 13 sl2(); returns U(sl_2) in the {e,f,h} presentation 14 g2(); returns U(g_2) in the {x(i),y(i),Ha,Hb} presentation 15 gl3(); returns U(gl_3) in the {e_ij (1<i,j<3)} presentation 16 Weyl(n); returns n-th Weyl algebra in {x(i),D(i)} presentation 12 A (n[,p]); returns U(A(n))=U(sl_{n+1}) in char p, if an integer p is given, 13 sl(n[,p]); returns U(sl_n) in char p, if an integer p is given, 14 sl2([ p]); returns U(sl_2) in the {e,f,h} presentation; in char p, if an integer p is given, 15 g2 ([ p]); returns U(g_2) in the {x(i),y(i),Ha,Hb} presentation; in char p, if an integer p is given, 16 gl3([ p]); returns U(gl_3) in the {e_ij (1<i,j<3)} presentation; in char p, if an integer p is given, 17 17 "; 18 18 19 /////////////////////////////////////////////////////////////////////////////// 20 21 proc sl2() 22 "USAGE: sl2() 19 20 /////////////////////////////////////////////////////////////////////////////// 21 22 // functions for debug/logging 23 24 static proc mySetRing (string @baseName, list #) 25 // set @@@_RING to description of current ring 26 { 27 if (defined( @@@_RING_NAME )) 28 { 29 kill @@@_RING_NAME; 30 }; 31 32 if (string(#) != "0") 33 { 34 string @@@_RING_NAME = @baseName + "_" + string(#); 35 } else 36 { 37 string @@@_RING_NAME = @baseName; 38 }; 39 export(@@@_RING_NAME); 40 41 if (defined( @@@_RING )) 42 { 43 kill @@@_RING; 44 }; 45 46 string @@@_RING = "" + @baseName +"(" + string(#) + ")"; 47 export(@@@_RING); 48 49 if( defined(@@@_CHAR)) 50 { 51 kill @@@_CHAR; 52 }; 53 54 int @@@_CHAR = char(basering); 55 export(@@@_CHAR); 56 } 57 58 static proc myGetRing () 59 // get desription of current ring 60 { 61 if (defined( @@@_RING )) 62 { 63 return( @@@_RING ); 64 }; 65 66 return( "No lieA.lib ring defined" ); 67 } 68 69 static proc myGetRingName () 70 // get desription of current ring, only family 71 { 72 if (defined( @@@_RING_NAME )) 73 { 74 return( @@@_RING_NAME ); 75 }; 76 77 return( "No lieA.lib ring defined" ); 78 } 79 80 static proc myGetRingChar () 81 // get desription of current ring, only family 82 { 83 if (defined( @@@_CHAR )) 84 { 85 return( @@@_CHAR ); 86 }; 87 88 return( char(basering) ); 89 } 90 91 92 static proc myInt ( list # ) 93 // return 0 or int(#) 94 { 95 int @p = 0; 96 if ( size(#) > 0 ) 97 { 98 if ( typeof( #[1] ) == "int" ) 99 { 100 @p = #[1]; 101 } 102 } 103 return (@p); 104 } 105 106 107 /////////////////////////////////////////////////////////////////////////////// 108 proc sl2(list #) 109 "USAGE: sl2([p]), p an optional integer (field characteristic) 23 110 RETURN: ring, corresponding to the U(sl_2) in (e,f,h) presentation 24 111 NOTE: you have to activate this ring with the "setring" command … … 26 113 EXAMPLE: example sl2; shows examples 27 114 "{ 28 ring rrr=0,(e,f,h),dp;29 setring rrr;30 matrix D[3][3]=0; 115 int @p = myInt(#); 116 ring @@@rrr=@p,(e,f,h),dp; 117 matrix D[3][3]=0; 31 118 D[1,2]=-h; 32 119 D[1,3]=2*e; 33 120 D[2,3]=-2*f; 34 system("PLURAL",1,D); 35 return(rrr); 121 ncalgebra(1,D); 122 mySetRing("sl2", #); 123 return(@@@rrr); 36 124 } 37 125 example … … 42 130 } 43 131 44 45 /////////////////////////////////////////////////////////////////////////////// 46 proc sl(int n )47 "USAGE: sl(n ); n an integer, n>1132 /////////////////////////////////////////////////////////////////////////////// 133 134 proc sl(int n, list #) 135 "USAGE: sl(n,[p]); n an integer, n>1; p an optional integer (field characteristic) 48 136 RETURN: a ring, describing U(sl_n) 49 137 NOTE: You have to activate this ring with the "setring" command. … … 52 140 resp. negative roots are denoted by x(i) resp. y(i), 53 141 the Cartan elements are denoted by h(i). 54 55 142 SEE ALSO: sl2 56 143 EXAMPLE: example sl; shows examples … … 63 150 if (n==2) 64 151 { 65 def a=sl2(); 66 return(a); 67 } 68 ring rr=0,(x(1..n*(n-1)/2),y(1..n*(n-1)/2),h(1..n-1)),dp; 152 def @@@a=sl2(#); 153 mySetRing("sl", n, #); 154 return(@@@a); 155 } 156 157 int @p = myInt(#); 158 ring @@@rr=@p,(x(1..n*(n-1)/2),y(1..n*(n-1)/2),h(1..n-1)),dp; 69 159 intmat CNT[n][n]=0; 70 160 matrix TMP[n][n]=0; … … 72 162 int buf=0; 73 163 list X,Y,H; 74 75 for(k=1;k<=n;k++) 76 { 77 for(l=k+1;l<=n;l++) 164 for(k=1; k<=n; k++) 165 { 166 for(l=k+1; l<=n; l++) 78 167 { 79 buf = (l-k-1)*(2*n-l+k)/2 + k;80 CNT[k,l] =buf;81 TMP[k,l] =1;82 X[buf] =TMP;83 TMP =0;84 CNT[l,k] =buf;85 TMP[l,k] =1;86 Y[buf] =TMP;168 buf = (l-k-1)*(2*n-l+k)/2 + k; 169 CNT[k,l] = buf; 170 TMP[k,l] = 1; 171 X[buf] = TMP; 172 TMP = 0; 173 CNT[l,k] = buf; 174 TMP[l,k] = 1; 175 Y[buf] = TMP; 87 176 TMP=0; 88 177 } 89 178 } 90 91 for(k=1; k<=n-1;k++)92 { 93 TMP[k,k]=1;94 TMP[k+1,k+1]=-1;95 H[k]=TMP;96 TMP=0;179 180 for(k=1; k<=n-1; k++) 181 { 182 TMP[k,k]=1; 183 TMP[k+1,k+1]=-1; 184 H[k]=TMP; 185 TMP=0; 97 186 } 98 187 int i,j=1,1; … … 101 190 int v=size(V); 102 191 matrix D[v][v]=0; 103 for(k=1; k<=v;k++)104 { 105 for(l=k+1; l<=v;l++)192 for(k=1; k<=v; k++) 193 { 194 for(l=k+1; l<=v; l++) 106 195 { 107 196 TMP=V[l]*V[k]-V[k]*V[l]; 108 for(i=1; i<=n;i++)197 for(i=1; i<=n; i++) 109 198 { 110 for(j=i+1; j<=n;j++)199 for(j=i+1; j<=n; j++) 111 200 { 112 201 buf=(j-i-1)*(2*n-j+i)/2+i; 113 202 if (TMP[i,j]!=0) 114 203 { 115 204 D[k,l]=D[k,l]+leadcoef(TMP[i,j])*x(buf); 116 205 } 117 206 118 207 if (TMP[j,i]!=0) 119 208 { 120 209 D[k,l]=D[k,l]+leadcoef(TMP[j,i])*y(buf); 121 210 } 122 211 } … … 124 213 i=1; 125 214 while ((TMP[i,i]==0)&&(i<n)) {i++;} 126 for(j=i; j<=n-1;j++)215 for(j=i; j<=n-1; j++) 127 216 { 128 217 p=leadcoef(TMP[j,j]); 129 218 q=leadcoef(TMP[j+1,j+1]); 130 219 D[k,l]=D[k,l]+p*h(j); 131 // if ((j!=n-1)&&((p+q)!=0)) {D[k,l]=D[k,l]+(p+q)*h(j+1);}220 // if ((j!=n-1)&&((p+q)!=0)) {D[k,l]=D[k,l]+(p+q)*h(j+1);} 132 221 TMP[j+1,j+1]=TMP[j+1,j+1]+p; 133 222 } 134 223 135 224 } 136 225 } 137 system("PLURAL",1,D); 138 return(rr); 226 ncalgebra(1,D); 227 mySetRing("sl", n, #); 228 return(@@@rr); 139 229 } 140 230 example … … 144 234 a; 145 235 } 146 /////////////////////////////////////////////////////////////////////////////// 147 148 proc A(int n) 149 "USAGE: A(n); n an integer, n>1 236 237 /////////////////////////////////////////////////////////////////////////////// 238 239 proc A(int n, list #) 240 "USAGE: A(n,[p]); n an integer, n>1; , p an optional integer (field characteristic) 150 241 RETURN: a ring, describing U(A(n)) 151 NOTE: You have to activate this ring with the "setring"command.242 NOTE: You have to activate this ring with the setring command. 152 243 The presentation of U(A(n)) is derived from the 153 244 standard representation of sl(n+1), positive 154 245 resp. negative roots are denoted by x(i) resp. y(i), 155 246 the Cartan elements are denoted by h(i). 156 157 247 SEE ALSO: sl2, g2, gl3 158 248 EXAMPLE: example A; shows examples 159 {249 "{ 160 250 if (n<1) 161 251 { 162 "Incorrect input";252 Print("Incorrect input"); 163 253 return(0); 164 254 } 165 def a=sl(n+1); 166 return(a); 255 def @@@a=sl(n+1, #); 256 mySetRing("A", n, #); 257 return(@@@a); 167 258 } 168 259 example 169 260 { "EXAMPLE:"; echo = 2; 170 261 def a2=A(2); 171 262 setring a2; 172 263 a2; 173 264 } 174 /////////////////////////////////////////////////////////////////////////////// 175 176 177 proc g2() 178 "USAGE: g2() 265 266 /////////////////////////////////////////////////////////////////////////////// 267 268 proc g2(list #) 269 270 "USAGE: g2([p]), p an optional integer (field characteristic) 179 271 RETURN: ring, corresponding to the U(g_2) in (x(i),y(i),Ha,Hb) presentation 180 272 NOTE: you have to activate this ring with the "setring" command … … 182 274 EXAMPLE: example g2; shows examples 183 275 "{ 184 ring rrr=0,(x(1..6),y(1..6),Ha,Hb),dp; 185 setring rrr; 186 matrix D[14][14]; 187 D[1,2]=-x(3); 188 D[1,3]=-2*x(4); 189 D[1,4]=3*x(5); 190 D[1,7]=-Ha; 191 D[1,9]=3*y(2); 192 D[1,10]=2*y(3); 193 D[1,11]=-y(4); 194 D[1,13]=2*x(1); 195 D[1,14]=-x(1); 196 D[2,5]=x(6); 197 D[2,8]=-Hb; 198 D[2,9]=-y(1); 199 D[2,12]=-y(5); 200 D[2,13]=-3*x(2); 201 D[2,14]=2*x(2); 202 D[3,4]=3*x(6); 203 D[3,7]=3*x(2); 204 D[3,8]=-x(1); 205 D[3,9]=-Ha-3*Hb; 206 D[3,10]=-2*y(1); 207 D[3,12]=-y(4); 208 D[3,13]=-x(3); 209 D[3,14]=x(3); 210 D[4,7]=2*x(3); 211 D[4,9]=-2*x(1); 212 D[4,10]=-2*Ha-3*Hb; 213 D[4,11]=y(1); 214 D[4,12]=y(3); 215 D[4,13]=x(4); 216 D[5,7]=-x(4); 217 D[5,10]=x(1); 218 D[5,11]=-Ha-Hb; 219 D[5,12]=y(2); 220 D[5,13]=3*x(5); 221 D[5,14]=-x(5); 222 D[6,8]=-x(5); 223 D[6,9]=-x(4); 224 D[6,10]=x(3); 225 D[6,11]=x(2); 226 D[6,12]=-Ha-2*Hb; 227 D[6,14]=x(6); 228 D[7,8]=y(3); 229 D[7,9]=2*y(4); 230 D[7,10]=-3*y(5); 231 D[7,13]=-2*y(1); 232 D[7,14]=y(1); 233 D[8,11]=-y(6); 234 D[8,13]=3*y(2); 235 D[8,14]=-2*y(2); 236 D[9,10]=-3*y(6); 237 D[9,13]=y(3); 238 D[9,14]=-y(3); 239 D[10,13]=-y(4); 240 D[11,13]=-3*y(5); 241 D[11,14]=y(5); 242 D[12,14]=-y(6); 243 system("PLURAL",1,D); 244 return(rrr); 276 int @p = myInt(#); 277 ring @@@rrr=@p,(x(1..6),y(1..6),Ha,Hb),dp; 278 setring @@@rrr; 279 matrix D[14][14]; 280 D[1,2]=-x(3); 281 D[1,3]=-2*x(4); 282 D[1,4]=3*x(5); 283 D[1,7]=-Ha; 284 D[1,9]=3*y(2); 285 D[1,10]=2*y(3); 286 D[1,11]=-y(4); 287 D[1,13]=2*x(1); 288 D[1,14]=-x(1); 289 D[2,5]=x(6); 290 D[2,8]=-Hb; 291 D[2,9]=-y(1); 292 D[2,12]=-y(5); 293 D[2,13]=-3*x(2); 294 D[2,14]=2*x(2); 295 D[3,4]=3*x(6); 296 D[3,7]=3*x(2); 297 D[3,8]=-x(1); 298 D[3,9]=-Ha-3*Hb; 299 D[3,10]=-2*y(1); 300 D[3,12]=-y(4); 301 D[3,13]=-x(3); 302 D[3,14]=x(3); 303 D[4,7]=2*x(3); 304 D[4,9]=-2*x(1); 305 D[4,10]=-2*Ha-3*Hb; 306 D[4,11]=y(1); 307 D[4,12]=y(3); 308 D[4,13]=x(4); 309 D[5,7]=-x(4); 310 D[5,10]=x(1); 311 D[5,11]=-Ha-Hb; 312 D[5,12]=y(2); 313 D[5,13]=3*x(5); 314 D[5,14]=-x(5); 315 D[6,8]=-x(5); 316 D[6,9]=-x(4); 317 D[6,10]=x(3); 318 D[6,11]=x(2); 319 D[6,12]=-Ha-2*Hb; 320 D[6,14]=x(6); 321 D[7,8]=y(3); 322 D[7,9]=2*y(4); 323 D[7,10]=-3*y(5); 324 D[7,13]=-2*y(1); 325 D[7,14]=y(1); 326 D[8,11]=-y(6); 327 D[8,13]=3*y(2); 328 D[8,14]=-2*y(2); 329 D[9,10]=-3*y(6); 330 D[9,13]=y(3); 331 D[9,14]=-y(3); 332 D[10,13]=-y(4); 333 D[11,13]=-3*y(5); 334 D[11,14]=y(5); 335 D[12,14]=-y(6); 336 ncalgebra(1,D); 337 mySetRing("g2", #); 338 return(@@@rrr); 245 339 } 246 340 example … … 253 347 /////////////////////////////////////////////////////////////////////////////// 254 348 255 proc gl3( )256 "USAGE: gl3( )349 proc gl3(list #) 350 "USAGE: gl3([p]), p an optional integer (field characteristic) 257 351 RETURN: ring, corresponding to the U(gl_3) in the (e_ij (1<i,j<3)) presentation 258 352 NOTE: you have to activate this ring with the "setring" command … … 260 354 EXAMPLE: example gl3; shows examples 261 355 "{ 262 ring rrr=0,(e11, e12, e13, e21, e22, e23, e31, e32, e33),dp; 263 setring rrr; 264 matrix D[9][9]=0; 265 D[1, 2]=-e12; 266 D[1, 3]=-e13; 267 D[1, 4]=e21; 268 D[1, 7]=e31; 269 D[2, 4]=e22-e11; 270 D[2, 5]=-e12; 271 D[2, 6]=-e13; 272 D[2, 7]=e32; 273 D[3, 4]=e23; 274 D[3, 7]=e33-e11; 275 D[3, 8]=-e12; 276 D[3, 9]=-e13; 277 D[4, 5]=e21; 278 D[4, 8]=e31; 279 D[5, 6]=-e23; 280 D[5, 8]=e32; 281 D[6, 7]=-e21; 282 D[6, 8]=e33-e22; 283 D[6, 9]=-e23; 284 D[7, 9]=e31; 285 D[8, 9]=e32; 286 system("PLURAL",1,D); 287 return(rrr); 356 int @p = myInt(#); 357 ring @@@rrr=@p,(e11, e12, e13, e21, e22, e23, e31, e32, e33),dp; 358 setring @@@rrr; 359 matrix D[9][9]=0; 360 D[1, 2]=-e12; 361 D[1, 3]=-e13; 362 D[1, 4]=e21; 363 D[1, 7]=e31; 364 D[2, 4]=e22-e11; 365 D[2, 5]=-e12; 366 D[2, 6]=-e13; 367 D[2, 7]=e32; 368 D[3, 4]=e23; 369 D[3, 7]=e33-e11; 370 D[3, 8]=-e12; 371 D[3, 9]=-e13; 372 D[4, 5]=e21; 373 D[4, 8]=e31; 374 D[5, 6]=-e23; 375 D[5, 8]=e32; 376 D[6, 7]=-e21; 377 D[6, 8]=e33-e22; 378 D[6, 9]=-e23; 379 D[7, 9]=e31; 380 D[8, 9]=e32; 381 ncalgebra(1,D); 382 mySetRing("gl3", #); 383 return(@@@rrr); 288 384 } 289 385 example … … 293 389 g; 294 390 } 295 /////////////////////////////////////////////////////////////////////////////// 296 297 proc Weyl(int n) 298 "USAGE: Weyl(n); n an integer, n>0 299 RETURN: a ring, describing n-th Weyl algebra over Q 300 NOTE: You have to activate this ring with the "setring" command. 301 The presentation of n-th Weyl algebra is classical: 302 D(i)x(i)=x(i)D(i)+1 303 SEE ALSO: sl2 304 EXAMPLE: example Weyl; shows examples 305 "{ 306 if (n<1) 307 { 308 Print("Incorrect input"); 309 return(0); 310 } 311 ring @rr=0,(x(1..n),D(1..n)),dp; 312 matrix @D[2*n][2*n]; 313 int i=1; 314 for (i=1;i<=n;i++) 315 { 316 @D[i,n+i]=1; 317 } 318 system("PLURAL",1,@D); 319 return(@rr); 320 } 321 example 322 { "EXAMPLE:"; echo = 2; 323 def a=Weyl(3); 324 setring a; 325 a; 326 } 327 /////////////////////////////////////////////////////////////////////////////// 391 392 /////////////////////////////////////////////////////////////////////////////// 393 394 proc Qso3(list #) 395 "USAGE: Qso3([n]), n an optional integer 396 RETURN: ring, corresponding to the U'_q(so_3) in the presentation of Klimyk; 397 if n is specified, the quantum parameter Q will be specialized at the (2*n)-th root of unity 398 NOTE: you have to activate this ring with the "setring" command 399 SEE ALSO: sl, Qsl3, g2, gl3 400 EXAMPLE: example Qso3; shows examples 401 " 402 { 403 int @p = myInt(#); 404 ring @@@r=(0,Q),(x,y,z),dp; 405 minpoly = RootOfUnity(2*p); 406 matrix C[3][3]; 407 matrix D[3][3]; 408 409 C[1,2]=Q2; 410 C[1,3]=1/Q2; 411 C[2,3]=Q2; 412 413 D[1,2]=-Q*z; 414 D[1,3]=1/Q*y; 415 D[2,3]=-Q*x; 416 417 ncalgebra(C,D); 418 mySetRing("Qso3", #); 419 return(@@@r); 420 } 421 422 /////////////////////////////////////////////////////////////////////////////// 423 424 proc Qsl3(list #) 425 "USAGE: Qsl3([n]), n an optional integer 426 RETURN: ring, corresponding to the U_q(sl_3) as the factor algebra of 427 V_q(sl3); if n is specified, the quantum parameter q will be specialized at the n-th root of unity 428 NOTE: you have to activate this ring with the "setring" command 429 SEE ALSO: sl, Qso3, g2, gl3 430 EXAMPLE: example Qso3; shows examples 431 " 432 { 433 int @p = myInt(#); 434 // ring @@@rrr=(@p, q), (f12, f13, f23, k1, k2, l1, l2, e12, e13, e23), wp(7, 10, 11, 1, 1, 1, 1, 7, 10, 11); 435 436 ring @@@rrr=(0, q), (f12, f13, f23, k1, k2, l1, l2, e12, e13, e23), wp(3, 5, 3, 1, 1, 1, 1, 1, 1, 1); 437 if (@p >1) 438 { 439 minpoly = RootOfUnity(@p); 440 } 441 int @n = nvars(@@@rrr); 442 matrix C[@n][@n]; 443 matrix D[@n][@n]; 444 445 int u,j; 446 for(u=1; u<=@n; u++) 447 { 448 for(j=u; j<=@n; j++) 449 { 450 C[u,j]=1; 451 D[u,j]=0; 452 } 453 } 454 455 // some constants 456 number q1 = 1/q; 457 number Q = (q )^2; 458 number Q1 = (q1)^2; 459 // number QQ = Q - Q1; // q2 - 1/(q2) 460 number QQ1= 1 / (Q - Q1); 461 462 // relations: 463 C[1,2] = Q1; 464 C[2,3] = C[1,2]; 465 C[8,9] = C[1,2]; 466 C[9,10]= C[1,2]; 467 C[1,3] = Q; 468 C[8,10]= C[1,3]; 469 470 D[1,3] = -q*(f13); 471 D[8,10]= -q*(e13); 472 // V_q(sl_3) 473 D[1,8] = QQ1 * ( (k1) ^ 2 - (l1) ^ 2 ); 474 D[3,10]= QQ1 * ( (k2) ^ 2 - (l2) ^ 2 ); 475 D[2,9] = -QQ1 * ( ((k1)^2)*((k2)^2) - ((l1)^2)*((l2)^2) ); 476 D[2, 8] = q * (f23) * ((k1)^2); 477 D[3, 9] = q * ((k2)^2) * (e12); 478 D[1, 9] = -q1 * ((l1)^2) * (e23); 479 D[2, 10]= -q1 * (f12) * ((l2)^2); 480 // k1 481 C[ 4, 8 ]= Q1; 482 C[ 4, 9 ]= q1; 483 C[ 4, 10]= q; 484 // l1 485 C[ 6, 8 ]= Q; 486 C[ 6, 9 ]= q; 487 C[ 6, 10]= q1; 488 // k2 489 C[ 5, 8 ]= q; 490 C[ 5, 9 ]= q1; 491 C[ 5, 10]= Q1; 492 // l2 493 C[ 7, 8 ]= q1; 494 C[ 7, 9 ]= q; 495 C[ 7, 10]= Q; 496 // k1 497 C[ 1, 4 ]= Q1; 498 C[ 2, 4 ]= q1; 499 C[ 3, 4 ]= q; 500 // l1 501 C[ 1, 6 ]= Q; 502 C[ 2, 6 ]= q; 503 C[ 3, 6 ]= q1; 504 // k2 505 C[ 1, 5 ]= q; 506 C[ 2, 5 ]= q1; 507 C[ 3, 5 ]= Q1; 508 // l2 509 C[ 1, 7 ]= q1; 510 C[ 2, 7 ]= q; 511 C[ 3, 7 ]= Q; 512 ncalgebra(C,D); // the V_q(sl3) is done 513 ideal I = k1*l1-1, k2*l2-1; 514 I = system("twostd",I); 515 qring @@qr = I; 516 mySetRing("Qsl3", #); 517 return(@@qr); 518 } 519 520 ///////////////////////////////////////////////////////////////////////////////
Note: See TracChangeset
for help on using the changeset viewer.