===================================================================== === === === EQUIVARIANT SCHUBERT CALCULATOR === === === === Written by Anders Skovsted Buch === === === === October 4, 2014 === === === ===================================================================== 1. Introduction This is a preliminary user manual for the Equivariant Schubert Calculator, a Maple package to perform calculations in the equivariant K-theory of generalized flag varieties G/P, as well as the equivariant quantum K-theory of cominuscule homogeneous spaces. The Equivariant Schubert Calculator is loaded into Maple by the commands: > read equivcalc; > with(equivcalc); 2. Data Structures The most important objects represented in the Equivariant Schubert Calculator are ROOT SYSTEMs, ROOTs, WEIGHTs, WEYL GROUP ELEMENTs, PARABOLIC SUBGROUPs, and SCHUBERT CLASSES. In this section I explain how each of these objects are represented. A ROOT SYSTEM is represented by its Cartan matrix, given as a list of lists of integers. The root system G2 is represented by: [[2, -1], [-3, 2]] A ROOT is represented as the list of coefficients required to express the root as a linear combination of simple roots. For example, the longest root of G2 is equal to 3 times the first simple root plus two times the second simple root; this longest root is represented by the list: [3, 2] A WEIGHT is represented by the list of coefficients required to express the weight as a linear combination of fundamental weights (the basis vectors dual to the simple coroots). For example, [1,1,...,1] is the sum of all the fundamental weights. A WEYL GROUP ELEMENT w is represented as the weight obtained by applying w^{-1} to the weight [1,1,...,1]. For example, the first simple reflection s_1 in the Weyl group of type G2 is represented as the weight [-1, 2] as we have s_1.[1,1] = [-1,2]. This way to represent Weyl group elements has the advantage that it works for root systems of all Lie types. On the other hand, it is difficult for humans to interpret the representation of a Weyl group element. However, the Equivariant Schubert Calculator offers many functions that compute alternative representations, including reduced expressions or signed permutations for elements of classical Weyl groups. A PARABOLIC SUBGROUP is represented as the set of numbers of simple reflections that generate the parabolic subgroup. The parabolic subgroup of G2 generated by the first simple reflection is represented by: {1} A SCHUBERT CLASS of the homogeneous space G/P, given by a root system R and a parabolic subgroup P, is represented as X[w], where [w] is the weight representation of the Weyl group element of minimal length that corresponds to the Schubert class. More precisely, X[w] is the class of the opposite Schubert variety given by w, with codimension equal to the length of w. For example, the class of the opposite Schubert divisor in G2/B that corresponds to the first simple reflection is: X[-1, 2] Notice that the Equivariant Schubert Calculator makes no attempt to keep track of which lists of integers represent roots or weights, or which root systems these roots or weights belong to. The user is responsible for this. Similarly, the notation for Schubert classes is the same for all cohomology theories, and the user is responsible for knowing where a Schubert class lives. 3. Choosing a root system The Equivariant Schubert Calculator operates with a current root system and a current parabolic subgroup. To choose this pair, use the command rs(R,P). For example, to choose the root system G2 and the parabolic subgroup generated by the first simple reflection, issue the command: > rs("G2", {1}); The first argument of rs() can be either a Cartan matrix (given as a list of lists of integers) or the name of a root system (as a string). In a string representing a root system name, the Lie type letter must be CAPITALIZED. Therefore the command rs("g2",{1}); does NOT work! The root systems and parabolic subgroups corresponding to common spaces G/P can be set by specialized commands. For example, the command > Fl(1,4,6); tells the package that we wish to work with the variety of two-step flags of dimension (1,4) in a vector space of dimension 6. This command will set the current root system to A5 and the current parabolic subgroup to {2,3,5}. The following commands can be used to choose other common flag varieties: Gr(m,n) : Grassmannian of m-planes in C^n. Fl(n) : Variety of complete flags in C^n. Fl(a,b,...,c,n) : Variety of partial flags in C^n. OG(m,N) : Grassmannian of isotropic m-planes in an orthogonal vector space of dimension N. OF(N) : Variety of complete isotropic flags in an orthogonal vector space of dimension N. OF(a,b,...,c,N) : Variety of partial isotropic flags. SG(m,N) : Grassmannian of isotropic m-planes in a symplectic vector space of dimension N (N must be even). SF(N) : Variety of complete isotropic flags in a symplectic vector space of dimension N. SF(a,b,...,c,N) : Variety of partial isotropic flags. The current root system and parabolic subgroup can be recalled using the functions get_rs() and get_parab(). After setting a current root system R and parabolic subgroup P, associated sets of positive roots and Weyl group elements can be obtained with the following functions: pos_roots() : Return the set of all positive roots of the current root system R that are not in the subsystem given by the current parabolic subgroup P. weyl_group() : Return the set of minimal representatives of the cosets in W/P, where W is the Weyl group of R. It is also possible to specify a root system and parabolic subgroup directly to these function with optional arguments. In fact, this is true about all functions that rely on the current root system and parabolic subgroup. pos_roots(R) : Return all positive roots of the root system R. For example, the command pos_roots(get_rs()); returns the set of all positive roots of the current root system. pos_roots(R,P) : Return the positive roots of R that are not in the subsystem of P. weyl_group(R) : Return all Weyl group elements of root system R. weyl_group(R,P) : Minimal representatives of the cosets in W/P. The specified root system R can be a Cartan matrix (list of lists of integers) or a string specifying the name of the root system (with capitalized Lie type). For example, the following command returns the set of all positive roots of the root system B3: > pos_roots("B3"); 4. Multiplication of Schubert classes If a root system and a parabolic subvariety is specified, the following commands can be used to compute products of Schubert classes in various cohomology theories of X = G/P. hmult(u, v) : Compute the product X[u]*X[v] in the singular cohomology ring H(X). htmult(u, v) : Compute X[u]*X[v] in the equivariant cohomology ring H_T(X). kmult(u, v) : Compute X[u]*X[v] in the K-theory ring K(X). ktmult(u, v) : Compute X[u]*X[v] in equivariant K-theory K_T(X). Classes in the equivariant cohomology ring H_T(X) are represented as linear combinations of Schubert classes, where the coefficients are polynomials in variables t[1], t[2], ..., t[n]. Here n is the rank of the root system. The variable t[i] represents the class in H_T(point) given as the restriction of the (opposite) Schubert divisor of the i-th simple reflection to the T-fixed point of the i-th simple reflection. Classes in the equivariant K-theory ring K_T(X) are represented as linear combinations of Schubert classes, where the coefficients are polynomials in the variables T[1], T[2], ..., T[n]. Here T[i] is the class in K_T(point) given as the restriction of the ideal of the i-th Schubert divisor to the T-fixed point of the i-th simple reflection. If the variety G/P is cominuscule, then the above commands have the following quantum versions: comin_qhmult(u, v) : Product in QH(X). comin_qhtmult(u, v) : Product in QH_T(X). comin_qkmult(u, v) : Product in QK(X). comin_qktmult(u, v) : Product in QK_T(X). 5. Common indexing conventions for Schubert classes Let X = G/P be the generalized flag variety given by the root system R and the parabolic subgroup P. The following commands can be used to convert Weyl group elements of Schubert classes of X (represented as weights) to other common indexing objects for Schubert classes. weyl_redexp(w) : Return a reduced word of w, i.e. a list of simple reflection numbers in a reduced expression for w. redexp_weyl(a) : Convert a reduced word back to a Weyl group element. weyl_sp(w) : If R is a root system of classical type, then return the signed permutation representing the Weyl group element w. sp_weyl(sp) : Convert a signed permutation back to a Weyl group element. weyl_part(w) : If X is a cominuscule variety or an isotropic Grassmann variety, then return a partition representing w. part_weyl(la) : Convert the partition la back to a Weyl group element. Notice that these functions can also be applied to expressions of Schubert classes. This makes it possible to print products of Schubert classes using any desired indexing convention. Example: The following commands compute the square of the divisor class on Gr(2,4) and displays this product using partition notation as well as permutation notation: Gr(2,4); u := part_weyl([1]); prd := hmult(u, u); weyl_part(prd); weyl_sp(prd); 6. Additional functions The Equivariant Schubert Calculator has many more functions available. A full list of function names is printed by the command: > with(equivcalc); I plan to write an expanded version of this user manual that will explain how all these functions work. Until then you may be able to guess what a function does from its name, and you can see which arguments it expects by looking at the source code in the file equivcalc. You are also encouraged to read the example files supplied with the Equivariant Schubert Calculator: ex_curvenbhd ex_kminu ex_kpieri ex_qkcayley ex_qkgrass ex_qktP2 ex_twostep Each file contains a few lines of maple commands that compute an interesting example, as well as a reference to a paper that explains the underlying mathematics. Enjoy! Anders Buch =====================================================================