Explanation of the sample session. ----------------------------------- The program uses GAP as the primary interface, but calls on the package LiE to generate data that are Lie-theoretic. We call the program on the line Read("BJAlgorithm-1.g"); We have generated about 26-30 examples and I have stored them in various files. I am calling two of them here with Read("tinput25.g"); and Read("tinput23.g"); The case of tinput25.g discussed in Example 1 is as follows: the algebraic group is of Lie type B2T1, i.e. it is reductive with the radical a one dimensional torus and the semi-simple part of type B2. Now the program calls on LiE to generate all the relevant Lie-theoretic data. Next I enter the vertices of a polytope. This will be a polytope sitting in the root lattice of the group and since I have already entered it in tinput25.g, all I have to do is type L; to see what these are. In this case L = [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 1, 0, 1 ], [ 0, 1, 1 ] ]. This is a list consisting of vertices, [1, 0, 0] etc. Now the function GenPolytope(L); produces more vertices so that the resulting polytope is symmetric with respect to the action of the Weyl group associated to the given algebraic group. Finally the command IP_X(); produces the Poincare polynomial whose coefficients are the intersection cohomology Betti numbers of the projective spherical variety associated to the polytope.As you can see it is PALINDROMIC, because of Poincare-duality for intersection cohomology. The second example is for a group of type G2. A sample session ------------------ math:~/mypapers/program_Betti/bja2 [4] gap -o 0 ######### ###### ########### ### ############# ###### ############ #### ############## ######## ############# ##### ############### ######## ##### ###### ##### ###### # ######### ##### ##### ###### ###### ########## ##### ##### ####### ##### ##### #### ##### ###### ######## #### ##### ##### ############# ### #### ##### ####### #### #### ########### #### #### ##### ####### ##### ##### ###### #### #### ##### ####### ##### ##### ##### ############# ##### ##### ################ ##### ############# ###### ##### ################ ##### ############# ################ ################## ##### #### ############### ##### ##### ##### #### ############# ##### ##### ##### #### ######### ##### ##### ##### #### Information at: http://www.gap-system.org Try '?help' for help. See also '?copyright' and '?authors' Loading the library. Please be patient, this may take a while. GAP4, Version: 4.4.9 of 6-Nov-2006, x86_64-unknown-linux-gnu-gcc Components: small 2.1, small2 2.0, small3 2.0, small4 1.0, small5 1.0, small6 1.0, small7 1.0, small8 1.0, small9 1.0, small10 0.2, id2 3.0, id3 2.1, id4 1.0, id5 1.0, id6 1.0, id9 1.0, id10 0.1, trans 1.0, prim 2.1 loaded. Packages: AClib 1.1, Polycyclic 2.1, Alnuth 2.2.2, CrystCat 1.1.2, Cryst 4.1.4, AutPGrp 1.2, CRISP 1.3.1, CTblLib 1.1.3, FactInt 1.4.12, FGA 1.1.0.1, GAPDoc 0.99999, IRREDSOL 1.1.1, LAGUNA 3.3.3, Sophus 1.23, Polenta 1.2.3, ResClasses 2.3.5 loaded. gap> Read("BJAlgorithm-1.g"); Loading LiE and polymake modules... Default Group is A1 Weyl group order = 2 semisimple rank = 1 toral dimension = 0 Lattice dimension = 1 Root vectors: [ 1 ] The Poincare polynomial P_{G/T}(t) = t^2+1 The dimension of spherical imbedding = 3 polytope cleared. Please input a polytope using 'SetPolytope' or 'GenPolytope' Please set the default group using: SetDefaultGroup() Create a W-symmetric polytope by first creating a small list of vertices and then calling GenPolytope() or SetPolytope() The global variable will have the updated list of vertices For a list of available routines, call: BJ_Functions() For a list of global variables, call: BJ_Variables() Example 1. ------------------ gap> Read("tinput25.g"); Example: A2 Default Group is B2T1 Weyl group order = 8 semisimple rank = 2 toral dimension = 1 Lattice dimension = 3 Root vectors: [ 1, 0, 0 ] [ 0, 1, 0 ] Toral vectors: [ 0, 0, 1 ] The Poincare polynomial P_{G/T}(t) = t^8+2*t^6+2*t^4+2*t^2+1 The dimension of spherical imbedding = 11 polytope cleared. Please input a polytope using 'SetPolytope' or 'GenPolytope' polytope updated: gap> L; [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 1, 0, 1 ], [ 0, 1, 1 ] ] gap> GenPolytope(L); polytope updated: [ [ 1, 0, 0 ], [ -1, 0, 0 ], [ -1, -2, 0 ], [ 1, 2, 0 ], [ 0, 1, 0 ], [ 1, 1, 0 ], [ 0, -1, 0 ], [ -1, -1, 0 ], [ 1, 0, 1 ], [ -1, 0, 1 ], [ -1, -2, 1 ], [ 1, 2, 1 ], [ 0, 1, 1 ], [ 1, 1, 1 ], [ 0, -1, 1 ], [ -1, -1, 1 ] ] gap> IP_X(); t^22+3*t^20+7*t^18+15*t^16+24*t^14+30*t^12+30*t^10+24*t^8+15*t^6+7*t^4+3*t^2+1 Example 2. ---------------- gap> Read("tinput23.g"); Example: A2 Default Group is G2 Weyl group order = 12 semisimple rank = 2 toral dimension = 0 Lattice dimension = 2 Root vectors: [ 1, 0 ] [ 0, 1 ] The Poincare polynomial P_{G/T}(t) = t^12+2*t^10+2*t^8+2*t^6+2*t^4+2*t^2+1 The dimension of spherical imbedding = 14 polytope cleared. Please input a polytope using 'SetPolytope' or 'GenPolytope' polytope updated: gap> L; [ [ 1, 0 ], [ 0, 1 ] ] gap> GenPolytope(L); polytope updated: [ [ 1, 0 ], [ -1, 0 ], [ -1, -1 ], [ -2, -1 ], [ 1, 1 ], [ 2, 1 ], [ 0, 1 ], [ 3, 1 ], [ 3, 2 ], [ 0, -1 ], [ -3, -1 ], [ -3, -2 ] ] gap> IP_X(); t^28+3*t^26+9*t^24+18*t^22+27*t^20+36*t^18+44*t^16+48*t^14+44*t^12+36*t^10+27*\ t^8+18*t^6+9*t^4+3*t^2+1 gap> quit;