Changeset 91c978 in git
- Timestamp:
- Feb 23, 2005, 7:10:46 PM (19 years ago)
- Branches:
- (u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', '38077648e7239f98078663eb941c3c979511150a')
- Children:
- 5f1374dd0a531f7a0e58a69c0d23b8de965ccd09
- Parents:
- 9268cefce47b7dbc575d68e82b7dbd80b07cc8a8
- Location:
- Singular/LIB
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/center.lib
r9268ce r91c978 1 1 /////////////////////////////////////////////////////////////////////////////// 2 version="$Id: center.lib,v 1.1 2 2004-12-15 19:02:33 pluralExp $";2 version="$Id: center.lib,v 1.13 2005-02-23 18:10:44 levandov Exp $"; 3 3 category="Noncommutative"; 4 4 info=" … … 6 6 AUTHOR: Oleksandr Motsak, motsak@mathematik.uni-kl.de. 7 7 OVERVIEW: 8 This is a library for computing the central elements and centralisators of elements in various noncommutative algebras. 9 Implementation is mainly based on algorithms, written in the frame of the diploma thesis by Oleksandr Motsak (advisor: Prof. S.A. Ovsienko, using the definitions from diploma thesis by V.Levandovskyy), at Kyiv Taras Shevchenko University: 'An algorithm for the computation of the center of noncommutative polynomial algebra'. 10 @* The last version of this library can be found via internet at author's home page. 8 This is a library for computing the central elements and centralizers of elements in various noncommutative algebras. 9 Implementation is based on algorithms, written in the frame of the diploma thesis by O. Motsak (advisor: Prof. S.A. Ovsienko, support: V. Levandovskyy), at Kyiv Taras Shevchenko University (Ukraine) with the title 'An algorithm for the computation of the center of noncommutative polynomial algebra'. 11 10 12 11 SUPPORT: Forschungsschwerpunkt 'Mathematik und Praxis' 13 12 14 13 PROCEDURES: 15 center(MaxDeg[,N]); returns the center ofbasering,16 centralizer(f, MaxDeg[,N]); returns the centralizer of f inbasering,14 center(MaxDeg[,N]); computes the generators of the center of a basering, 15 centralizer(f, MaxDeg[,N]); computes the generators of the centralizer of f in a basering, 17 16 inCenter(l); checks the centrality of elements of list/ideal/poly l 18 inCentralizer(l, f); checks the commutativity wrt polynomialf of polynomials of list/ideal/poly l 19 20 SEE ALSO: ncalg_lib, nctools_lib 17 inCentralizer(l, f); checks the commutativity wrt polynomial f of polynomials of list/ideal/poly l 18 21 19 KEYWORDS: inCenter; inCentralizer; center; centralizer 22 20 "; … … 156 154 157 155 /******************************************************/ 158 // some b isiness for my_var156 // some business for my_var 159 157 160 158 /******************************************************/ … … 813 811 static proc checkPolyUniq( list l, poly p ) 814 812 " 815 check whe ather p sits already in l, assume l to be size-sorted <813 check whether p sits already in l, assume l to be size-sorted < 816 814 return: -1 if present 817 815 1 if we need to add … … 1092 1090 static proc init_bads(int @deg) 1093 1091 " 1094 initiali stion of an empty 'badleads' list1092 initialization of an empty 'badleads' list 1095 1093 " 1096 1094 { … … 1119 1117 { 1120 1118 [1] - leadexp. 1121 [2] - l oeadmonom([1])1119 [2] - leadmonom([1]) 1122 1120 if kind != 0 (for zReduce) => 1123 1121 [3] - !list! of all possible products which give this leadexp … … 1598 1596 " 1599 1597 Gauss with computation of kernel v.s basis 1600 to be optimize s1598 to be optimized 1601 1599 " 1602 1600 { … … 2254 2252 2255 2253 list @z = list (); // center list 2256 list @l = init_bads( MaxDeg ); // verbotten l oeadexps...2254 list @l = init_bads( MaxDeg ); // verbotten leadexps... 2257 2255 2258 2256 @q = PBW[ index(0) ]; … … 2320 2318 static proc center_vectorspace( int MaxDeg ) 2321 2319 " 2322 pure calculation of center as a finitely dim mensional Vector Space (deg <= MaxDeg )2320 pure calculation of center as a finitely dimensional Vector Space (deg <= MaxDeg ) 2323 2321 " 2324 2322 { … … 2472 2470 proc inCenter( def a ) 2473 2471 "USAGE: inCenter(a); a poly/list/ideal 2474 RETURN: integer (1 if a in center, 0 otherwise)2472 RETURN: integer (1 if a in the center, 0 otherwise) 2475 2473 EXAMPLE: example inCenter; shows examples" 2476 2474 { … … 2517 2515 /******************************************************************************/ 2518 2516 proc inCentralizer( def a, poly f ) 2519 2520 RETURN: integer (1 if a in centralizer(f), 0 otherwise)2517 "USAGE: inCentralizer(a, f); a poly/list/ideal, f poly 2518 RETURN: integer (1 if a in the centralizer(f), 0 otherwise) 2521 2519 EXAMPLE: example inCentralizer; shows examples" 2522 2520 { … … 2547 2545 matrix D[3][3]=0; 2548 2546 D[1,2]=-z; 2549 D[1,3]=0; 2550 D[2,3]=0; 2551 ncalgebra(1,D); // this is U(sl_2) 2547 ncalgebra(1,D); // the Heisenberg algebra 2552 2548 poly f = x^2; 2553 2549 poly a = z; // lies in center … … 2561 2557 }; 2562 2558 2563 2564 2565 2559 /******************************************************/ 2566 2560 proc center(int MaxDeg, list # ) 2567 2561 "USAGE: center(MaxDeg[, N]); int MaxDeg, int N 2568 2562 RETURN: ideal generated by found elements 2569 2563 NOTE: computes the 'minimal' set of central elements. … … 2573 2567 2. n - the minimal number of desired elements to find. 2574 2568 SEE ALSO: centralizer; inCenter 2575 EXAMPLE: example center; shows an example "2576 { 2577 2569 EXAMPLE: example center; shows an example 2570 " 2571 { 2578 2572 if ( myInt(#) > 0 ) // given a number of central elements to compute 2579 2573 { … … 2610 2604 /******************************************************/ 2611 2605 proc centralizer( poly p, int MaxDeg, list # ) 2612 2606 "USAGE: centralizer(F, MaxDeg[, N]); poly F, int MaxDeg, int N 2613 2607 RETURN: ideal generated by found elements 2614 2608 NOTE: computes the 'minimal' set of elements of centralizer(F). -
Singular/LIB/gkdim.lib
r9268ce r91c978 1 1 /////////////////////////////////////////////////////////////////////////////// 2 version="$Id: gkdim.lib,v 1. 5 2004-12-14 21:00:06levandov Exp $";2 version="$Id: gkdim.lib,v 1.6 2005-02-23 18:10:45 levandov Exp $"; 3 3 category="Noncommutative"; 4 4 info=" … … 7 7 @* Rabelo, C., crabelo@ugr.es 8 8 9 SUPPORT: Metodos algebraicos y efectivos en grupos cuanticos, BFM2001-3141, MCYT, Jose Gomez-Torrecillas (Main researcher). 10 9 SUPPORT: 'Metodos algebraicos y efectivos en grupos cuanticos', BFM2001-3141, MCYT, Jose Gomez-Torrecillas (Main researcher). 11 10 12 11 PROCEDURES: 13 GKdim(M); Gelfand-Kirillov dimension computation of the factor module basering^n/M where M is a left submodule of basering^n12 GKdim(M); Gelfand-Kirillov dimension computation of the factor-module, whose presentation is given by the matrix M 14 13 "; 15 14 16 /////////////////////////////////////////////////////////////////////////////// 17 15 /////////////////////////////////////////////////////////////////////////////////// 18 16 static proc idGKdim(ideal I) 19 // This procedure computes the Gelfand-Kirillov dimension of R/I using 20 // the dim procedure. 17 "USAGE: GKdim(I), I is a left ideal 18 RETURN: int, the Gelfand-Kirillov dimension of the R/I 19 NOTE: uses the dim procedure, if the factor-module is zero, -1 is returned 20 " 21 21 { 22 22 if (attrib(I,"isSB")<>1) … … 31 31 32 32 def oldring=basering; 33 string newringstring="ring newring=("+charstr(basering)+"),("+varstr(basering)+"),("+ordstr(basering)+") ";33 string newringstring="ring newring=("+charstr(basering)+"),("+varstr(basering)+"),("+ordstr(basering)+");"; 34 34 execute (newringstring); 35 35 setring newring; … … 45 45 46 46 /////////////////////////////////////////////////////////////////////////////// 47 48 47 proc GKdim(list L) 49 "USAGE: GKdim(L); L is an ideal or a module 50 RETURN: int, the Gelfand-Kirillov dimension of R^n/L 48 "USAGE: GKdim(L); L is a left ideal/module/matrix 49 RETURN: int, the Gelfand-Kirillov dimension of the factor-module, whose presentation is given by L 50 NOTE: if the factor-module is zero, -1 is returned 51 51 EXAMPLE: example GKdim; shows examples 52 "{ 52 " 53 { 53 54 def M = L[1]; 54 55 if (typeof(M)=="ideal") … … 93 94 else 94 95 { 95 string d="Error: The input must be an ideal or a module.";96 string d="Error: The input must be an ideal, a module or a matrix."; 96 97 } 97 98 } … … 117 118 GKdim(B); 118 119 } 119 120 120 /////////////////////////////////////////////////////////////////////////////// -
Singular/LIB/involut.lib
r9268ce r91c978 1 version="$Id: involut.lib,v 1. 1 2004-12-22 21:15:20levandov Exp $";1 version="$Id: involut.lib,v 1.2 2005-02-23 18:10:45 levandov Exp $"; 2 2 category="Noncommutative"; 3 3 info=" 4 4 LIBRARY: involution.lib Procedures for Computations and Operations with Involutions 5 AUTHORS: Oleksandr Iena yena@mathematik.uni-kl.de6 @* Markus Becker mbecker@mathematik.uni-kl.de7 @* Viktor Levandovskyy levandov@mathematik.uni-kl.de5 AUTHORS: Oleksandr Iena, yena@mathematik.uni-kl.de, 6 @* Markus Becker, mbecker@mathematik.uni-kl.de, 7 @* Viktor Levandovskyy, levandov@mathematik.uni-kl.de 8 8 9 9 SUPPORT: Forschungsschwerpunkt 'Mathematik und Praxis' (Project of Dr. E. Zerz … … 11 11 12 12 NOTE: This library provides algebraic tools for computations and operations 13 with algebraic involutions 13 with algebraic involutions and linear automorphisms of noncommutative algebras 14 14 15 15 PROCEDURES: 16 find_invo(); describes a variety of involutions on a basering;16 find_invo(); describes a variety of linear involutions on a basering; 17 17 find_invo_diag(); describes a variety of homothetic (diagonal) involutions on a basering; 18 find_auto(); describes a variety of automorphisms of a basering;18 find_auto(); describes a variety of linear automorphisms of a basering; 19 19 ncdetection(ring r); computes an ideal, presenting an involution map on some classical noncommutative algebras; 20 involution(m, map theta); applies the involution, presented by theta to m of type poly, vector, ideal, module, matrix; 21 20 involution(m, map theta); applies the involution, presented by theta, to the object m = 22 21 "; 23 22 … … 25 24 LIB "poly.lib"; 26 25 LIB "primdec.lib"; 27 26 /////////////////////////////////////////////////////////////////////////////// 28 27 proc ncdetection(def r) 29 "USAGE: ncdetection(r) ;r a ring28 "USAGE: ncdetection(r), r a ring 30 29 RETURN: ideal, presenting an involution map on a noncommutative algebra r 31 30 NOTE: returns optimized involutions for some classical noncomm algebras, … … 156 155 ring r=0,(x,y,z,D(1..3)),dp; 157 156 matrix D[6][6]; 158 D[1,4]=1; 159 D[2,5]=1; 160 D[3,6]=1; 157 D[1,4]=1; D[2,5]=1; D[3,6]=1; 161 158 ncalgebra(1,D); 162 159 ncdetection(r); … … 170 167 ring r=0,(x,D(1),S),dp; 171 168 matrix D[3][3]; 172 D[1,2]=1; 173 D[1,3]=-S; 169 D[1,2]=1; D[1,3]=-S; 174 170 ncalgebra(1,D); 175 171 ncdetection(r); … … 270 266 // return(n); 271 267 } 272 268 /////////////////////////////////////////////////////////////////////////////////// 273 269 proc involution(m, map theta) 274 270 "USAGE: involution(m, theta); m is a poly/vector/ideal/matrix/module, theta is a map 275 RETURN: object of the same type as m, involuted under theta 271 PURPOSE: applies the involution, presented by theta to the input m 272 RETURN: object of the same type as m 276 273 EXAMPLE: example involution; shows an example 277 274 " … … 353 350 print(M - involution(IM,F)); 354 351 } 355 352 /////////////////////////////////////////////////////////////////////////////////// 356 353 static proc new_var() 357 354 //generates a string of new variables … … 378 375 return("@_"+string(i)+"_"+string(j)); 379 376 }; 380 377 /////////////////////////////////////////////////////////////////////////////////// 381 378 static proc new_var_special() 382 379 //generates a string of new variables … … 391 388 return(s); 392 389 }; 393 394 390 /////////////////////////////////////////////////////////////////////////////////// 395 391 static proc RelMatr() 396 392 // returns the matrix of relations … … 409 405 return(Rel); 410 406 }; 411 412 407 ///////////////////////////////////////////////////////////////// 413 408 proc find_invo() 414 409 "USAGE: find_invo(); 410 PURPOSE: describes a variety of linear involutions on a basering 415 411 RETURN: a ring together with a list of pairs L, where 416 L[i][1] = GB of an i-th component of ass.primes. 417 L[i][2] = multiplication matrix, reduced wrt L[i][1]. 418 NOTE: for convenience, the full ideal of relation @@J419 and the matrix @@D are returned.412 @* L[i][1] = Groebner Basis of an i-th associated prime, 413 @* L[i][2] = multiplication matrix, reduced wrt L[i][1] 414 NOTE: for convenience, the full ideal of relations 'idJ' 415 and the matrix with indeterminates 'matD' are exported in the output ring. 420 416 " 421 417 { … … 516 512 } 517 513 export(L); // main export 518 ideal @@J = J; // debug-comfortable exports 519 export(@@J); 520 export(@@D); 514 ideal idJ = J; // debug-comfortable exports 515 matrix matD = @@D; 516 export(idJ); 517 export(matD); 521 518 return(@@KK); 522 519 } … … 529 526 L; 530 527 } 531 528 /////////////////////////////////////////////////////////////////////////// 532 529 proc find_invo_diag() 533 530 "USAGE: find_invo_diag(); 531 PURPOSE: describes a variety of homothetic (diagonal) involutions on a basering 534 532 RETURN: a ring together with a list of pairs L, where 535 L[i][1] = GB of an i-th component of prim.dec. 536 L[i][2] = multiplication matrix, reduced wrt L[i][1]. 537 NOTE: for convenience, the full ideal of relation @@J538 and the matrix @@D are returned.533 @* L[i][1] = Groebner Basis of an i-th associated prime, 534 @* L[i][2] = multiplication matrix, reduced wrt L[i][1] 535 NOTE: for convenience, the full ideal of relations 'idJ' 536 and the matrix with indeterminates 'matD' are exported in the output ring. 539 537 " 540 538 { … … 636 634 } 637 635 export(L); 638 ideal @@J = J; 639 export(@@J); 640 export(@@D); 636 ideal idJ = J; // debug-comfortable exports 637 matrix matD = @@D; 638 export(idJ); 639 export(matD); 641 640 return(@@KK); 642 641 } … … 649 648 L; 650 649 } 651 650 ///////////////////////////////////////////////////////////////////// 652 651 proc find_auto() 653 652 "USAGE: find_auto(); 653 PURPOSE: describes a variety of linear automorphisms of a basering 654 654 RETURN: a ring together with a list of pairs L, where 655 L[i][1] = GB of an i-th component of prim.dec. 656 L[i][2] = multiplication matrix, reduced wrt L[i][1]. 657 NOTE: for convenience, the full ideal of relations @@J658 and the matrix @@D are returned.655 @* L[i][1] = Groebner Basis of an i-th associated prime, 656 @* L[i][2] = multiplication matrix, reduced wrt L[i][1] 657 NOTE: for convenience, the full ideal of relations 'idJ' 658 and the matrix with indeterminates 'matD' are exported in the output ring. 659 659 " 660 660 { … … 755 755 } 756 756 export(L); 757 ideal @@J = J; 758 export(@@J); 759 export(@@D); 757 ideal idJ = J; // debug-comfortable exports 758 matrix matD = @@D; 759 export(idJ); 760 export(matD); 760 761 return(@@KK); 761 762 } -
Singular/LIB/ncalg.lib
r9268ce r91c978 1 1 /////////////////////////////////////////////////////////////////////////////// 2 version="$Id: ncalg.lib,v 1.1 0 2004-12-14 20:59:10levandov Exp $";2 version="$Id: ncalg.lib,v 1.11 2005-02-23 18:10:46 levandov Exp $"; 3 3 category="Noncommutative"; 4 4 info=" 5 5 LIBRARY: ncalg.lib Definitions of important GR-algebras 6 6 AUTHORS: Viktor Levandovskyy, levandov@mathematik.uni-kl.de, 7 @*Oleksandr Motsak, motsak@mathematik.uni-kl.de.7 Oleksandr Motsak, motsak@mathematik.uni-kl.de. 8 8 9 9 PROCEDURES: … … 42 42 proc sl2(list #) 43 43 "USAGE: sl2([p]), p an optional integer (field characteristic) 44 RETURN: ring, corresponding to the U(sl_2) in (e,f,h) presentation 45 NOTE: you have to activate this ring with the "setring" command 44 PURPOSE: set up the U(sl_2) in the (e,f,h) presentation over the field of char p 45 RETURN: ring 46 NOTE: you have to activate this ring with the 'setring' command 46 47 SEE ALSO: sl, g2, gl 47 48 EXAMPLE: example sl2; shows examples … … 66 67 proc sl(int n, list #) 67 68 "USAGE: sl(n,[p]); n an integer, n>1; p an optional integer (field characteristic) 68 RETURN: a ring, describing U(sl_n) 69 NOTE: You have to activate this ring with the "setring" command. The presentation of U(sl_n) is derived from the standard representation of sl_n, positive resp. negative roots are denoted by x(i) resp. y(i); Cartan elements are denoted by h(i). 69 PURPOSE: set up the U(sl_n) in x(i),y(i),h(i) presentation over the field of char p 70 RETURN: ring, describing 71 NOTE: You have to activate this ring with the 'setring' command. 72 @* The presentation of U(sl_n) is derived from the standard presentation of sl_n, 73 @* where positive resp. negative roots are denoted by x(i) resp. y(i) and 74 @* Cartan elements are denoted by h(i). 70 75 SEE ALSO: sl2, g2, gl, Qsl3, Qso3 71 76 EXAMPLE: example sl; shows examples … … 162 167 proc g2(list #) 163 168 "USAGE: g2([p]), p an optional integer (field characteristic) 164 RETURN: ring, corresponding to the U(g_2) in (x(i),y(i),Ha,Hb) presentation 165 NOTE: you have to activate this ring with the "setring" command 169 PURPOSE: set up the U(g_2) in (x(i),y(i),Ha,Hb) presentation over the field of char p 170 RETURN: ring 171 NOTE: you have to activate this ring with the 'setring' command 166 172 SEE ALSO: sl, gl 167 173 EXAMPLE: example g2; shows examples … … 232 238 example 233 239 { "EXAMPLE:"; echo = 2; 234 def a=g2(); 235 setring a; 236 a; 240 def a = g2(); 241 setring a; a; 237 242 } 238 243 … … 241 246 " 242 247 USAGE: gl(n,[p]); n an integer, n>1; p an optional integer (field characteristic) 243 RETURN: ring, corresponding to the U(gl_n) in the (e_ij (1<i,j<n)) presentation (all matrices) 244 NOTE: You have to activate this ring with the "setring" command. 248 PURPOSE: set up the U(gl_n) in the (e_ij (1<i,j<n)) presentation over the field of char p 249 RETURN: ring 250 NOTE: You have to activate this ring with the 'setring' command. 245 251 SEE ALSO: sl, g2 246 252 EXAMPLE: example gl; shows examples … … 299 305 { "EXAMPLE:"; echo = 2; 300 306 def a=gl(3); 301 setring a; 302 a; 307 setring a; a; 303 308 }; 304 309 … … 306 311 proc Qso3(list #) 307 312 "USAGE: Qso3([n]), n an optional integers 308 RETURN: ring, corresponding to the U_q(so_3) in the presentation of Klimyk; if n is specified, the quantum parameter Q will be specialized at the (2*n)-th root of unity 309 NOTE: you have to activate this ring with the "setring" command 313 PURPOSE: set up the U_q(so_3) in the presentation of Klimyk; if n is specified, the quantum parameter Q will be specialized at the (2*n)-th root of unity 314 RETURN: ring 315 NOTE: you have to activate this ring with the 'setring' command 310 316 SEE ALSO: sl, g2, gl, Qsl2, Qsl3, Qso3Casimir 311 317 EXAMPLE: example Qso3; shows examples … … 335 341 proc Qso3Casimir(int n, list #) 336 342 "USAGE: Qso3Casimir(n [,m]), n an integer, m an optional integer 337 RETURN: list with the Casimir elements of U_q(so_3) for the quantum parameter specialized at the n-th root of unity; if m!=0 is given, polynomials will be normalized 338 NOTE: the result of the procedure makes sense only in U_q(so_3) 343 PURPOSE: compute the Casimir elements of U_q(so_3) for the quantum parameter specialized at the n-th root of unity; if m!=0 is given, polynomials will be normalized 344 RETURN: list (of polynomials) 345 NOTE: the result of the procedure makes sense only when the basering is U_q(so_3) 339 346 SEE ALSO: Qso3 340 347 EXAMPLE: example Qso3Casimir; shows examples … … 393 400 proc Qsl2(list #) 394 401 "USAGE: Qsl2([n]), n an optional integer 395 RETURN: ring, corresponding to the V_q(sl_2) and the ideal Qideal in it. U_q(sl_2) = V_q(sl_2) / Qideal; if n is specified, the quantum parameter q will be specialized at the n-th root of unity 396 NOTE: you have to activate this ring with the "setring" command. If you wish to set the U_q(sl_2), you have to call the command "qring Usl2q = Qideal;" 402 PURPOSE: set up the U_q(sl_2) = V_q(sl_2) / Qideal via the ring V_q(sl_2) and the ideal 'Qideal' in it; 403 @* if n is specified, the quantum parameter q will be specialized at the n-th root of unity 404 RETURN: ring (V_q(sl_2)) 405 NOTE: you have to activate this ring with the 'setring' command. 406 @* In order to create the U_q(sl_2) from the output, you have to call the command like 'qring Usl2q = Qideal;' 397 407 SEE ALSO: sl, Qsl3, Qso3 398 408 EXAMPLE: example Qsl2; shows examples … … 430 440 proc Qsl3(list #) 431 441 "USAGE: Qsl3([n]), n an optional integer 432 RETURN: ring, corresponding to the V_q(sl_3) and the ideal Qideal in it. U_q(sl_3) = V_q(sl_3) / Qideal; if n is specified, the quantum parameter q will be specialized at the n-th root of unity 433 NOTE: you have to activate this ring with the "setring" command. If you wish to set the U_q(sl_3), you have to call the command "qring Usl3q = Qideal;" 442 PURPOSE: set up the U_q(sl_3) = V_q(sl_3) / Qideal via the ring V_q(sl_3) and the ideal 'Qideal' in it; 443 @* if n is specified, the quantum parameter q will be specialized at the n-th root of unity 444 RETURN: ring (V_q(sl_3)) 445 NOTE: you have to activate this ring with the 'setring' command. 446 @* In order to create the U_q(sl_3) from the output, you have to call the command like 'qring Usl3q = Qideal;' 434 447 SEE ALSO: sl, Qsl2, Qso3 435 448 EXAMPLE: example Qsl3; shows examples … … 510 523 def B = Qsl3(5); 511 524 setring B; 512 Qideal;513 525 qring Usl3q = Qideal; 514 526 Usl3q; … … 516 528 517 529 proc GKZsystem(intmat A, string sord, string alg, list #) 518 "USAGE: GKZsystem(A, sord, alg, [,v]), where A is intmat, defining the system; sord is a string with desired term ordering; alg is string, saying which algorithm 519 to use (like in toric_lib), v is an optional intvec 520 RETURN: ring, over which a system is defined; moreover, the ideal GKZid with equations will be exported 521 NOTE: you have to activate the ring with the "setring" command; 530 "USAGE: GKZsystem(A, sord, alg, [,v]), where 531 @* A is an intmat, defining the system, 532 @* sord is a string with desired term ordering, 533 @* alg is a string, saying which algorithm to use (exactly like in toric_lib), 534 @* v is an optional intvec. 535 PURPOSE: compute the ring and the GKZ system of equations in it 536 RETURN: ring (moreover, the ideal GKZid with equations is exported in it) 537 NOTE: you have to activate the ring with the 'setring' command; 522 538 the procedure is elaborated by Oleksandr Yena 523 OVERVIEW: this procedure uses toric_lib and therefore inherits its input 524 requirements: possible values for input variable alg are: \"ect\",\"pt\",\"blr\", \"hs\", \"du\". As for term ordering, it should be a string in Singular format like \"lp\",\"dp\", etc. Consult with toric_lib for allowed orderings. 539 OVERVIEW: this procedure uses toric_lib and therefore inherits its input requirements: 540 @* possible values for input variable 'alg' are: \"ect\",\"pt\",\"blr\", \"hs\", \"du\". 541 @* As for the term ordering, it should be a string in Singular format like \"lp\",\"dp\", etc. @* Please consult with the toric_lib for allowed orderings and more details. 525 542 SEE ALSO: toric_lib 526 543 EXAMPLE: example GKZsystem; shows examples … … 543 560 else 544 561 { 545 "Wrong type of anoptional argument. Intvec expected.";562 "Wrong type of the optional argument. Intvec expected."; 546 563 return(); 547 564 } -
Singular/LIB/ncdecomp.lib
r9268ce r91c978 1 1 /////////////////////////////////////////////////////////////////////////////// 2 version="$Id: ncdecomp.lib,v 1. 5 2005-02-21 19:14:47levandov Exp $";2 version="$Id: ncdecomp.lib,v 1.6 2005-02-23 18:10:46 levandov Exp $"; 3 3 category="Noncommutative"; 4 4 info=" … … 14 14 PROCEDURES: 15 15 CentralQuot(I,G); central quotient I:G, 16 CentralSaturation(M,T); central saturation M:T:...:T( = M:T^{\infty}),16 CentralSaturation(M,T); central saturation ((M:T):...):T) ( = M:T^{\infty}), 17 17 CenCharDec(I,C); central character decomposition of I w.r.t. C 18 18 IntersectWithSub(M,Z); intersection of M with the subalgebra, generated … … 176 176 } 177 177 /////////////////////////////////////////////////////////////////////////////// 178 proc CenCharDec(module I, list L)179 "USAGE: CenCharDec(I, L); I a module, La list of generators of the center;178 proc CenCharDec(module I, list Center) 179 "USAGE: CenCharDec(I, C); I a module, C a list of generators of the center; 180 180 RETURN: a list L, where each entry consists of three records: 181 L[*][1] is thecharacter in terms of central elements,182 L[*][2] is the Groebner basis of the corresponding weight module,183 L[*][3] is the K-dimension of the weight module;184 NOTE: some modules have no finite decomposition (in such acase one181 @* L[*][1] is the central character in terms of central elements, 182 @* L[*][2] is the Groebner basis of the corresponding weight module, 183 @* L[*][3] is the K-dimension of the weight module; 184 NOTE: some modules have no finite decomposition (in such case one 185 185 gets warning message) 186 186 SEE ALSO: CentralQuot, CentralSaturation … … 310 310 proc IntersectWithSub (ideal M, ideal Z) 311 311 "USAGE: IntersectWithSub(M,Z), M an ideal, Z an ideal of pairwise commutative elements 312 RETURN: an intersection of M with the subalgebra, generated by Z 312 PURPOSE: computes an intersection of M with the subalgebra, generated by Z 313 RETURN: ideal (of two--sided generators, not a Groebner basis!) 313 314 NOTE: usually one puts generators of the center into Z 314 315 EXAMPLE: example IntersectWithSub; shows an example -
Singular/LIB/nctools.lib
r9268ce r91c978 1 1 /////////////////////////////////////////////////////////////////////////////// 2 version="$Id: nctools.lib,v 1. 9 2004-12-14 20:50:49levandov Exp $";2 version="$Id: nctools.lib,v 1.10 2005-02-23 18:10:46 levandov Exp $"; 3 3 category="Noncommutative"; 4 4 info=" … … 11 11 12 12 PROCEDURES: 13 Gweights(r); Computes weights for a compatible ordering in a G-algebra, 14 weightedRing(r); Changes the ordering of a ring to a weighted one, 15 16 ndc([v]); Computes the ideal of non-degeneracy conditions in G-algebra, 17 RootOfUnity(n); Computes the minimal polynomial for the n-th primitive root of unity, 18 Weyl([p]); Creates Weyl algebra structure in a basering (two different realizations), 19 CreateWeyl(n, [p]); Returns n-th Weyl algebra in x(i),D(i) presentation; in char p, if an integer p is given 20 Heisenberg(N, [p,d]); Returns N-th Heisenberg algebra in x(i),y(i),h realization, 21 Exterior(); Returns qring, the exterior algebra of a basering, 22 Fin_dim_algebra(matrix M, list #); Creates finite dimensional algebra structure from basering and the multiplication matrix M, 13 Gweights(r); computes weights for a compatible ordering in a G-algebra, 14 weightedRing(r); changes the ordering of a ring to a weighted one, 15 ndc([v]); the ideal of non-degeneracy conditions in G-algebra, 16 RootOfUnity(n); the minimal polynomial for the n-th primitive root of unity, 17 Weyl([p]); creates Weyl algebra structure in a basering (two different realizations), 18 CreateWeyl(n, [p]); returns n-th Weyl algebra in (x(i),D(i)) presentation; in char p, if an integer p is given, 19 Heisenberg(N, [p,d]); returns N-th Heisenberg algebra in (x(i),y(i),h) realization, 20 Exterior(); returns qring, the exterior algebra of a basering, 21 Fin_dim_algebra(matrix M, list #); creates finite dimensional algebra structure from the basering and the multiplication matrix M, 23 22 24 23 AUXILIARY PROCEDURES: 25 24 Newton(f); Newton diagram of a polynomial f, 26 NCRelations(r); Recovers the non-commutative relations of a G-algebra,27 IsCentral(p,[v]); Check for the commutativity of polynomial p with the G-algebra,28 Is_NC(); Checks whether basering is noncommutative,29 UpOneMatrix(N); Returns NxN matrix with 1's in the whole upper triagle,25 NCRelations(r); recovers the non-commutative relations of a G-algebra, 26 IsCentral(p,[v]); check for the commutativity of polynomial p with the G-algebra, 27 Is_NC(); checks whether basering is noncommutative, 28 UpOneMatrix(N); returns NxN matrix with 1's in the whole upper triagle, 30 29 31 30 ALIAS PROCEDURES: … … 40 39 proc Gweights(def r) 41 40 "USAGE: Gweights(r); r a ring or a square matrix 42 RETURN: a weights vector for the G-algebra r or for a G-algebra which tails matrix is r 43 NOTE: with Gweights you only obtain a vector, then you must use it to redefine the G-Algebra. If the input is a matrix and the output is the zero vector then there is not a G-algebra structure associated to these relations with respect to the given variables. Another possibility is to use wRing or weightedRing to obtain directly the G-Algebra. 41 RETURN: a weight vector for the G-algebra: 42 r itself, if it is of the type ring, 43 or for a G-algebra, defined by the square matrix r 44 NOTE: with Gweights you obtain a vector, which must be used to redefine the G-Algebra. If the input is a matrix and the output is the zero vector then there is not a G-algebra structure associated to these relations with respect to the given variables. Another possibility is to use wRing or weightedRing to obtain directly the G-Algebra. 44 45 EXAMPLE: example Gweights; shows examples 45 46 SEE ALSO: wRing, weightedRing … … 101 102 { 102 103 "EXAMPLE:";echo=2; 103 ring r = (0,q),(a,b,c,d),M(0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0); 104 // consider the UPPER TRIANGULAR MATRIX C: 105 // 0, q, q, 1 106 // 0, 0, 1, q 107 // 0, 0, 0, q 108 // 0, 0, 0, 0 109 // and the UPPER TRIANGULAR MATRIX D: 110 // 0, 0, 0, m 111 // 0, 0, 0, 0 112 // 0, 0, 0, 0 with m=(q - 1/q)*b*c 113 // 0, 0, 0, 0 114 matrix C[4][4]; C[1,2]=q; C[1,3]=q; C[1,4]=1; C[2,3]=1; C[2,4]=q; C[3,4]=q; 115 matrix D[4][4]; D[1,4]=(q-1/q)*b*c; 104 ring r = (0,q),(a,b,c,d),lp; 105 matrix C[4][4]; 106 C[1,2]=q; C[1,3]=q; C[1,4]=1; C[2,3]=1; C[2,4]=q; C[3,4]=q; 107 matrix D[4][4]; 108 D[1,4]=(q-1/q)*b*c; 116 109 ncalgebra(C,D); 117 110 setring r; r; 118 111 Gweights(r); 119 112 Gweights(D); 120 Gweights(C); 121 } 122 123 /////////////////////////////////////////////////////////////////////////////// 124 125 // This procedure take a ring r, call to Gweights(r) and use the outputof Gweights(r) to make a change of order in r113 } 114 115 /////////////////////////////////////////////////////////////////////////////// 116 117 // This procedure take a ring r, call to Gweights(r) and use the output 118 // of Gweights(r) to make a change of order in r 126 119 // The output is a new ring, equal to r but the order 127 120 // r must be a G-algebra … … 129 122 proc weightedRing(def r) 130 123 "USAGE: weightedRing(r); r a ring 131 RETURN: the same ring r but the order 124 RETURN: ring with the relations of r with order changed to comply with 125 the ordering condition for G-algebras 132 126 NOTE: you have to activate this ring with the "setring" command 133 127 EXAMPLE: example weightedRing; shows examples … … 165 159 { 166 160 "EXAMPLE:";echo=2; 167 ring r = (0,q),(a,b,c,d),M(0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0); 168 // consider the UPPER TRIANGULAR MATRIX C: 169 // 0, q, q, 1 170 // 0, 0, 1, q 171 // 0, 0, 0, q 172 // 0, 0, 0, 0 173 // and the UPPER TRIANGULAR MATRIX D: 174 // 0, 0, 0, m 175 // 0, 0, 0, 0 176 // 0, 0, 0, 0 with m=(q - 1/q)*b*c 177 // 0, 0, 0, 0 178 matrix C[4][4]; C[1,2]=q; C[1,3]=q; C[1,4]=1; C[2,3]=1; C[2,4]=q; C[3,4]=q; 179 matrix D[4][4]; D[1,4]=(q-1/q)*b*c; 161 ring r = (0,q),(a,b,c,d),lp; 162 matrix C[4][4]; 163 C[1,2]=q; C[1,3]=q; C[1,4]=1; C[2,3]=1; C[2,4]=q; C[3,4]=q; 164 matrix D[4][4]; 165 D[1,4]=(q-1/q)*b*c; 180 166 ncalgebra(C,D); 181 167 setring r; r; … … 198 184 "EXAMPLE:";echo=2; 199 185 LIB "qmatrix.lib"; 200 def r=quant( 3); // generate quant(3) and store it in r186 def r=quant(2); // generate quant(2) and store it in r 201 187 setring r; // set the ring r the active ring 202 188 r; … … 317 303 318 304 static proc weightvector(list l) 319 320 305 "ASSUME: l is the output of simplex. 321 306 RETURNS: if there is a solution, an intvec with the solution." … … 351 336 352 337 proc Newton(poly f) 353 "USAGE: Newton(f); f a n polynomial338 "USAGE: Newton(f); f a poly 354 339 RETURN: intmat, representing the Newton diagram of f 355 340 NOTE: each row is the exponent of a monomial of f … … 389 374 "USAGE: NCRelations(r); r a ring 390 375 RETURN: a list with two elements, both elements are of type matrix and 391 represent the matrices defining the non-commutative relations392 of the G-algebra r .376 represent the matrices C,D defining the non-commutative relations 377 of the G-algebra r 393 378 EXAMPLE: example NCRelations; shows examples 394 379 "{ … … 451 436 "USAGE: Fin_dim_algebra(M,[r]); M a matrix, r an optional ring. 452 437 RETURN: nothing. Creates finite dimensional algebra structure in a ring r 453 (if it is given) or in a basering (by default) from the matrix M. Exports the ideal called Quot for further qring definition. 454 NOTE: matrix M will be read according to relations x_j*x_i = M[i,j]; Quot is not a two-sided Groebner basis!438 (if it is given) or in a basering (by default) from the matrix M. Exports the ideal called Quot for further qring definition. 439 NOTE: matrix M will be read according to relations x_j*x_i = M[i,j]; Quot is not given in its two-sided Groebner basis. 455 440 EXAMPLE: Fin_dim_algebra; shows examples 456 441 " … … 555 540 "USAGE: UpOneMatrix(N); N an integer, the number of columns 556 541 RETURN: intmat, NxN matrix with 1's in the whole upper triagle 557 NOTE: is useful while setting noncommutative algebras 542 NOTE: helpful for setting noncommutative algebras with complicated 543 coefficient matrices 558 544 EXAMPLE: example UpOneMatrix; shows examples 559 545 "{ … … 580 566 581 567 /////////////////////////////////////////////////////////////////////////////// 582 583 568 proc ndc(list #) 584 569 "USAGE: ndc([v]); v an optional integer. If v!=0 procedure will be verbose 585 RETURN: ideal of non-degeneracy conditions 570 RETURN: ideal of non-degeneracy conditions of the basering 586 571 EXAMPLE: example ndc; shows examples 587 572 " 588 // if the second argument is given, produces ndc wrt powers x^N 589 { 573 { 574 // if the second argument is given, produces ndc wrt powers x^N 590 575 int N = 1; 591 576 int Verbose = 0; … … 639 624 ncalgebra(C,D); 640 625 r; 641 ideal j=ndc(); 626 ideal j=ndc(); // the silent version 642 627 j; 643 628 ideal i=ndc(1); // the verbose version … … 646 631 647 632 /////////////////////////////////////////////////////////////////////////////// 648 649 633 proc RootOfUnity(int n) 650 634 "USAGE: RootOfUnity(n); n an integer 651 RETURN: number, for use as minpoly635 RETURN: number, the n-th primitive root of unity (for use as minpoly) 652 636 NOTE: works only in field extensions by one element 653 637 EXAMPLE: example RootOfUnity; shows examples … … 725 709 726 710 /////////////////////////////////////////////////////////////////////////////// 727 728 711 proc Weyl(list #) 729 712 "USAGE: Weyl([p]); p an optional integer. 730 713 RETURN: nothing. Creates Weyl algebra structure in a basering. By default 731 mimics ( x(1..N),d(1..N)) realization. If p is given and is not zero,714 mimics (x(1..N),d(1..N)) realization. If p is given and is not zero, 732 715 uses (x(1),d(1),x(2),d(2),... ) realization. 733 716 EXAMPLE: example Weyl; shows examples … … 784 767 785 768 /////////////////////////////////////////////////////////////////////////////// 786 787 769 proc Heisenberg(int N, list #) 788 770 "USAGE: Heisenberg(N, [p,d]); N an integer (setting 2*N+1 variables), p an optional integer (field characteristic), d an optional integer (power of h in the commutator) -
Singular/LIB/qmatrix.lib
r9268ce r91c978 1 version="$Id: qmatrix.lib,v 1. 7 2005-02-23 15:09:32 SingularExp $";1 version="$Id: qmatrix.lib,v 1.8 2005-02-23 18:10:46 levandov Exp $"; 2 2 category="Noncommutative"; 3 3 info=" … … 6 6 @* Rabelo, C., crabelo@ugr.es 7 7 8 SUPPORT: Metodos algebraicos y efectivos en grupos cuanticos, BFM2001-3141, MCYT, Jose Gomez-Torrecillas (Main researcher).8 SUPPORT: 'Metodos algebraicos y efectivos en grupos cuanticos', BFM2001-3141, MCYT, Jose Gomez-Torrecillas (Main researcher). 9 9 10 10 MAIN PROCEDURES: 11 quant(n, [p]); generates the quantum matrix ring of order n; if optional integer p is specified, the quantum parameter q will be specified at the p-th root of unity11 quant(n, [p]); generates the quantum matrix ring of order n; 12 12 qminor(u, v, nr); calculate a quantum minor of a quantum matrix 13 13 … … 24 24 proc SymGroup(int n) 25 25 "USAGE: SymGroup(n); n an integer, n>0 26 RETURN: intmat, containing the symmetric group S(n) 27 NOTE: each row is an element of S(n) 26 PURPOSE: present the symmetric group S(n) via integer vectors 27 RETURN: intmat 28 NOTE: each row of the output integer matrix is an element of S(n) 29 SEE ALSO: LengthSym, LengthSymElement; 28 30 EXAMPLE: example SymGroup; shows examples 29 31 "{ … … 79 81 "USAGE: LengthSymElement(v); v an intvec representing an element of S(n) 80 82 RETURN: int, the length of v 81 NOTE: if v doesn't represent an element of S(n) you may obtain a nonsense output 83 NOTE: if v doesn't represent an element of S(n), the output may have no sense 84 SEE ALSO: SymGroup, LengthSym 82 85 EXAMPLE: example LengthSymElement; shows examples 83 86 "{ … … 107 110 RETURN: intvec, the i-th element is the length of the i-th row of M 108 111 NOTE: If M is not a subset of S(n), the output may not have meaning 112 SEE ALSO: SymGroup, LengthSymElement 109 113 EXAMPLE: example LengthSym; shows examples 110 114 "{ … … 131 135 132 136 proc quant(int n, list #) 133 "USAGE: quant(n, [p]); n integer, n>1, p (optional) integer 134 RETURN: a ring, describing the quantum matrix ring of order n; if p is specified, the quantum parameter q will be specialized at p-th root of unity 135 NOTE: You have to activate this ring with the "setring" command. 136 The usual representation of the variables in this quantum 137 algebra is not used because double indexes are not allowed 138 in the variables. Instead the variables are listed reading 139 the rows of the usual matrix representation. 137 "USAGE: quant(n [, p]); n integer (n>1), p an optional integer 138 PURPOSE: compute the quantum matrix ring of order n; 139 RETURN: ring (of quantum matrices). If p is specified, the quantum parameter q 140 @* will be specialized at p-th root of unity 141 NOTE: You have to activate this ring with the 'setring' command. 142 @* The usual representation of the variables in this quantum 143 @* algebra is not used because double indexes are not allowed 144 @* in the variables. Instead the variables are listed reading 145 @* the rows of the usual matrix representation. 146 SEE ALSO: qminor 140 147 EXAMPLE: example quant; shows examples 141 148 "{ … … 199 206 "EXAMPLE:"; echo=2; 200 207 def r=quant(2); // generate O_q(M_2) at q generic 201 setring r; 202 r; 208 setring r; r; 203 209 kill r; 204 210 def r=quant(2,5); // generate O_q(M_2) at q^5=1 205 setring r; 206 r; 211 setring r; r; 207 212 } 208 213 … … 210 215 211 216 proc qminor(intvec I, intvec J, int nr) 212 "USAGE: qminor(I,J,nr); I is the ORDERED LIST of the rows to consider 213 in the minor, J is the ORDERED LIST of the cols to consider in the minor and nr is the order of the quantum matrix algebra where you are working (quant(nr)). 217 "USAGE: qminor(I,J,nr); where 218 @* I is the ordered list of the rows to consider in the minor, 219 @* J is the ordered list of the columns to consider in the minor and 220 @* nr is the order of the quantum matrix algebra you are working with (quant(nr)). 214 221 RETURN: poly, the quantum minor. 215 222 NOTE: I and J must have the same number of elements. 223 SEE ALSO: quant 216 224 EXAMPLE: example qminor; shows examples 217 225 "{ … … 258 266 /////////////////////////////////////////////////////////////////////////////// 259 267 260 // For tecnical reasons we work with a list of variables {y(1)...y(n ²)}.268 // For tecnical reasons we work with a list of variables {y(1)...y(n^2)}. 261 269 // In quantum matrices the usual is to work with a square matrix of variables {y(ij)}. 262 270 // The formulas are easier if we use matricial notation.
Note: See TracChangeset
for help on using the changeset viewer.