Ticket #8442: trac_8442-lie-rebased-4.5.2.2.patch
| File trac_8442-lie-rebased-4.5.2.2.patch, 129.9 KB (added by bump, 3 years ago) |
|---|
-
MANIFEST.in
# HG changeset patch # User Daniel Bump <bump@match.stanford.edu> # Date 1282433435 25200 # Node ID fc7cc70533c44701cdc21537ee1721dd396b8624 # Parent 5b338f2e484f2065d3d30d47bc204d6e9ed13d12 trac_8442-rebased-4.5.2.patch diff -r 5b338f2e484f -r fc7cc70533c4 MANIFEST.in
a b 34 34 include doc/fr/a_tour_of_sage/eigen_plot.png 35 35 include doc/fr/a_tour_of_sage/sin_plot.png 36 36 recursive-include doc/en/reference/media * 37 recursive-include doc/en/thematic_tutorials/media * 37 38 recursive-include doc/common/static * 38 39 recursive-include doc/common/themes * 39 40 include sage/ext/mac-app/README -
new file doc/en/thematic_tutorials/bibliography.rst
diff -r 5b338f2e484f -r fc7cc70533c4 doc/en/thematic_tutorials/bibliography.rst
- + 1 ============ 2 Bibliography 3 ============ 4 5 .. [BumpNakasuji2010] D. Bump and M. Nakasuji. Casselman's basis of 6 Iwahori vectors and the Bruhat order. arXiv:1002.2996, 7 http://arxiv.org/abs/1002.2996. 8 9 .. [Carrell1994] J. B. Carrell. The Bruhat graph of a Coxeter group, a 10 conjecture of Deodhar, and rational smoothness of Schubert varieties. In 11 *Algebraic Groups and Their Generalizations: Classical Methods*, 12 AMS Proceedings of Symposia in Pure Mathematics, 56, 53--61, 1994. 13 14 .. [Casselman1980] W. Casselman. The unramified principal series of 15 `\mathfrak{p}`-adic groups I: The spherical function. *Compositio 16 Mathematica*, 40(3):387--406, 1980. 17 18 .. [CormenEtAl2001] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and 19 C. Stein. *Introduction to Algorithms*. The MIT Press, USA, 2nd 20 edition, 2001. 21 22 .. [Deodhar1977] V. V. Deodhar. Some characterizations of Bruhat 23 ordering on a Coxeter group and determination of the relative 24 Moebius function. Inventiones Mathematicae, 39(2):187--198, 1977. 25 26 .. [Dyer1993] M. J. Dyer. The nil Hecke ring and Deodhar's conjecture 27 on Bruhat intervals. Inventiones Mathematicae, 111(1):571--574, 1993. 28 29 .. [FauserEtAl2006] B. Fauser, P. D. Jarvis, R. C. King, and 30 B. G. Wybourne. New branching rules induced by plethysm. *Journal of 31 Physics A*. 39(11):2611--2655, 2006. 32 33 .. [Fulton1997] W. Fulton. *Young Tableaux*. Cambridge University 34 Press, 1997. 35 36 .. [HainesEtAl2009] T. J. Haines, R. E. Kottwitz, and 37 A. Parsad. Iwahori-Hecke Algebras. arXiv:math/0309168, 38 http://arxiv.org/abs/math/0309168. 39 40 .. [HongKang2002] J. Hong and S.-J. Kang. *Introduction to Quantum 41 Groups and Crystal Bases*. AMS Graduate Studies in Mathematics, 42 American Mathematical Society, 2002. 43 44 .. [HoweEtAl2005] R. Howe, E.-C.Tan, and J. F. Willenbring. Stable 45 branching rules for classical symmetric pairs. *Transactions of the 46 American Mathematical Society*, 357(4):1601--1626, 2005. 47 48 .. [Iwahori1964] N. Iwahori. On the structure of a Hecke ring of a 49 Chevalley group over a finite field. *J. Fac. Sci. Univ. Tokyo 50 Sect. I*, 10:215--236, 1964. 51 52 .. [Jimbo1986] M. A. Jimbo. `q`-analogue of `U(\mathfrak{gl}(N+1))`, 53 Hecke algebra, and the Yang-Baxter equation. *Lett. Math. Phys*, 54 11(3):247--252, 1986. 55 56 .. [Kashiwara1995] M. Kashiwara. On crystal bases. Representations of 57 groups (Banff, AB, 1994), 155--197, CMS Conference Proceedings, 16, 58 American Mathematical Society, Providence, RI, 1995. 59 60 .. [KashiwaraNakashima1994] M. Kashiwara and T. Nakashima. Crystal 61 graphs for representations of the `q`-analogue of classical Lie 62 algebras. *Journal Algebra*, 165(2):295--345, 1994. 63 64 .. [King1975] R. C. King. Branching rules for classical Lie groups 65 using tensor and spinor methods. *Journal of Physics A*, 66 8:429--449, 1975. 67 68 .. [Knuth1970] D. Knuth. Permutations, matrices, and generalized Young 69 tableaux. *Pacific Journal of Mathematics*, 34(3):709--727, 1970. 70 71 .. [Knuth1998] D. Knuth. *The Art of Computer 72 Programming. Volume 3. Sorting and Searching*. Addison Wesley 73 Longman, 1998. 74 75 .. [McKayPatera1981] W. G. McKay and J. Patera. *Tables of Dimensions, 76 Indices and Branching Rules for Representations of Simple Lie 77 Algebras*. Marcel Dekker, 1981. 78 79 .. [MenezesEtAl1996] A. J. Menezes, P. C. van Oorschot, and 80 S. A. Vanstone. *Handbook of Applied Cryptography*. CRC Press, Boca 81 Raton, FL, USA, 1996. 82 83 .. [Reeder1992] M. Reeder. On certain Iwahori invariants in the 84 unramified principal series. *Pacific Journal of Mathematics*, 85 153(2):313--342, 1992. 86 87 .. [Rogawski1985] J. Rogawski, On modules over the Hecke algebra of a 88 `p`-adic group. *Inventiones Mathematicae*, 79(3):443--465, 1985. 89 90 .. [Stanley1999] R. P. Stanley. *Enumerative Combinatorics, Volume 91 2*. Cambridge University Press, 1999. 92 93 .. [Stinson2006] D. R. Stinson. *Cryptography: Theory and Practice*. 94 Chapman & Hall/CRC, Boca Raton, USA, 3rd edition, 2006. 95 96 .. [TrappeWashington2006] W. Trappe and L. C. Washington. *Introduction 97 to Cryptography with Coding Theory*. Pearson Prentice Hall, Upper 98 Saddle River, New Jersey, USA, 2nd edition, 2006. -
doc/en/thematic_tutorials/index.rst
diff -r 5b338f2e484f -r fc7cc70533c4 doc/en/thematic_tutorials/index.rst
a b 17 17 18 18 functional_programming 19 19 group_theory 20 lie 21 bibliography 20 22 21 23 Indices and tables 22 24 ================== -
new file doc/en/thematic_tutorials/lie.rst
diff -r 5b338f2e484f -r fc7cc70533c4 doc/en/thematic_tutorials/lie.rst
- + 1 .. -*- coding: utf-8 -*- 2 3 ============================================= 4 Lie Methods and Related Combinatorics in Sage 5 ============================================= 6 7 .. MODULEAUTHOR:: Daniel Bump, Stanford University 8 9 These notes explain how to use the mathematical software Sage for 10 Lie group computations. Sage also contains many combinatorial 11 algorithms. We will cover only some of these. 12 13 .. toctree:: 14 :maxdepth: 2 15 16 lie/introduction 17 lie/lie_basics 18 lie/weyl_character_ring 19 lie/branching_rules 20 lie/weight_ring 21 lie/weyl_groups 22 lie/crystals 23 lie/iwahori_hecke_algebra 24 lie/kazhdan_lusztig_polynomials -
new file doc/en/thematic_tutorials/lie/branching_rules.rst
diff -r 5b338f2e484f -r fc7cc70533c4 doc/en/thematic_tutorials/lie/branching_rules.rst
- + 1 ------------------------------------- 2 Maximal Subgroups and Branching Rules 3 ------------------------------------- 4 5 6 Branching rules 7 --------------- 8 9 If `G` is a Lie group and `H` is a subgroup, one often needs to know 10 how representations of `G` restrict to `H`. Irreducibles usually do 11 not restrict to irreducibles. In some cases the restriction is regular 12 and predictable, in other cases it is chaotic. The description of how 13 irreducibles decompose into irreducibles is called a *branching rule*. 14 15 References for this topic: 16 17 - [FauserEtAl2006]_ 18 19 - [King1975]_ 20 21 - [HoweEtAl2005]_ 22 23 - [McKayPatera1981]_ 24 25 Sage has enough built-in branching rules to handle all cases where `G` 26 is a classical group, that is, type A, B, C or D. It also has many 27 built-in cases where `G` is an exceptional group. 28 29 Clearly it is sufficient to consider the case where `H` is a maximal 30 subgroup of `G`, since if this is known then one may branch down 31 successively through a series of subgroups, each maximal in its 32 predecessors. A problem is therefore to understand the maximal 33 subgroups in a Lie group, and to give branching rules for each. 34 35 For convenience Sage includes some branching rules to non-maximal 36 subgroups, but strictly speaking these are not necessary. The goal is 37 to give a sufficient set of built-in branching rules for all maximal 38 subgroups, and this is accomplished for classical groups (types A, B, 39 C or D) at least up to rank 8, and for many maximal subgroups of 40 exceptional groups. 41 42 43 Levi subgroups 44 -------------- 45 46 A Levi subgroup may or may not be maximal. They are easily 47 classified. If one starts with a Dynkin diagram for `G` and removes a 48 single node, one obtains a smaller Dynkin diagram, which is the Dynkin 49 diagram of a smaller subgroup `H`. 50 51 For example, here is the A3 Dynkin diagram:: 52 53 sage: A3 = WeylCharacterRing("A3") 54 sage: A3.dynkin_diagram() 55 O---O---O 56 1 2 3 57 A3 58 59 We see that we may remove the node 3 and obtain A2, or the node 2 and 60 obtain A1xA1. These correspond to the Levi subgroups `GL(3)` and 61 `GL(2) \times GL(2)` of `GL(4)`. Let us construct the irreducible 62 representations of `GL(4)` and branch them down to these down to 63 `GL(3)` and `GL(2) \times GL(2)`:: 64 65 sage: A3 = WeylCharacterRing("A3") 66 sage: reps = [A3(v) for v in A3.fundamental_weights()]; reps 67 [A3(1,0,0,0), A3(1,1,0,0), A3(1,1,1,0)] 68 sage: A2 = WeylCharacterRing("A2") 69 sage: A1xA1 = WeylCharacterRing("A1xA1") 70 sage: [pi.branch(A2, rule="levi") for pi in reps] 71 [A2(0,0,0) + A2(1,0,0), A2(1,0,0) + A2(1,1,0), A2(1,1,0) + A2(1,1,1)] 72 sage: [pi.branch(A1xA1, rule="levi") for pi in reps] 73 [A1xA1(0,0,1,0) + A1xA1(1,0,0,0), 74 A1xA1(0,0,1,1) + A1xA1(1,0,1,0) + A1xA1(1,1,0,0), 75 A1xA1(1,0,1,1) + A1xA1(1,1,1,0)] 76 77 Let us redo this calculation in coroot notation. As we have explained, 78 coroot notation does not distinguish between representations of 79 `GL(4)` that have the same restriction to `SL(4)`, so in effect we are 80 now working with the groups `SL(4)` and its Levi subgroups `SL(3)` and 81 `SL(2) \times SL(2)`:: 82 83 sage: A3 = WeylCharacterRing("A3", style="coroots") 84 sage: reps = [A3(v) for v in A3.fundamental_weights()]; reps 85 [A3(1,0,0), A3(0,1,0), A3(0,0,1)] 86 sage: A2 = WeylCharacterRing("A2", style="coroots") 87 sage: A1xA1 = WeylCharacterRing("A1xA1", style="coroots") 88 sage: [pi.branch(A2, rule="levi") for pi in reps] 89 [A2(0,0) + A2(1,0), A2(0,1) + A2(1,0), A2(0,0) + A2(0,1)] 90 sage: [pi.branch(A1xA1, rule="levi") for pi in reps] 91 [A1xA1(0,1) + A1xA1(1,0), 2*A1xA1(0,0) + A1xA1(1,1), A1xA1(0,1) + A1xA1(1,0)] 92 93 Now we may observe a distinction difference in branching from 94 `GL(4) \to GL(2) \times GL(2)` and with 95 `SL(4) \to SL(2) \times SL(2)`. Consider the middle representation, 96 which is the six dimensional exterior square. In the coroot notation, 97 the restriction contained two copies of the trivial representation, 98 ``2*A1xA1(0,0)``. The other way, we had instead three distinct 99 representations in the restriction, namely ``A1xA1(1,1,0,0)`` and 100 ``A1xA1(0,0,1,1)``, that is, `\det \otimes 1` and `1 \otimes \det`. 101 102 The Levi subgroup ``A1xA1`` is actually not maximal. Indeed, we may 103 factor the embedding: 104 105 .. MATH:: 106 107 SL(2) \times SL(2) \to Sp(4) \to SL(4). 108 109 Therfore there are branching rules ``A3 -> C2`` and ``C2 -> A2``, and 110 we could accomplish the branching in two steps, thus:: 111 112 sage: A3 = WeylCharacterRing("A3", style="coroots") 113 sage: C2 = WeylCharacterRing("C2", style="coroots") 114 sage: B2 = WeylCharacterRing("B2", style="coroots") 115 sage: D2 = WeylCharacterRing("D2", style="coroots") 116 sage: A1xA1 = WeylCharacterRing("A1xA1", style="coroots") 117 sage: reps = [A3(fw) for fw in A3.fundamental_weights()] 118 sage: [pi.branch(C2, rule="symmetric").branch(B2, rule="isomorphic").\ 119 ....: branch(D2, rule="extended").branch(A1xA1, rule="isomorphic") for pi in reps] 120 [A1xA1(0,1) + A1xA1(1,0), 2*A1xA1(0,0) + A1xA1(1,1), A1xA1(0,1) + A1xA1(1,0)] 121 122 As you can see, we've redone the branching rather circuitously this 123 way, making use of the branching rules ``A3->C2`` and ``B2->D2``, and 124 two accidental isomorphisms ``C2=B2`` and ``D2=A1xA1``. It is much 125 easier to go in one step using ``rule="levi"``, but reassuring that we 126 get the same answer! 127 128 129 Subgroups classified by the extended Dynkin diagram 130 --------------------------------------------------- 131 132 It is also true that if we remove one node from the extended Dynkin 133 diagram that we obtain the Dynkin diagram of a subgroup. For example:: 134 135 sage: G2 = WeylCharacterRing("G2", style="coroots") 136 sage: G2.extended_dynkin_diagram() 137 3 138 O=<=O---O 139 1 2 0 140 G2~ 141 142 Observe that by removing the 1 node that we obtain an A2 Dynkin 143 diagram. Therefore the exceptional group G2 contains a copy of 144 `SL(3)`. We branch the two representations of G2 corresponding to the 145 fundamental weights to this copy of A2:: 146 147 sage: G2 = WeylCharacterRing("G2", style="coroots") 148 sage: A2 = WeylCharacterRing("A2", style="coroots") 149 sage: [G2(f).degree() for f in G2.fundamental_weights()] 150 [7, 14] 151 sage: [G2(f).branch(A2, rule="extended") for f in G2.fundamental_weights()] 152 [A2(0,0) + A2(0,1) + A2(1,0), A2(0,1) + A2(1,0) + A2(1,1)] 153 154 The two representations of G2, of degrees 7 and 14 respectively, are 155 the action on the octonions of trace zero and the adjoint 156 representation. 157 158 For embeddings of this type, the rank of the subgroup `H` is the same 159 as the rank of `G`. This is in contrast with embeddings of Levi type, 160 where `H` has rank one less than `G`. 161 162 163 Orthogonal and symplectic subgroups of orthogonal and symplectic groups 164 ----------------------------------------------------------------------- 165 166 If `G = SO(r+s)` then `G` has a subgroup `SO(r) \times SO(s)`. This 167 lifts to an embedding of the universal covering groups 168 169 .. MATH:: 170 171 \hbox{spin}(r) \times \hbox{spin}(s) \to \hbox{spin}(r+s). 172 173 Sometimes this embedding is of extended type, and sometimes it is 174 not. It is of extended type unless `r` and `s` are both odd. If it is 175 of extended type then you may use ``rule="extended"``. In any case you 176 may use ``rule="orthogonal_sum"``. The name refer to the origin of the 177 embedding `SO(r) \times SO(s) \to SO(r+s)` from the decomposition of 178 the underlying quadratic space as a direct sum of two orthogonal 179 subspaces. 180 181 There are four cases depending on the parity of `r` and `s`. For 182 example, if `r = 2k` and `s = 2l` we have an embedding:: 183 184 ['D',k] x ['D',l] --> ['D',k+l] 185 186 This is of extended type. Thus consider the embedding 187 ``D4xD3 -> D7``. Here is the extended Dynkin diagram:: 188 189 0 O O 7 190 | | 191 | | 192 O---O---O---O---O---O 193 1 2 3 4 5 6 194 195 Removing the 4 vertex results in a disconnected Dynkin diagram:: 196 197 0 O O 7 198 | | 199 | | 200 O---O---O O---O 201 1 2 3 5 6 202 203 This is ``D4xD3``. Therefore use the "extended" branching rule:: 204 205 sage: D7 = WeylCharacterRing("D7", style="coroots") 206 sage: D4xD3 = WeylCharacterRing("D4xD3", style="coroots") 207 sage: spin = D7(D7.fundamental_weights()[7]); spin 208 D7(0,0,0,0,0,0,1) 209 sage: spin.branch(D4xD3, rule="extended") 210 D4xD3(0,0,1,0,0,1,0) + D4xD3(0,0,0,1,0,0,1) 211 212 Similarly we have embeddings:: 213 214 ['D',k] x ['B',l] --> ['B',k+l] 215 216 These are also of extended type. For example consider the embedding of 217 ``D3xB2->B5``. Here is the ``B5`` extended Dynkin diagram:: 218 219 O 0 220 | 221 | 222 O---O---O---O=>=O 223 1 2 3 4 5 224 225 Removing the 3 node gives:: 226 227 O 0 228 | 229 O---O O=>=O 230 1 2 4 5 231 232 and this is the Dynkin diagram or ``D3xB2``. For such branchings we 233 again use ``rule="extended"``. 234 235 Finally, there is an embedding :: 236 237 ['B',k] x ['B',l] --> ['D',k+l+1] 238 239 This is *not* of extended type, so you may not use ``rule="extended"``. 240 241 242 Symmetric subgroups 243 ------------------- 244 245 If `G` admits an outer automorphism (usually of order two) then we may 246 try to find the branching rule to the fixed subgroup `H`. It can be 247 arranged that this automorphism maps the maximal torus `T` to itself 248 and that a maximal torus `U` of `H` is contained in `T`. 249 250 Suppose that the Dynkin diagram of `G` admits an automorphism. Then 251 `G` itself admits an outer automorphism. The Dynkin diagram of the 252 group `H` of invariants may be obtained by "folding" the Dynkin 253 diagram of `G` along the automorphism. The exception is the branching 254 rule `GL(2r) \implies SO(2r)`. 255 256 Here are the branching rules that can be obtained using 257 ``rule="symmetric"``. 258 259 +------------+-------------+---------------------------+ 260 | `G` | `H` | Cartan Types | 261 +============+=============+===========================+ 262 | `GL(2r)` | `Sp(2r)` | ``['A',2r-1] => ['C',r]`` | 263 +------------+-------------+---------------------------+ 264 | `GL(2r+1)` | `SO(2r+1)` | ``['A',2r] => ['B',r]`` | 265 +------------+-------------+---------------------------+ 266 | `GL(2r)` | `SO(2r)` | ``['A',2r-1] => ['D',r]`` | 267 +------------+-------------+---------------------------+ 268 | `SO(2r)` | `SO(2r-1)` | ``['D',r] => ['B',r-1]`` | 269 +------------+-------------+---------------------------+ 270 | `E_6` | `F_4` | ``['E',6] => ['F',4]`` | 271 +------------+-------------+---------------------------+ 272 273 274 Tensor products 275 --------------- 276 277 If `G_1` and `G_2` are Lie groups, and we have representations 278 `\pi_1: G_1 \to GL(n)` and `\pi_2: G_2 \to GL(m)` then the tensor 279 product is a representation of `G_1 \times G_2`. It has its image 280 in `GL(nm)` but sometimes this is conjugate to a subgroup of `SO(nm)` 281 or `Sp(nm)`. In particular we have the following cases. 282 283 +-------------------+---------------------------+------------------------------------------+ 284 | Group | Subgroup | Cartan Types | 285 +===================+===========================+==========================================+ 286 | `GL(rs)` | `GL(r)\times GL(s)` | ``['A', rs-1] => ['A',r-1] x ['A',s-1]`` | 287 +-------------------+---------------------------+------------------------------------------+ 288 | `SO(4rs+2r+2s+1)` | `SO(2r+1)\times SO(2s+1)` | ``['B',2rs+r+s] => ['B',r] x ['B',s]`` | 289 +-------------------+---------------------------+------------------------------------------+ 290 | `SO(4rs+2s)` | `SO(2r+1)\times SO(2s)` | ``['D',2rs+s] => ['B',r] x ['D',s]`` | 291 +-------------------+---------------------------+------------------------------------------+ 292 | `SO(4rs)` | `SO(2r)\times SO(2s)` | ``['D',2rs] => ['D',r] x ['D',s]`` | 293 +-------------------+---------------------------+------------------------------------------+ 294 | `SO(4rs)` | `Sp(2r)\times Sp(2s)` | ``['D',2rs] => ['C',r] x ['C',s]`` | 295 +-------------------+---------------------------+------------------------------------------+ 296 | `Sp(4rs+2s)` | `SO(2r+1)\times Sp(2s)` | ``['C',2rs+s] => ['B',r] x ['C',s]`` | 297 +-------------------+---------------------------+------------------------------------------+ 298 | `Sp(4rs)` | `Sp(2r)\times SO(2s)` | ``['C',2rs] => ['C',r] x ['D',s]`` | 299 +-------------------+---------------------------+------------------------------------------+ 300 301 These branching rules are obtained using ``rule="tensor"``. 302 303 304 Symmetric powers 305 ---------------- 306 307 The `k`-th symmetric and exterior power homomorphisms map 308 `GL(n) \to GL \left({n+k-1 \choose k} \right)` and 309 `GL \left({n \choose k} \right)`. The corresponding branching rules 310 are not implemented but a special case is. The `k`-th symmetric power 311 homomorphism `SL(2) \to GL(k+1)` has its image inside of `SO(2r+1)` if 312 `k = 2r` and inside of `Sp(2r)` if `k = 2r-1`. Hence there are 313 branching rules:: 314 315 ['B',r] => A1 316 ['C',r] => A1 317 318 and these may be obtained using ``rule="symmetric_power"``. 319 320 321 Plethysms 322 --------- 323 324 The above branching rules are sufficient for most cases, but a few 325 fall between the cracks. Mostly these involve maximal subgroups of 326 fairly small rank. 327 328 The rule ``rule="plethysm"`` is a powerful rule that includes any 329 branching rule from types A, B, C or D as a special case. Thus it 330 could be used in place of the above rules and would give the same 331 results. However, it is most useful when branching from `G` to a 332 maximal subgroup `H` such that `rank(H) < rank(G)-1`. 333 334 We consider a homomorphism `H \to G` where `G` is one of `SL(r+1)`, 335 `SO(2r+1)`, `Sp(2r)` or `SO(2r)`. The function 336 ``branching_rule_from_plethysm`` produces the corresponding branching 337 rule. The main ingredient is the character `\chi` of the 338 representation of `H` that is the homomorphism to `GL(r+1)`, 339 `GL(2r+1)` or `GL(2r)`. 340 341 Let us consider the symmetric fifth power representation of 342 `SL(2)`. This is implemented above by ``rule="symmetric_power"``, but 343 suppose we want to use ``rule="plethysm"``. First we construct the 344 homomorphism by invoking its character, to be called ``chi``:: 345 346 sage: A1 = WeylCharacterRing("A1", style="coroots") 347 sage: chi = A1([5]) 348 sage: chi.degree() 349 6 350 sage: chi.frobenius_schur_indicator() 351 -1 352 353 This confirms that the character has degree 6 and is symplectic, so it 354 corresponds to a homomorphism `SL(2) \to Sp(6)`, and there is a 355 corresponding branching rule ``C3 => A1``:: 356 357 sage: C3 = WeylCharacterRing("C3", style="coroots") 358 sage: sym5rule = branching_rule_from_plethysm(chi, "C3") 359 sage: [C3(hwv).branch(A1, rule=sym5rule) for hwv in C3.fundamental_weights()] 360 [A1(5), A1(4) + A1(8), A1(3) + A1(9)] 361 362 This is identical to the results we would obtain using 363 ``rule="symmetric_power"``:: 364 365 sage: [C3(v).branch(A1, rule="symmetric_power") for v in C3.fundamental_weights()] 366 [A1(5), A1(4) + A1(8), A1(3) + A1(9)] 367 368 But the next example of plethysm gives a branching rule not available 369 by other methods:: 370 371 sage: G2 = WeylCharacterRing("G2", style="coroots") 372 sage: D7 = WeylCharacterRing("D7", style="coroots") 373 sage: ad = G2(0,1); ad.degree() 374 14 375 sage: ad.frobenius_schur_indicator() 376 1 377 378 This is the 14-dimensional adjoint representation of the exceptional 379 group `G_2`. Since the Frobenius-Schur indicator is 1, the 380 representation is orthogonal, and factors through `SO(14)`. Let us 381 branch the fundamental representations:: 382 383 sage: for r in D7.fundamental_weights(): 384 ... print D7(r).branch(G2, rule=branching_rule_from_plethysm(ad, "D7")) 385 ... 386 G2(0,1) 387 G2(0,1) + G2(3,0) 388 G2(0,0) + G2(2,0) + G2(3,0) + G2(0,2) + G2(4,0) 389 G2(0,1) + G2(2,0) + G2(1,1) + G2(0,2) + G2(2,1) + G2(4,0) + G2(3,1) 390 G2(1,0) + G2(0,1) + G2(1,1) + 2*G2(3,0) + 2*G2(2,1) + G2(1,2) + G2(3,1) + G2(5,0) + G2(0,3) 391 G2(1,1) 392 G2(1,1) 393 394 395 Miscellaneous other subgroups 396 ----------------------------- 397 398 Use ``rule="miscellaneous"`` for the branching rule ``B3 => G2``. This 399 may also be obtained using a plethysm but for convenience this one is 400 hand-coded. 401 402 403 Nuts and bolts of branching rules 404 --------------------------------- 405 406 Sage has many built-in branching rules, enough to handle most 407 cases. However, if you find a case where there is no existing rule, 408 you may code it by hand. Moreover, it may be useful to understand how 409 the built-in rules work. 410 411 Suppose you want to branch from a group `G` to a subgroup `H`. 412 Arrange the embedding so that a Cartan subalgebra `U` of `H` is 413 contained in a Cartan subalgebra `T` of `G`. There is thus a mapping 414 from the weight spaces `\hbox{Lie}(T)^* \to \hbox{Lie}(U)^*`. Two 415 embeddings will produce identical branching rules if they differ by an 416 element of the Weyl group of `H`. The *rule* is this map 417 `\hbox{Lie}(T)^*` ``= G.space()`` to 418 `\hbox{Lie}(U)^*` ``= H.space()``, which you may implement as a 419 function. 420 421 As an example, let us consider how to implement the branching rule 422 ``A3 -> C2``. Here ``H = C2 = Sp(4)`` embedded as a subgroup in 423 ``A3 = GL(4).`` The Cartan subalgebra `\hbox{Lie}(U)` consists of 424 diagonal matrices with eigenvalues ``u1, u2, -u2, -u1``. Then 425 ``C2.space()`` is the two dimensional vector spaces consisting of the 426 linear functionals ``u1`` and ``u2`` on ``U``. On the other hand 427 `Lie(T) = \mathbb{R}^4`. A convenient way to see the restriction is to 428 think of it as the adjoint of the map ``[u1,u2] -> [u1,u2,-u2,-u1]``, 429 that is, ``[x0,x1,x2,x3] -> [x0-x3,x1-x2].`` Hence we may encode the 430 rule:: 431 432 def brule(x): 433 return [x[0]-x[3], x[1]-x[2]] 434 435 or simply:: 436 437 brule = lambda x: [x[0]-x[3], x[1]-x[2]] 438 439 Let us check that this agrees with the built-in rule:: 440 441 sage: A3 = WeylCharacterRing(['A', 3]) 442 sage: C2 = WeylCharacterRing(['C', 2]) 443 sage: brule = lambda x: [x[0]-x[3], x[1]-x[2]] 444 sage: A3(1,1,0,0).branch(C2, rule=brule) 445 C2(0,0) + C2(1,1) 446 A3(1,1,0,0).branch(C2, rule="symmetric") 447 C2(0,0) + C2(1,1) 448 449 450 Automorphisms and triality 451 -------------------------- 452 453 The case where `G=H` can be treated as a special case of a branching 454 rule. In most cases (`A_r`, `D_r`, `E_6`) there is a unique 455 automorphism and the branching rule can be obtained using 456 ``rule="automorphic"``. The exception is `D_4`, where an additional 457 automorphism of order three can be obtained using 458 ``rule="triality"``. -
new file doc/en/thematic_tutorials/lie/crystals.rst
diff -r 5b338f2e484f -r fc7cc70533c4 doc/en/thematic_tutorials/lie/crystals.rst
- + 1 ================== 2 Classical Crystals 3 ================== 4 5 6 Tableaux and representations of `GL(n)` 7 --------------------------------------- 8 9 Let `\lambda` be a partition. The *Young diagram* of `\lambda` is the 10 array of boxes having `\lambda_i` boxes in the `i`-th row, left 11 adjusted. Thus if `\lambda = (3, 2)` the diagram is: 12 13 .. MATH:: 14 15 \def\lr#1#2#3{\multicolumn{1}{#1@{\hspace{.6ex}}c@{\hspace{.6ex}}#2}{\raisebox{-.3ex}{$#3$}}}\raisebox{-6ex} 16 {\begin{array}[b]{cccc}\cline{1-3} 17 \lr{|}{|}{\;} & \lr{|}{|}{\;} & \lr{|}{|}{\;} \\\cline{1-3} 18 \lr{|}{|}{} & \lr{|}{|}{} && \\\cline{1-2} 19 \end{array}} 20 21 A *semi-standard Young tableau* of shape `\lambda` is a filling of the 22 box by integers in which the rows are weakly decreasing and the 23 columns are strictly decreasing. Thus 24 25 .. MATH:: 26 27 \def\lr#1#2#3{\multicolumn{1}{#1@{\hspace{.6ex}}c@{\hspace{.6ex}}#2}{\raisebox{-.3ex}{$#3$}}}\raisebox{-6ex} 28 {\begin{array}[b]{cccc}\cline{1-3} 29 \lr{|}{|}{3} & \lr{|}{|}{2} & \lr{|}{|}{2} \\\cline{1-3} 30 \lr{|}{|}{2} & \lr{|}{|}{1} && \\\cline{1-2} 31 \end{array}} 32 33 is a semistandard Young tableau. Sage has a Tableau class, and you may 34 create this tableau as follows:: 35 36 sage: T = Tableau([[3,2,2], [2,1]]); T 37 [[3, 2, 2], [2, 1]] 38 39 A partition of length `\le r+1` is a dominant weight for 40 `GL(r+1, \mathbb{C})` according to the description of the ambient 41 space in :ref:`standard-realizations`. Therefore it corresponds to an 42 irreducible representation `\pi_\lambda = \pi_\lambda^{GL(r+1)}` of 43 `GL(r+1, \mathbb{C})`. 44 45 It is true that not every dominant weight `\lambda` is a partition, 46 since a dominant weight might have some values `\lambda_i` 47 negative. The dominant weight `\lambda` is a partition if and only if 48 the character of `\lambda` is a polynomial as a function on the space 49 `\hbox{Mat}_n(\mathbb{C})`. Thus for example `\det^{-1} = \pi_\lambda` 50 with `\lambda = (-1, \dots, -1)`, which is a dominant weight but not 51 a partition, and the character is not a polynomial function on 52 `\hbox{Mat}_n(\mathbb{C})`. 53 54 **Theorem** (Littlewood) If `\lambda` is a partition, then the number 55 of Semi-Standard Young Tableaux with shape `\lambda` and entries in 56 `{1,2,\dots,r+1}` is the dimension of `\pi_\lambda`. 57 58 For example, if `\lambda = (3,2)` and `r = 2`, then we find 15 59 tableaux with shape `\lambda` and entries in `\{1,2,3\}`: 60 61 .. MATH:: 62 63 \begin{array}{ccccc} 64 {\def\lr#1{\multicolumn{1}{|@{\hspace{.6ex}}c@{\hspace{.6ex}}|}{\raisebox{-.3ex}{$#1$}}}\raisebox{-.6ex} 65 {$\begin{array}[b]{ccc}\cline{1-1}\cline{2-2}\cline{3-3} 66 \lr{1} & \lr{1} & \lr{1} \\\cline{1-1}\cline{2-2}\cline{3-3} 67 \lr{2} & \lr{2} \\\cline{1-1}\cline{2-2} 68 \end{array}$}} 69 & 70 {\def\lr#1{\multicolumn{1}{|@{\hspace{.6ex}}c@{\hspace{.6ex}}|}{\raisebox{-.3ex}{$#1$}}}\raisebox{-.6ex} 71 {$\begin{array}[b]{ccc}\cline{1-1}\cline{2-2}\cline{3-3} 72 \lr{1} & \lr{1} & \lr{2} \\\cline{1-1}\cline{2-2}\cline{3-3} 73 \lr{2} & \lr{2} \\\cline{1-1}\cline{2-2} 74 \end{array}$}} 75 & 76 {\def\lr#1{\multicolumn{1}{|@{\hspace{.6ex}}c@{\hspace{.6ex}}|}{\raisebox{-.3ex}{$#1$}}}\raisebox{-.6ex} 77 {$\begin{array}[b]{ccc}\cline{1-1}\cline{2-2}\cline{3-3} 78 \lr{1} & \lr{1} & \lr{3} \\\cline{1-1}\cline{2-2}\cline{3-3} 79 \lr{2} & \lr{2} \\\cline{1-1}\cline{2-2} 80 \end{array}$}} 81 & 82 {\def\lr#1{\multicolumn{1}{|@{\hspace{.6ex}}c@{\hspace{.6ex}}|}{\raisebox{-.3ex}{$#1$}}}\raisebox{-.6ex} 83 {$\begin{array}[b]{ccc}\cline{1-1}\cline{2-2}\cline{3-3} 84 \lr{1} & \lr{1} & \lr{3} \\\cline{1-1}\cline{2-2}\cline{3-3} 85 \lr{2} & \lr{3} \\\cline{1-1}\cline{2-2} 86 \end{array}$}} 87 & 88 {\def\lr#1{\multicolumn{1}{|@{\hspace{.6ex}}c@{\hspace{.6ex}}|}{\raisebox{-.3ex}{$#1$}}}\raisebox{-.6ex} 89 {$\begin{array}[b]{ccc}\cline{1-1}\cline{2-2}\cline{3-3} 90 \lr{1} & \lr{2} & \lr{3} \\\cline{1-1}\cline{2-2}\cline{3-3} 91 \lr{2} & \lr{3} \\\cline{1-1}\cline{2-2} 92 \end{array}$}}\\\\ 93 {\def\lr#1{\multicolumn{1}{|@{\hspace{.6ex}}c@{\hspace{.6ex}}|}{\raisebox{-.3ex}{$#1$}}}\raisebox{-.6ex} 94 {$\begin{array}[b]{ccc}\cline{1-1}\cline{2-2}\cline{3-3} 95 \lr{1} & \lr{1} & \lr{3} \\\cline{1-1}\cline{2-2}\cline{3-3} 96 \lr{3} & \lr{3} \\\cline{1-1}\cline{2-2} 97 \end{array}$}} 98 & 99 {\def\lr#1{\multicolumn{1}{|@{\hspace{.6ex}}c@{\hspace{.6ex}}|}{\raisebox{-.3ex}{$#1$}}}\raisebox{-.6ex} 100 {$\begin{array}[b]{ccc}\cline{1-1}\cline{2-2}\cline{3-3} 101 \lr{1} & \lr{2} & \lr{3} \\\cline{1-1}\cline{2-2}\cline{3-3} 102 \lr{3} & \lr{3} \\\cline{1-1}\cline{2-2} 103 \end{array}$}} 104 & 105 {\def\lr#1{\multicolumn{1}{|@{\hspace{.6ex}}c@{\hspace{.6ex}}|}{\raisebox{-.3ex}{$#1$}}}\raisebox{-.6ex} 106 {$\begin{array}[b]{ccc}\cline{1-1}\cline{2-2}\cline{3-3} 107 \lr{2} & \lr{2} & \lr{3} \\\cline{1-1}\cline{2-2}\cline{3-3} 108 \lr{3} & \lr{3} \\\cline{1-1}\cline{2-2} 109 \end{array}$}} 110 & 111 {\def\lr#1{\multicolumn{1}{|@{\hspace{.6ex}}c@{\hspace{.6ex}}|}{\raisebox{-.3ex}{$#1$}}}\raisebox{-.6ex} 112 {$\begin{array}[b]{ccc}\cline{1-1}\cline{2-2}\cline{3-3} 113 \lr{1} & \lr{1} & \lr{1} \\\cline{1-1}\cline{2-2}\cline{3-3} 114 \lr{2} & \lr{3} \\\cline{1-1}\cline{2-2} 115 \end{array}$}} 116 & 117 {\def\lr#1{\multicolumn{1}{|@{\hspace{.6ex}}c@{\hspace{.6ex}}|}{\raisebox{-.3ex}{$#1$}}}\raisebox{-.6ex} 118 {$\begin{array}[b]{ccc}\cline{1-1}\cline{2-2}\cline{3-3} 119 \lr{1} & \lr{1} & \lr{2} \\\cline{1-1}\cline{2-2}\cline{3-3} 120 \lr{2} & \lr{3} \\\cline{1-1}\cline{2-2} 121 \end{array}$}}\\\\ 122 {\def\lr#1{\multicolumn{1}{|@{\hspace{.6ex}}c@{\hspace{.6ex}}|}{\raisebox{-.3ex}{$#1$}}}\raisebox{-.6ex} 123 {$\begin{array}[b]{ccc}\cline{1-1}\cline{2-2}\cline{3-3} 124 \lr{1} & \lr{2} & \lr{2} \\\cline{1-1}\cline{2-2}\cline{3-3} 125 \lr{2} & \lr{3} \\\cline{1-1}\cline{2-2} 126 \end{array}$}} 127 & 128 {\def\lr#1{\multicolumn{1}{|@{\hspace{.6ex}}c@{\hspace{.6ex}}|}{\raisebox{-.3ex}{$#1$}}}\raisebox{-.6ex} 129 {$\begin{array}[b]{ccc}\cline{1-1}\cline{2-2}\cline{3-3} 130 \lr{1} & \lr{1} & \lr{1} \\\cline{1-1}\cline{2-2}\cline{3-3} 131 \lr{3} & \lr{3} \\\cline{1-1}\cline{2-2} 132 \end{array}$}} 133 & 134 {\def\lr#1{\multicolumn{1}{|@{\hspace{.6ex}}c@{\hspace{.6ex}}|}{\raisebox{-.3ex}{$#1$}}}\raisebox{-.6ex} 135 {$\begin{array}[b]{ccc}\cline{1-1}\cline{2-2}\cline{3-3} 136 \lr{1} & \lr{1} & \lr{2} \\\cline{1-1}\cline{2-2}\cline{3-3} 137 \lr{3} & \lr{3} \\\cline{1-1}\cline{2-2} 138 \end{array}$}} 139 & 140 {\def\lr#1{\multicolumn{1}{|@{\hspace{.6ex}}c@{\hspace{.6ex}}|}{\raisebox{-.3ex}{$#1$}}}\raisebox{-.6ex} 141 {$\begin{array}[b]{ccc}\cline{1-1}\cline{2-2}\cline{3-3} 142 \lr{1} & \lr{2} & \lr{2} \\\cline{1-1}\cline{2-2}\cline{3-3} 143 \lr{3} & \lr{3} \\\cline{1-1}\cline{2-2} 144 \end{array}$}} 145 & 146 {\def\lr#1{\multicolumn{1}{|@{\hspace{.6ex}}c@{\hspace{.6ex}}|}{\raisebox{-.3ex}{$#1$}}}\raisebox{-.6ex} 147 {$\begin{array}[b]{ccc}\cline{1-1}\cline{2-2}\cline{3-3} 148 \lr{2} & \lr{2} & \lr{2} \\\cline{1-1}\cline{2-2}\cline{3-3} 149 \lr{3} & \lr{3} \\\cline{1-1}\cline{2-2} 150 \end{array}$}} 151 \end{array} 152 153 This is consistent with the theorem since the dimension of the 154 irreducible representation of `GL(3)` with highest weight `(3,2,0)` 155 has dimension 15:: 156 157 sage: A2 = WeylCharacterRing("A2") 158 sage: A2(3,2,0).degree() 159 15 160 161 In fact we may obtain the character of the representation from the set 162 of tableaux. Indeed, one of the definitions of the Schur polynomial 163 (due to Littlewood) is the following combinatorial one. If `T` is a 164 tableaux, define the *weight* of `T` to be 165 `\hbox{wt}(T) = (k_1,\dots,k_n)` where `k_i` is the number of `i`'s 166 in the tableaux. Then the multiplicity of `\mu` in the character 167 `\chi_\lambda` is the number of tableaux of weight `\lambda`. Thus if 168 `\mathbf{z} = (z_1,\dots,z_n)`, we have 169 170 .. MATH:: 171 172 \chi_\lambda(\mathbf{z}) = \sum_T \mathbf{z}^{\hbox{wt}(T)} 173 174 where the sum is over all semi-standard Young tableaux of shape 175 `\lambda` that have entries in `{1,2,\dots,r+1}`. 176 177 178 Tableaux and representations of `S_k` 179 ------------------------------------- 180 181 Representations of the symmetric group `S_k` are parametrized by 182 partitions `\lambda` of `k`. The parametrization may be characterized 183 as follows. Let `n` be any integer `\ge k`. Then both 184 `GL(n,\mathbb{C})` and `S_k` act on `\otimes^k V` where 185 `V = \mathbb{C}^n`. Indeed, `GL(n)` acts on each `V` and `S_k` 186 permutes them. Then if `\pi_\lambda^{GL(n)}` is the representation of 187 `GL(n,\mathbb{C})` with highest weight vector `\lambda` and 188 `\pi_\lambda^{S_k}` is the irreducible representation of `S_k` 189 parametrized by `\lambda` then 190 191 .. MATH:: 192 193 \otimes^k V 194 \cong 195 \bigoplus_{\lambda\vdash k}\pi^{GL(n)}_\lambda\otimes\pi^{S_k}_\lambda 196 197 as bimodules for the two groups. This is *Frobenius-Schur duality* and 198 it serves to characterize the parametrization of the irreducible 199 representations of `S_k` by partitions of `k`. 200 201 Let us say that a Tableaux `T` of shape `\lambda\vdash k` is 202 *standard* if `T` contains each entry `1,2,\dots,k` exactly once. 203 204 **Theorem** (Young, 1927) The degree of `\pi_\lambda` is the number of 205 standard tableaux of shape `\lambda`. 206 207 208 The Robinson-Schensted-Knuth correspondence 209 ------------------------------------------- 210 211 References: 212 213 - [Knuth1998]_, section "Tableaux and Involutions". 214 215 - [Knuth1970]_ 216 217 - [Fulton1997]_ 218 219 - [Stanley1999]_ 220 221 The Robinson-Schensted-Knuth correspondence gives bijections between 222 pairs of tableaux of various types and combinatorial objects of 223 different types. We will not review the correspondence in detail here, 224 but see the references. We note that Schensted insertion is 225 implemented as the method ``schensted_insertion`` of Tableau class in 226 Sage. 227 228 Thus we have the following bijections: 229 230 - Pairs of standard tableaux of the same shape `\lambda` as `\lambda` 231 runs through the partitions of `k` are in bijection with the `k!` 232 elements of `S_k`. 233 234 - Pairs of tableaux `T_1` and `T_2` of shape `\lambda` where `\lambda` 235 runs through the partitions of `k` such that `T_1` is a standard 236 tableau and `T_2` is a semistandard tableau in `1,2,\dots,n` are in 237 bijection with the `n^k` words of length `k` in `1,2,\dots,n`. 238 239 - Pairs of tableaux `T_1` and `T_2` of the same shape `\lambda` but 240 arbitrary size in `1,2,3,\dots,n` are in bijection with `n \times n` 241 positive integer matrices. 242 243 - Pairs of tableaux `T_1` and `T_2` of conjugate shapes `\lambda` and 244 `\lambda'` are in bijection with `n \times n` matrices with entries 245 `0` or `1`. 246 247 248 Analogies between representation theory and combinatorics 249 --------------------------------------------------------- 250 251 The three bijections cited above have the following analogs in 252 representation theory. 253 254 - The group algebra `\mathbb{C}` is an `S_k \times S_k` bimodule with 255 of dimension `k!`. It decomposes as a direct sum of 256 `\pi_\lambda^{S_k} \otimes \pi_\lambda^{S_k}`. 257 258 - This is analogous to Frobenius-Schur duality, which decomposes the 259 `n^k`-dimensional vector space `V^k` where `V = \mathbb{C}` into the 260 direct sum of `\pi_\lambda^{GL(n)} \otimes \pi_\lambda^{S_k}` as a 261 bimodule, where `\lambda` runs through partitions of `k`. 262 263 - This is analogous to the decomposition of the ring of polynomial 264 functions on `\hbox{Mat}(n, \mathbb{C})` on which 265 `GL(n, \mathbb{C}) \times GL(n, \mathbb{C})` acts by 266 `(g_1, g_2)f(X) = f({^t g_1}X g_2)`. The polynomial ring decomposes 267 into the direct sum of 268 `\pi^{GL(n)}_\lambda \otimes \pi^{GL(n)}_\lambda`. Taking traces 269 gives the Cauchy identity. 270 271 - This is analogous to the decomposition of the exterior algebra over 272 `\hbox{Mat}(n, \mathbb{C})`. Taking traces gives the dual Cauchy 273 identity. 274 275 276 Interpolating between representation theory and combinatorics 277 ------------------------------------------------------------- 278 279 The theory of quantum groups interpolates between the representation 280 theoretic picture and the combinatorial picture, and thereby explains 281 these analogies. The representation `\pi_\lambda^{GL(n)}` is 282 reinterpreted as a module for the quantized enveloping algebra 283 `U_q(\mathfrak{gl}_n(\mathbb{C}))`, and the representation 284 `\pi_\lambda^{S_k}` is reinterpreted as a module for the Iwahori 285 Hecke algebra. Then Frobenius-Schur duality persists. See 286 [Jimbo1986]_. When `q \to 1`, we recover the representation 287 story. When `q \to 0`, we recover the combinatorial story. 288 289 290 Kashiwara crystals 291 ------------------ 292 293 References: 294 295 - [Kashiwara1995]_ 296 297 - [KashiwaraNakashima1994]_ 298 299 - [HongKang2002]_ 300 301 Kashiwara considered the highest weight modules of quantized 302 enveloping algebras `U_q(\mathfrak{g})` in the limit when 303 `q \to 0`. The enveloping algebra cannot be defined when `q = 0`, but 304 a limiting structure can still be detected. This is the 305 *crystal basis* of the module. 306 307 Kashiwara's crystal bases have a combinatorial structure that sheds 308 light even on purely combinatorial constructions on tableaux that 309 predated quantum groups. It gives a good generalization to other 310 Cartan types. 311 312 We will not make the most general definition of a crystal. See the 313 references for a more general definition. Let `\Lambda` be the weight 314 lattice of a classical Cartan type. 315 316 We now define a *crystal* of type `\Phi`. Let `\mathcal{B}` be a set, 317 and let `0 \notin \mathcal{B}` be an auxiliary element. For each index 318 `1 \le i \le r` we assume there given maps 319 `e_i, f_i : \mathcal{B} \longrightarrow \mathcal{B} \cup \{0\}`, maps 320 `\varepsilon_i, \phi_i : \mathcal{B} \longrightarrow \mathbb{Z}` and a 321 map `\hbox{wt} : \mathcal{B} \longrightarrow \Lambda` satisfying 322 certain assumptions, which we now describe. It is assumed that if 323 `x, y \in \mathcal{B}` then `e_i (x) = y` if and only if 324 `f_i (y) = x`. In this case, it is assumed that 325 326 .. MATH:: 327 328 \hbox{wt} (y) = \hbox{wt} (x) + \alpha_i, 329 \qquad 330 \varepsilon_i (x) = \varepsilon_i (y) + 1, 331 \qquad \phi_i (x) = \phi_i (y) - 1. 332 333 Moreover, we assume that 334 335 .. MATH:: 336 337 \phi_i (x) - \varepsilon_i (x) 338 = 339 \left\langle \hbox{wt} (x), \alpha^{\vee}_i \right\rangle 340 341 for all `x \in \mathcal{B}`. 342 343 **Assumption** (Regularity) We will assume that `\varepsilon_i(v)` is 344 the number of times that `e_i` may applied to `v`, and that 345 `\phi_i(v)` is the number of times that `f_i` may be applied. That is, 346 `\phi_i (x) = \max \{k|f_i^k x \neq 0\}` and 347 `\varepsilon_i (x) = \max \{k|e_i^k (x) \neq 0\}`. 348 349 This regularity assumption is not made by Kashiwara, but it is 350 satisfied by the crystals that we are concerned with here. Kashiwara 351 also allows `\varepsilon_i` and `\phi_i` to take the value `-\infty`. 352 353 Given the crystal `\mathcal{B}`, the *character* `\chi_{\mathcal{B}}` is: 354 355 .. MATH:: 356 357 \sum_{v\in\mathcal{B}} {\mathbf{z}}^{wt(v)}. 358 359 Given any highest weight `\lambda`, constructions of Kashiwara and 360 Nakashima, Littelmann and others produce a crystal 361 `\chi_{\mathcal{B}_\lambda}` such that 362 `\chi_{\mathcal{B}_\lambda} = \chi_\lambda`, where `\chi_\lambda` is 363 the irreducible character with highest weight `\lambda`, as in 364 :ref:`representations`. 365 366 The crystal `\mathcal{B}_\lambda` is not uniquely characterized by the 367 properties that we have stated so far. For Cartan types A, D, E it may 368 be characterized by these properties together with certain other 369 *Stembridge axioms*. We will take it for granted that there is a 370 unique "correct" crystal `\mathcal{B}_\lambda` and discuss how these 371 are constructed in Sage. 372 373 374 Installing dot2tex 375 ------------------ 376 377 Before giving examples of crystals, we digress to help you install 378 dot2tex, which you will need in order to make latex images of 379 crystals. 380 381 You may download the following file: 382 383 http://sage.math.washington.edu/home/nthiery/dot2tex-2.8.7.spkg 384 385 Then run:: 386 387 sage -i dot2tex-2.8.7.spkg 388 389 to install the package. 390 391 392 Crystals of tableaux in Sage 393 ---------------------------- 394 395 For type `A_r`, Kashiwara and Nakashima put a crystal structure on the 396 set of tableaux with shape `\lambda` in `1,2,\dots,r+1`, and this is a 397 realization of `\mathcal{B}_\lambda`. Moreover, this construction 398 extends to other Cartan types, as we will explain. At the moment, we 399 will consider how to draw pictures of these crystals. 400 401 Once you have dot2tex installed, you may make images pictures of crystals 402 as follows:: 403 404 sage: C = CrystalOfTableaux("A2", shape=[2,1]) 405 sage: C.latex_file("/tmp/a2rho.tex") 406 407 Here `\lambda = (2,1)=(2,1,0)`. The crystal ``C`` is 408 `\mathcal{B}_{\lambda}`. The character `\chi_\lambda` will therefore 409 be the eight-dimensional irreducible character with this highest 410 weight. The method ``latex_file`` produces 411 412 .. image:: ../static/a2rho.png 413 414 As you can see, the elements of this crystal are exactly the eight 415 tableaux of shape `\lambda` with entries in `\{1,2,3\}`. The 416 convention is that if `x,y \in \mathcal{B}` and `f_i(x) = y`, or 417 equivalently `e_i(y) = x`, then we draw an arrow from `x \to y`. Thus 418 the highest weight tableau is the one with no incoming arrows. Indeed, 419 this is: 420 421 .. MATH:: 422 423 {\def\lr#1{\multicolumn{1}{|@{\hspace{.6ex}}c@{\hspace{.6ex}}|}{\raisebox{-.3ex}{$#1$}}}\raisebox{-.6ex} 424 {$\begin{array}[b]{ccc}\cline{1-1}\cline{2-2} 425 \lr{1} & \lr{1} \\\cline{1-1}\cline{2-2} 426 \lr{2} \\\cline{1-1} 427 \end{array}$}} 428 429 We recall that the weight of the tableau is `(k_1,k_2,k_3)` where 430 `k_i` is the number of `i`'s in the tableau, so this tableau has 431 weight `(2,1,0)`, which indeed equals `\lambda`. 432 433 Once the crystal is created, you have access to the ambient space and 434 its methods through the method ``weight_lattice_realization()``:: 435 436 sage: L = C.weight_lattice_realization(); L 437 Ambient space of the Root system of type ['A', 2] 438 sage: L.fundamental_weights() 439 Finite family {1: (1, 0, 0), 2: (1, 1, 0)} 440 441 The highest weight vector is available as follows:: 442 443 sage: v = C.highest_weight_vector(); v 444 [[1, 1], [2]] 445 446 or more simply:: 447 448 sage: C[0] 449 [[1, 1], [2]] 450 451 Now we may apply the operators `e_i` and `f_i` to move around in the 452 crystal:: 453 454 sage: v.f(1) 455 [[1, 2], [2]] 456 sage: v.f(1).f(1) 457 sage: v.f(1).f(1) == None 458 True 459 sage: v.f(1).f(2) 460 [[1, 3], [2]] 461 sage: v.f(1).f(2).f(2) 462 [[1, 3], [3]] 463 sage: v.f(1).f(2).f(2).f(1) 464 [[2, 3], [3]] 465 sage: v.f(1).f(2).f(2).f(1) == v.f(2).f(1).f(1).f(2) 466 True 467 468 You can construct the character if you first make a Weyl character 469 ring:: 470 471 sage: A2 = WeylCharacterRing("A2") 472 sage: C.character(A2) 473 A2(2,1,0) 474 475 476 Crystals of letters 477 ------------------- 478 479 For each of the classical Cartan types there is a *standard crystal* 480 `\mathcal{B}_{\hbox{standard}}` from which other crystals can be built 481 up by taking tensor products and extracting constituent irreducible 482 crystals. This procedure is sufficient for Cartan types `A_r` and 483 `C_r`. For types `B_r` and `D_r` the standard crystal must be 484 supplemented with a *spin crystal*. 485 486 .. image:: ../static/standard1.png 487 488 The crystal of letters is a special case of the crystal of tableaux 489 in the sense that `\mathcal{B}_{\hbox{standard}}` is isomorphic to 490 the crystal of tableaux whose highest weight `\lambda` is the highest 491 weight vector of the standard representation. Thus compare:: 492 493 sage: CrystalOfLetters("A3") 494 The crystal of letters for type ['A', 3] 495 sage: CrystalOfTableaux("A3", shape=[1]) 496 The crystal of tableaux of type ['A', 3] and shape(s) [[1]] 497 498 These two crystals are different in implementation, but they are 499 isomorphic, and in fact the second crystal is constructed from the 500 first. Crystals of letters have a special role in the theory since 501 they are particularly simple, yet as Kashiwara and Nakashima showed, 502 the crystals of tableaux can be created from them. We will review how 503 this works. 504 505 506 Tensor products of crystals 507 --------------------------- 508 509 Kashiwara defined the tensor product of crystals in a purely 510 combinatorial way. The beauty of this construction is that it exactly 511 parallels the tensor product of crystals of representations. That is, 512 if `\lambda` and `\mu` are dominant weights, then 513 `\mathcal{B}_\lambda \otimes \mathcal{B}_\mu` is a (usually 514 disconnected) crystal which may contain multiple copies of 515 `\mathcal{B}_\nu` (for another dominant weight `\nu`) but the number 516 of copies of `\mathcal{B}_\nu` is exactly the multiplicity of 517 `\chi_\nu` in `\chi_\lambda\chi_\mu`. 518 519 We will describe two conventions for the tensor product of 520 crystals. These conventions would have to be modified slightly without 521 the regularity assumption. 522 523 524 Kashiwara's definition 525 ^^^^^^^^^^^^^^^^^^^^^^ 526 527 As a set, the tensor product `\mathcal{B} \otimes \mathcal{C}` of 528 crystals `\mathcal{B}` and `\mathcal{C}` is the Cartesian product, but 529 we denote the ordered pair `(x, y)` with `x \in \mathcal{B}` and 530 `y \in \mathcal{C}` by `x \otimes y`. We define 531 `\hbox{wt} (x \otimes y) = \hbox{wt} (x) + \hbox{wt}(y)`. We define 532 533 .. MATH:: 534 535 f_i (x \otimes y) 536 = 537 \begin{cases} 538 f_i (x) \otimes y & \text{if $\phi_i (x) > \varepsilon_i (y)$},\\ 539 x \otimes f_i (y) & \text{if $\phi_i (x) \le \varepsilon_i (y)$}, 540 \end{cases} 541 542 and 543 544 .. MATH:: 545 546 e_i (x \otimes y) 547 = 548 \begin{cases} 549 e_i (x) \otimes y & \text{if $\phi_i (x) \ge \varepsilon_i (y)$},\\ 550 x \otimes e_i (y) & \text{if $\phi_i (x) < \varepsilon_i (y)$}. 551 \end{cases} 552 553 It is understood that `x \otimes 0 = 0 \otimes x = 0`. We also define: 554 555 .. MATH:: 556 557 \phi_i (x \otimes y) 558 = 559 \max (\phi_i (y), \phi_i (x) + \phi_i (y) - \varepsilon_i (y)), 560 561 .. MATH:: 562 563 \varepsilon_i (x \otimes y) 564 = 565 \max (\varepsilon_i (x), \varepsilon_i (x) + \varepsilon_i (y) - \phi_i (x)) . 566 567 568 Alternative definition 569 ^^^^^^^^^^^^^^^^^^^^^^ 570 571 As a set, the tensor product `\mathcal{B} \otimes \mathcal{C}` of 572 crystals `\mathcal{B}` and `\mathcal{C}` is the Cartesian product, but 573 we denote the ordered pair `(y, x)` with `y \in \mathcal{B}` and 574 `x \in \mathcal{C}` by `x \otimes y`. We define 575 `\hbox{wt} (x \otimes y) = \hbox{wt} (y) + \hbox{wt}(x)`. We define 576 577 .. MATH:: 578 579 f_i (x \otimes y) 580 = 581 \begin{cases} 582 f_i (x) \otimes y & \text{if $\phi_i (y) \le \varepsilon_i (x)$},\\ 583 x \otimes f_i (y) & \text{if $\phi_i (y) > \varepsilon_i (x)$}, 584 \end{cases} 585 586 and 587 588 .. MATH:: 589 590 e_i (x \otimes y) 591 = 592 \begin{cases} 593 e_i (x) \otimes y & \text{if $\phi_i (y) < \varepsilon_i (x)$},\\ 594 x \otimes e_i (y) & \text{if $\phi_i (y) \ge \varepsilon_i (x)$}. 595 \end{cases} 596 597 It is understood that `y \otimes 0 = 0 \otimes y = 0`. We also define 598 599 .. MATH:: 600 601 \phi_i (x \otimes y) 602 = 603 \max (\phi_i (x), \phi_i (y) + \phi_i (x) - \varepsilon_i (x)), 604 605 .. MATH:: 606 607 \varepsilon_i (x \otimes y) 608 = 609 \max (\varepsilon_i (y), \varepsilon_i (y) + \varepsilon_i (x) - \phi_i (y)). 610 611 The tensor product is associative: 612 `(x \otimes y) \otimes z \mapsto x \otimes(y \otimes z)` is an 613 isomorphism 614 `(\mathcal{B} \otimes \mathcal{C}) \otimes \mathcal{D} \to \mathcal{B} \otimes (\mathcal{C} \otimes \mathcal{D})`, 615 and so we may consider tensor products of arbitrary numbers of crystals. 616 617 618 The relationship between the two definitions 619 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 620 The relationship between the two definitions is simply that the 621 Kashiwara tensor product `\mathcal{B} \otimes \mathcal{C}` is the 622 alternate tensor product `\mathcal{C} \otimes \mathcal{B}` in reverse 623 order. Sage uses the alternative tensor product. Even though the 624 tensor product construction is *a priori* asymmetrical, both 625 constructions produce isomorphic crystals, and in particular Sage's 626 crystals of tableaux are identical to Kashiwara's. 627 628 629 Tensor products of crystals in Sage 630 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 631 You may construct the tensor product of several crystals in Sage using 632 ``TensorProductOfCrystals``:: 633 634 sage: C = CrystalOfLetters("A2") 635 sage: T = TensorProductOfCrystals(C,C,C); T 636 Full tensor product of the crystals [The crystal of letters for type ['A', 2], 637 The crystal of letters for type ['A', 2], The crystal of letters for type ['A', 2]] 638 sage: T.cardinality() 639 27 640 sage: T.highest_weight_vectors() 641 [[1, 1, 1], [1, 2, 1], [2, 1, 1], [3, 2, 1]] 642 643 This crystal has four highest weight vectors. We may understand this 644 as follows:: 645 646 sage: A2 = WeylCharacterRing("A2") 647 sage: chi_C = C.character(A2) 648 sage: chi_T = T.character(A2) 649 sage: chi_C 650 A2(1,0,0) 651 sage: chi_T 652 A2(1,1,1) + 2*A2(2,1,0) + A2(3,0,0) 653 sage: chi_T == chi_C^3 654 True 655 656 As expected, the character of ``T`` is the cube of the character of 657 ``C``, and representations with highest weight `(1,1,1)`, `(3,0,0)` 658 and `(2,1,0)`. This decomposition is predicted by Frobenius-Schur 659 duality: the multiplicity of `\pi_\lambda^{GL(n)}` in 660 `\otimes^3\mathbb{C}^3` is the degree of `\pi_\lambda^{S_3}`. 661 662 It is useful to be able to select one irreducible constitutent of 663 ``T``. If we only want one of the irreducible constituents of ``T``, 664 we can specify a list of highest weight vectors by the option 665 ``generators``. If the list has only one element, then we get an 666 irreducible crystal. We can make four such crystals:: 667 668 sage: [T1,T2,T3,T4] = \ 669 [TensorProductOfCrystals(C,C,C,generators=[v]) for v in T.highest_weight_vectors()] 670 sage: [B.cardinality() for B in [T1,T2,T3,T4]] 671 [10, 8, 8, 1] 672 sage: [B.character(A2) for B in [T1,T2,T3,T4]] 673 [A2(3,0,0), A2(2,1,0), A2(2,1,0), A2(1,1,1)] 674 675 We see that two of these crystals are isomorphic, with character 676 ``A2(2,1,0)``. Try:: 677 678 sage: T1.plot(), T2.plot(), T3.plot(), T4.plot() 679 680 Elements of ``TensorProductOfCrystals(A,B,C, ...)`` are represented by 681 sequences ``[a,b,c, ...]`` with ``a`` in ``A``, ``b`` in ``B``, etc. 682 This of course represents `a \otimes b \otimes c \otimes \cdots`. 683 684 685 Crystals of tableaux as tensor products of crystals 686 --------------------------------------------------- 687 688 Sage implements the ``CrystalOfTableaux`` as a subcrystal of a tensor 689 product of the CrystalOfLetters. You can see how its done as follows:: 690 691 sage: T = CrystalOfTableaux("A3", shape=[3,1]) 692 sage: v = T.highest_weight_vector().f(1).f(2).f(3).f(1).f(2); v 693 [[1, 3, 4], [2]] 694 sage: v._list 695 [2, 1, 3, 4] 696 697 We've looked at the internal representation of `v`, where it is 698 represented as an element of the fourth tensor power of the 699 ``CrystalOfLetters``. We see that the tableau: 700 701 .. MATH:: 702 703 {\def\lr#1{\multicolumn{1}{|@{\hspace{.6ex}}c@{\hspace{.6ex}}|}{\raisebox{-.3ex}{$#1$}}}\raisebox{-.6ex} 704 {$\begin{array}[b]{ccc}\cline{1-1}\cline{2-2}\cline{3-3} 705 \lr{1} & \lr{3} & \lr{4} \\\cline{1-1}\cline{2-2}\cline{3-3} 706 \lr{2} \\\cline{1-1} 707 \end{array}$}} 708 709 is interpreted as the tensor: 710 711 .. MATH:: 712 713 \begin{array}{|l|}\hline 714 2 \\ \hline 715 \end{array} 716 \otimes 717 \begin{array}{|l|} \hline 718 1 \\ \hline 719 \end{array} 720 \otimes 721 \begin{array}{|l|} \hline 722 4 \\ \hline 723 \end{array} 724 \otimes 725 \begin{array}{|l|} \hline 726 3 \\ \hline 727 \end{array} 728 729 The elements of the tableau are read from bottom to top and from left 730 to right. This is the *inverse middle-Eastern reading* of the 731 tableau. See Hong and Kang, *loc. cit.* for discussion of the readings 732 of a tableau. 733 734 735 Spin crystals 736 ------------- 737 738 For the Cartan types `A_r`, `C_r` or `G_2`, ``CrystalOfTableaux`` are 739 capable of making any finite crystal. (For type `A_r` it is necessary 740 that the highest weight `\lambda` be a partition.) 741 742 For Cartan types `B_r` and `D_r`, ``CrystalOfTableaux`` fail to make 743 `\mathcal{B}_\lambda` if `\lambda` is half-integral. For type `B_2` 744 you can do this:: 745 746 sage: B = FastCrystal(['B',2], shape=[3/2,1/2]); B 747 The fast crystal for B2 with shape [3/2,1/2] 748 sage: v = B.highest_weight_vector(); v.weight() 749 (3/2, 1/2) 750 751 However FastCrystals are only available for rank two Cartan types. We 752 therefore have to do something else to create crystals of 753 half-integral weight. 754 755 For types `B_r` and `D_r` the solution to this problem involves the 756 use of *spin crystals*. 757 758 759 Type B spin crystal 760 ^^^^^^^^^^^^^^^^^^^ 761 The spin crystal has highest weight `(1/2,\dots,1/2)`. This is the 762 last fundamental weight. The irreducible representation with this 763 weight is the spin representation of degree `2^r`. Its crystal is 764 hand-coded in Sage:: 765 766 sage: Cspin = CrystalOfSpins("B3"); Cspin 767 The crystal of spins for type ['B', 3] 768 sage: Cspin.cardinality() 769 8 770 771 We can make use of this to construct an arbitrary crystal with highest 772 weight `\lambda`, where `\lambda` is a half-integral weight. For 773 example, suppose that `\lambda = (3/2, 3/2, 1/2)`. The corresponding 774 irreducible character will have degree 112:: 775 776 sage: B3 = WeylCharacterRing("B3") 777 sage: B3(3/2,3/2,1/2).degree() 778 112 779 780 So `\mathcal{B}_\lambda` will have 112 elements. We can find it as a 781 subcrystal of ``Cspin`` `\otimes \mathcal{B}_\mu`, where 782 `\mu = \lambda-(1/2,1/2,1/2) = (1,1,0)`:: 783 784 sage: B3(1,1,0)*B3(1/2,1/2,1/2) 785 B3(1/2,1/2,1/2) + B3(3/2,1/2,1/2) + B3(3/2,3/2,1/2) 786 787 We see that just taking the tensor product of these two crystals will 788 produce a reducible crystal with three constitutents, and we want to 789 extract the one we want. We do that as follows:: 790 791 sage: C1 = CrystalOfTableaux("B3", shape=[1,1]) 792 sage: C = TensorProductOfCrystals(C1, Cspin, generators=[[C1[0],Cspin[0]]]) 793 sage: C.cardinality() 794 112 795 796 This is the desired crystal. 797 798 799 Type D spin crystals 800 ^^^^^^^^^^^^^^^^^^^^ 801 A similar situation pertains for type `D_r`, but now there are two 802 spin crystals, both of degree `2^{r-1}`. These are hand-coded in sage:: 803 804 sage: SpinPlus = CrystalOfSpinsPlus("D4") 805 sage: SpinMinus = CrystalOfSpinsMinus("D4") 806 sage: SpinPlus[0].weight() 807 (1/2, 1/2, 1/2, 1/2) 808 sage: SpinMinus[0].weight() 809 (1/2, 1/2, 1/2, -1/2) 810 sage: [C.cardinality() for C in [SpinPlus,SpinMinus]] 811 [8, 8] 812 813 You can use them similarly to the type B crystal of spins in order to 814 construct any crystal of half-integral weight. 815 816 817 Levi branching rules for crystals 818 --------------------------------- 819 820 Let `G` be a Lie group and `H` a Levi subgroup. We have already seen 821 that the Dynkin diagram of `H` is obtained from that of `G` by erasing 822 one or more nodes. 823 824 If `\mathcal{C}` is a crystal for `G`, then we may obtain the 825 corresponding crystal for `H` by a similar process. For example if the 826 Dynkin diagram for `H` is obtained from the Dynkin diagram for `G` by 827 erasing the `i`-th node, then if we erase all the edges in the crystal 828 `\mathcal{C}` that are labeled with `i`, we obtain a crystal for `H`. 829 830 831 Affine crystals 832 --------------- 833 834 Sage contains support for affine crystals. These lie outside the scope 835 of this document. -
new file doc/en/thematic_tutorials/lie/introduction.rst
diff -r 5b338f2e484f -r fc7cc70533c4 doc/en/thematic_tutorials/lie/introduction.rst
- + 1 -------------------------- 2 The Scope of this Document 3 -------------------------- 4 5 6 Lie groups and algebras 7 ----------------------- 8 9 Sage can be used to do standard computations for Lie groups and Lie 10 algebras. The following categories of representations are equivalent: 11 12 - Complex representations of a compact, semisimple simply connected 13 Lie group `G`. 14 15 - Complex representations of its Lie algebra `\mathfrak{g}`. This is a 16 real Lie algebra, so representations are not required to be complex 17 linear maps. 18 19 - Complex representations of its complexified Lie algebra 20 `\mathfrak{g}_{\mathbb{C}} = \mathbb{C} \otimes \mathfrak{g}`. This 21 is a complex Lie algebra and representations are required to be 22 complex linear transformations. 23 24 - The complex analytic representations of the semisimple 25 simply-connected complex analytic group `G_{\mathbb{C}}` having 26 `\mathfrak{g}_{\mathbb{C}}` as its Lie algebra. 27 28 - Modules of the universal enveloping algebra 29 `U(\mathfrak{g}_{\mathbb{C}})`. 30 31 - Modules of the quantized enveloping algebra 32 `U_q(\mathfrak{g}_{\mathbb{C}})`. 33 34 For example, we could take `G = SU(n)`, 35 `\mathfrak{g} = \mathfrak{sl}(n, \mathbb{R})`, 36 `\mathfrak{g}_{\mathbb{C}} = \mathfrak{sl}(n, \mathbb{C})` and 37 `G = SL(n, \mathbb{C})`. Because these categories are the same, their 38 representations may be studied simultaneously. The above equivalences 39 may be expanded to include reductive groups like `U(n)` and `GL(n)` 40 with a bit of care. 41 42 Here are some typical problems that can be solved using Sage: 43 44 - Decompose a module in any one of these categories into irreducibles. 45 46 - Compute the Frobenius-Schur indicator of an irreducible module. 47 48 - Compute the tensor product of two modules. 49 50 - If `H` is a subgroup of `G`, study the restriction of modules for 51 `G` to `H`. The solution to this problem is called a *branching rule*. 52 53 - Find the multiplicities of the weights of the representation. 54 55 In addition to its representations, which we may study as above, a Lie 56 group has various related structures. These include: 57 58 - The Weyl Group `W`. 59 60 - The Weight Lattice. 61 62 - The Root System 63 64 - The Cartan Type. 65 66 - The Dynkin diagram. 67 68 - The extended Dynkin diagram. 69 70 Sage contains methods for working with these structures. 71 72 If there is something you need that is not implemented, getting it 73 added to Sage will likely be possible. You may write your own 74 algorithm for an unimplemented task, and if it is something others 75 will be interested in, it is probably possible to get it added to 76 Sage. 77 78 79 Combinatorics 80 ------------- 81 82 Sage supports a great many related mathematical objects. Some of these 83 properly belong to combinatorics. It is beyond the scope of these 84 notes to cover all the combinatorics in Sage, but we will try to touch 85 on those combinatorial methods which have some connection with Lie 86 groups and representation theory. These include: 87 88 - The affine Weyl group, an infinite group containing `W`. 89 90 - Kashiwara crystals, which are combinatorial analogs of modules in 91 the above categories. 92 93 - Coxeter group methods applicable to Weyl groups and the affine Weyl 94 group, such as Bruhat order. 95 96 - The Iwahori Hecke algebras, which are deformations of the group 97 algebras of `W` and the affine Weyl group. 98 99 - Kazhdan-Lusztig polynomials. 100 101 Preparation of this document was supported in part by NSF grant DMS-0652817. -
new file doc/en/thematic_tutorials/lie/iwahori_hecke_algebra.rst
diff -r 5b338f2e484f -r fc7cc70533c4 doc/en/thematic_tutorials/lie/iwahori_hecke_algebra.rst
- + 1 ---------------------- 2 Iwahori Hecke Algebras 3 ---------------------- 4 5 The Iwahori Hecke algebra is defined in [Iwahori1964]_. In that 6 original paper, the algebra occurs as the convolution ring of 7 functions on a `p`-adic group that are compactly supported and 8 invariant both left and right by the Iwahori subgroup. However Iwahori 9 determined its structure in terms of generators and relations, and it 10 turns out to be a deformation of the group algebra of the affine Weyl 11 group. 12 13 Once the presentation is found, the Iwahori Hecke algebra can be 14 defined for any Coxeter group. It depends on a parameter `q` which in 15 Iwahori's paper is the cardinality of the residue field. But it could 16 just as easily be an indeterminate. 17 18 Then the Iwahori Hecke algebra has the following description. Let 19 `W` be a Coxeter group, with generators (simple reflections) 20 `s_1,\dots,s_n`. They satisfy the relations `s_i^2 = 1` and the braid 21 relations 22 23 .. MATH:: 24 25 s_i s_j s_i s_j \cdots = s_j s_i s_j s_i \cdots 26 27 where the number of terms on each side is the order of `s_i s_j`. 28 29 The Iwahori Hecke algebra has a basis `T_1,\dots,T_n` subject to 30 relations that resemble those of the `s_i`. They satisfy the braid 31 relations and the quadratic relation 32 33 .. MATH:: 34 35 (T_i-q)(T_i+1) = 0. 36 37 This can be modified by letting `q_1` and `q_2` be two indeterminates 38 and letting 39 40 .. MATH:: 41 42 (T_i-q_1)(T_i-q_2) = 0. 43 44 In this generality, Iwahori Hecke algebras have significance far 45 beyond their origin in the representation theory of `p`-adic 46 groups. For example, they appear in the geometry of Schubert 47 varieties, where they are used in the definition of the 48 Kazhdan-Lusztig polynomials. They appear in connection with quantum 49 groups, and in Jones's original paper on the Jones polynomial. 50 51 Here is how to create an Iwahori Hecke algebra:: 52 53 sage: R.<q> = PolynomialRing(ZZ) 54 sage: H = IwahoriHeckeAlgebraT("B3",q); H 55 The Iwahori Hecke Algebra of Type B3 in q,-1 over Univariate 56 Polynomial Ring in q over Integer Ring and prefix T 57 sage: T1,T2,T3 = H.algebra_generators() 58 sage: T1*T1 59 (q-1)*T1 + q 60 61 If the Cartan type is affine, the generators will be numbered starting 62 with ``T0`` instead of ``T1``. 63 64 You may coerce a Weyl group element into the Iwahori Hecke algebra:: 65 66 sage: W = WeylGroup("G2",prefix="s") 67 sage: [s1,s2]=W.simple_reflections() 68 sage: P.<q> = LaurentPolynomialRing(QQ) 69 sage: H = IwahoriHeckeAlgebraT(W,q) 70 sage: H(s1*s2) 71 T1*T2 72 73 74 Intertwining operators 75 ---------------------- 76 77 The Iwahori Hecke operator can be used to study representations of 78 `p`-adic groups that have fixed vectors with respect to the Iwahori 79 subgroup. References: 80 81 - [Rogawski1985]_ 82 83 - [Reeder1992]_ 84 85 - [HainesEtAl2009]_ 86 87 - [BumpNakasuji2010]_ 88 89 - [Casselman1980]_ 90 91 A key feature of the theory are the intertwining operators between 92 different induced representations. We will show how to implement these 93 intertwining operators in Sage. 94 95 For simplicity we will work over `G = SL(n,F)` where `F = \mathbb{Q}_q`, 96 with `q` a prime number, but everything works for an arbitrary split 97 reductive group over a nonarchimedean local field. If 98 `\mathbf{z} = (z_1,\dots,z_n) \in \mathbb{C}^n`, define the following 99 quasicharacters of `T(F)`, the diagonal subgroup in `G`: 100 101 .. MATH:: 102 103 \chi_{\mathbf{z}} 104 \left(\begin{array}{ccc} 105 t_1 \\ 106 & \ddots \\ 107 && t_n 108 \end{array}\right) 109 = 110 \prod_{i=1}^n z_i^{\hbox{ord}(t_i)}, 111 \qquad 112 \delta 113 \left(\begin{array}{ccc} 114 t_1 \\ 115 & \ddots \\ 116 && t_n 117 \end{array}\right) 118 = 119 \prod_{i=1}^n |t_i|^{n+1-2i} 120 121 We extend both to characters of the Borel subgroup `B(F)` of upper 122 triangular matrices by letting the subgroup `N(F)` of upper triangular 123 unipotent matrices be in the kernels. Let `V(\chi)` with 124 `\chi = \chi_{\mathbf{z}}` is defined to be the space of locally 125 constant functions `f` on `G` such that: 126 127 .. MATH:: 128 129 f(b g) = (\delta^{1/2}\chi)(b)f(g),\qquad b\in B(F). 130 131 We have a representation `\pi: G \to \hbox{End}(V(\chi))` by right 132 translation: `\pi(g)f(h) = f(h g)`. These are the *spherical principal 133 series representations*. Let `K = SL(n,\mathbb{Z}_q)`. This is the 134 standard maximal compact subgroup. It has a homomorphism 135 `K \to SL(n,\mathbb{F}_q)` by reduction modulo `q`. The subgroup `J` 136 of elements of `K` whose images are upper triangular is an open 137 subgroup, the *Iwahori subgroup*. 138 139 Suppose that the `z_i` are all distinct. Then for each `w \in W` there 140 exists an *intertwining integral* `M_w: V(\chi) \to V({^w\chi})` where 141 the Weyl group acts on characters of `T(F)` by conjugation. This 142 integral is defined by the formula 143 144 .. MATH:: 145 146 M h(g) = \int_{N \cap w N_- w^{-1}} h(w^{-1}n g) \, dn 147 148 where `N` is the group of upper triangular unipotent matrices and 149 `N_-` is the group of lower triangular matrices. The integral is 150 convergent provided `|z_i/z_{i+1}|<1` and in general it may be defined 151 by analytic continuation in the `z_i` or another method. See Casselman 152 *loc. cit.*. 153 154 The problem is how to model the intertwining operators in Sage. 155 156 Let `W = N(F) / T(\mathbb{Z}_q)` and `W' = N(F)/T(F)`. These are 157 isomorphic to the affine and finite Weyl groups, that is, the Weyl 158 groups with Cartan types ``[`A`,n-1,1]`` and ``[`A`,n-1]``, 159 respectively. 160 161 The *Iwahori Hecke algebra* `\mathcal{H}` is the ring of compactly 162 supported functions `h` on `G` such that `h(k g k') = h(g)` when 163 `k,k' \in J`. It is a ring under convolution. Then `V(\chi)` becomes a 164 module over it by 165 166 .. MATH:: 167 168 (h f)(g) = \int_G h(x) f(g x) \, dx. 169 170 The subspace `V(\chi)^J` of `V(\chi)` consisting of elements that are 171 fixed by `J` is invariant under `\mathcal{H}`. This module is 172 finite-dimensional: in fact, its order is `|W'|=n!`, whereas `V(\chi)` 173 itself is infinite dimensional. However the finite-dimensional 174 `\mathcal{H}`-module `V(\chi)^J` accurately reflects the structure of 175 the `G`-module `V(\chi)`. For example `V(\chi)` is irreducible as a 176 `G`-module if and only if `V(\chi)^J` is irreducible as an 177 `\mathcal{H}`-module. 178 179 Normalizing the Haar measure so that `J` has volume `1`, let `T_w` be 180 the characteristic function of `J w J`, and if `1 \le i \le r` let 181 `T_i` denote `T_{\sigma_i}`. The `T_w` with `w \in W` form a basis, 182 and the `T_i` form a set of algebra generators The `T_i` satisfy the 183 same braid relations as the `s_i`, but the relation `\sigma_i^2 = 1` is 184 replaced by `T_i^2 = (q - 1) T_i + q`. 185 186 The subalgebra elements of `\mathcal{H}` consisting of functions that 187 are supported in `K` is the finite Iwahori Hecke algebra 188 `\mathcal{H}'`. Thus `\dim (H) = |W|` but `\mathcal{H}` is 189 infinite-dimensional The subalgebra `H` has generators 190 `T_1, \dots, T_r` but omits `T_0`. 191 192 We see that `W`, `W'`, `\mathcal{H}` and `\mathcal{H'}` are all 193 objects that can be created in Sage. 194 195 We define a vector space isomorphism 196 `\alpha = \alpha (\chi) : V (\chi)^J \to H'` as follows. If 197 `F \in V (\chi)^J` then let `\alpha (F) = f` where `f` is the function 198 `f (g) = F (g^{- 1})` if `g \in K`, 0 if `g \notin K`. It may be 199 checked that `\alpha (F) \in H'`. This allows us to model the 200 `|W'|`-dimensional `\mathcal{H}`-module `V(\chi)` by the 201 `|W'|`-dimensional subalgebra `\mathcal{H}'`. This idea, which appears 202 in the paper of Rogawski cited above, is due to Joseph Bernstein. 203 204 Let `w \in W` and define a map `\mathcal{M}_w: H \to H` by requiring that 205 206 .. MATH:: 207 208 \alpha({^w\chi})\circ M_w = \mathcal{M}_w\circ\alpha(\chi) 209 210 as maps from `V(\chi)^J \to H`. Since `M_w` and `\alpha(\chi)`, 211 `\alpha({^w\chi})` are all homomorphisms of left `\mathcal{H}'`-modules, 212 `\mathcal{M}_w` is a homomorphism of left `\mathcal{H}'` modules. Now 213 let `\mu_{\mathbf{z}}(w) = \mathcal{M}_w(1)` where `1` denotes the 214 identity element of `\mathcal{H}'`. 215 216 Because `\mathcal{M}_w` is a `\mathcal{H}'`-module homomorphism, we have 217 218 .. MATH:: 219 220 \mathcal{M}_w(h) 221 = 222 \mathcal{M}_w(h\cdot 1) 223 = 224 h \mathcal{M}_w(1) 225 = 226 h\cdot\mu_{\mathbf{z}}(w). 227 228 In other words, the intertwining operator is modeled by multiplication 229 by `\mu_{\mathbf{z}}(w)` when we identify `V(\chi)^J` and 230 `V({^w\chi})^J` with `H` by means of the homomorphisms `\alpha`. We 231 are therefore left with the problem of computing 232 `\mu_{\mathbf{z}}(w)`. If `l(w_1w_2) = l(w_1)+l(w_2)` then 233 `M_{w_1w_2} = M_{w_1}M_{w_2}` and it follows that 234 235 .. MATH:: 236 237 \mu_{\mathbf{z}}(w_1w_2) 238 = 239 \mu_{\mathbf{z}}(w_2)\mu_{w_2\mathbf{z}}(w_1). 240 241 (Here `w_2` acts on the spectral parameters `\mathbf{z}` in the 242 obvious way.) Thus we are reduced to the determination of 243 `\mu_{\mathbf{z}}(w)` when `w = s_i` is a simple reflection, and this 244 is accomplished by Theorem 3.4 in Casselman, *loc. cit.*: 245 246 .. MATH:: 247 248 \mu_{\mathbf{z}}(s_i) 249 = 250 \frac{1}{q}T_i + 251 \left(1-\frac{1}{q}\right) 252 \frac{\mathbf{z}^{\alpha_i}}{1-\mathbf{z}^{\alpha_i}}. 253 254 Here the simple root `\alpha_i = (0,\dots,0,1,-1,0,\dots,0)` in the 255 ambient lattice, where the `1` is in the `i`-th position, so 256 `\mathbf{z}^\alpha_i = z_i/z_{i+1}`. 257 258 In addition to the intertwining operators, let us construct a basis 259 `\psi_w` of `V(\chi)^J` indexed by elements of `W'`. Let 260 261 .. MATH:: 262 263 \psi_w(b k) 264 = 265 \begin{cases} 266 \delta^{1/2}\chi(b) & \text{if $k\in J u^{-1} J$ with $u \ge w$},\\ 267 0 & \text{otherwise}, 268 \end{cases} 269 270 where `b\in B(F)` and `k \in K`. In order to make sense of this 271 definition, bear in mind that every element of `G` has a decomposition 272 as a product `b k` with `b \in B(F)` and `k \in K`, and every 273 `k \in K` belongs to a unique double coset `J u^{-1} J` with `u \in W'`. 274 275 The image of `\psi_w` under the homomorphism `\alpha` is just 276 `\sum_{u \ge w} T_u`, and by abuse of notation we will denote this 277 element of `\mathcal{H}'` also by `\psi_w`. Now let us ask to evaluate 278 `m(u,v) = (\Lambda_v\psi_u)(1)`. It may be shown that `m(u,v) = 0` 279 unless `u \le v`, and that `m(u,u) = 1`. In other words, the "matrix" 280 `m` is upper triangular in the Bruhat order. 281 282 Bump and Nakasuji used Sage to investigate this question and arrived 283 at the following conjecture. This is conjectured for more general 284 groups than just the `SL(n)` that we are considering, but only for the 285 simply-laced groups (types A, D, E). It follows from the Deodhar 286 conjecture that the set 287 288 .. MATH:: 289 290 S(u,v) = \{\alpha \in \Phi^+|u \le v r_\alpha < v\} 291 292 has cardinality `\ge l(v)-l(u)`, where `l` is the length function on 293 `W'`. (Remember that `r_\alpha` is the reflection in the positive root 294 `\alpha`.) If the Kazhdan-Lusztig polynomial `P_{w_0v,w_0u} = 1`, then 295 `|S(u,v)| = l(v)-l(u)`. 296 297 **Conjecture** (Bump and Nakasuji) If the Kazhdan-Lusztig polynomial 298 `P_{w_0v,w_0u} = 1` then 299 300 .. MATH:: 301 302 m(u,v) 303 = 304 \prod_{\alpha \in S(u,v)} 305 \frac{1-q^{-1}\mathbf{z}^\alpha}{1-\mathbf{z}^\alpha}. 306 307 The following Sage code is capable of verifying this statement for 308 ``['A',3]``, and of course can be adapted to any root system. 309 310 311 Intertwining operator program 312 ----------------------------- 313 314 This program can compute both the actual and conjectured values of 315 `m(u,v)`. 316 317 :: 318 319 import copy 320 321 P1.<q> = PolynomialRing(QQ) 322 W = WeylGroup("A3", prefix="s") 323 KL = KazhdanLusztigPolynomial(W, q) 324 325 P.<q,z1,z2,z3,z4> = PolynomialRing(QQ) 326 F = Frac(P) 327 H = IwahoriHeckeAlgebraT(W,q,base_ring=F) 328 [s1,s2,s3] = W.simple_reflections() 329 w0 = W.long_element() 330 [T1,T2,T3] = H.algebra_generators() 331 332 def mu(z,s): 333 """ 334 Produces an element of the Hecke algebra that mimics 335 the intertwining integral corresponding to a simple 336 reflection. 337 """ 338 [z1,z2,z3,z4] = z 339 if s == s1: 340 return q^(-1)*T1+(1-1/q)*(z1/(z2-z1)) 341 elif s == s2: 342 return q^(-1)*T2+(1-1/q)*(z2/(z3-z2)) 343 elif s == s3: 344 return q^(-1)*T3+(1-1/q)*(z3/(z4-z3)) 345 346 def reflect(s,z): 347 """ 348 Applies the simple reflection s to the spectral data z. 349 """ 350 return (Matrix(z)*s.matrix()).list() 351 352 def intertwiner(w,debug=False): 353 """ 354 This is mu_z(w) in general. The function mu(z,s) implemented 355 above is only for simple reflections. 356 357 Run with debug=True to see what it is really doing. 358 """ 359 decomp = w.reduced_word() 360 decomp.reverse() 361 prod = H(1) 362 if debug: 363 clist = "" 364 for i in range(len(decomp)): 365 alist = copy.deepcopy(decomp[:i]) 366 z = [z1,z2,z3,z4] 367 for j in alist: 368 z = reflect(W.simple_reflection(j),z) 369 s = W.simple_reflection(decomp[i]) 370 if debug: 371 clist +="mu(%s,%s)"%(z.__repr__(),s.__repr__()) 372 if i < len(decomp)-1: 373 clist += "*" 374 else: 375 prod = prod*mu(z,s) 376 if debug: 377 return clist 378 else: 379 return prod 380 381 def psi(u): 382 """ 383 u is a permutation. This produces the sum of the f_v for v>=u. 384 """ 385 u = H(u).support_of_term() 386 return sum(H(v) for v in W if u.bruhat_le(v)) 387 388 def ev(f): 389 """ 390 Evaluate the element of the space of Iwahori fixed vectors 391 in the induced model at the identity. 392 """ 393 return f.coefficient(W(1)) 394 395 def m(u,v): 396 """ 397 It is assumed that u <= v. Apply the v intertwiner to 398 psi(u) and evaluate at 1. 399 """ 400 u = W(u) 401 v = W(v) 402 return ev(psi(u)*intertwiner(H(v))) 403 404 def rfactor(alpha): 405 """ 406 If alpha is a root, returns (1-q^(-1)*z^alpha)/(1-z^alpha). 407 """ 408 z = [z1,z2,z3,z4] 409 za = prod(z[i]**alpha[i] for i in range(4)) 410 return (1-q^(-1)*za)/(1-za) 411 412 def conjectured_m(u,v): 413 """ 414 This is the value conjectured for m(u,v) by Bump and Nakasuji 415 if u and v satisfy a hypothesis. 416 """ 417 refdict = W.reflections() 418 S = [refdict[r] for r in refdict.keys() if u.bruhat_le(v*r) and (v*r).bruhat_le(v)] 419 return prod(rfactor(alpha) for alpha in S) -
new file doc/en/thematic_tutorials/lie/kazhdan_lusztig_polynomials.rst
diff -r 5b338f2e484f -r fc7cc70533c4 doc/en/thematic_tutorials/lie/kazhdan_lusztig_polynomials.rst
- + 1 --------------------------- 2 Kazhdan-Lusztig Polynomials 3 --------------------------- 4 5 Sage can compute ordinary Kazhdan-Lusztig polynomials for Weyl groups 6 or affine Weyl groups (and potentially other Coxeter groups). 7 8 You must create a Weyl group ``W`` and a ring containing an 9 indeterminate ``q``. The ring may be a univariate polynomial ring or a 10 univariate Laurent polynomial ring. Then you may calculate 11 Kazhdan-Lusztig polynomials as follows:: 12 13 sage: W = WeylGroup("A3", prefix="s") 14 sage: [s1,s2,s3] = W.simple_reflections() 15 sage: P.<q> = LaurentPolynomialRing(QQ) 16 sage: KL = KazhdanLusztigPolynomial(W,q) 17 sage: KL.R(s2, s2*s1*s3*s2) 18 q^3 - 3*q^2 + 3*q - 1 19 sage: KL.P(s2, s2*s1*s3*s2) 20 q + 1 21 22 Thus we have the Kazhdan-Lusztig R and P polynomials. 23 24 Known algorithms for computing Kazhdan-Lusztig polynomials are highly 25 recursive, and caching of intermediate results is necessary for the 26 programs not to be prohibitively slow. Therefore intermediate results 27 are cached. This has the effect that as you run the program for any 28 given ``KazhdanLusztigPolynomial`` class, the calculations will be 29 slow at first but progressively faster as more polynomials are 30 computed. 31 32 You may see the results of the intermediate calculations by creating 33 the class with the option ``trace="true"``. 34 35 Since the parent of ``q`` must be a univariate ring, if you want to 36 work with other indeterminates, *first* create a univariate polynomial 37 or Laurent polynomial ring, and the Kazhdan-Lusztig class. *Then* 38 create a ring containing ``q`` and the other variables:: 39 40 sage: W = WeylGroup("B3", prefix="s") 41 sage: [s1,s2,s3] = W.simple_reflections() 42 sage: P.<q> = PolynomialRing(QQ) 43 sage: KL = KazhdanLusztigPolynomial(W,q) 44 sage: P1.<x,y> = PolynomialRing(P) 45 sage: x*KL.P(s1*s3,s1*s3*s2*s1*s3) 46 (q + 1)*x -
new file doc/en/thematic_tutorials/lie/lie_basics.rst
diff -r 5b338f2e484f -r fc7cc70533c4 doc/en/thematic_tutorials/lie/lie_basics.rst
- + 1 ---------------- 2 Lie Group Basics 3 ---------------- 4 5 6 Goals of this section 7 --------------------- 8 9 Since we must be brief here, this is not really a place to learn about 10 Lie groups. Rather, the point of this section is to outline what you 11 need to know to use Sage effectively for Lie computations, and to fix 12 ideas and notations. 13 14 15 Semisimple and reductive groups 16 ------------------------------- 17 18 If `g \in GL(n,\mathbb{C})`, then `g` may be uniquely factored as 19 `g_1 g_2` where `g_1` and `g_2` commute, with `g_1` semisimple 20 (diagonalizable) and `g_2` unipotent (all its eigenvalues equal to 21 1). This follows from the Jordan canonical form. If `g = g_1` then `g` 22 is called *semisimple* and if `g = g_2` then `g` is called 23 *unipotent*. 24 25 We consider a Lie group `G` and a class of representations such that 26 if an element `g \in G` is unipotent (resp. semisimple) in one 27 faithful representation from the class, then it is unipotent 28 (resp. semisimple) in every faithful representation of the class. Thus 29 the notion of being semisimple or unipotent is intrinsic. Examples: 30 31 - Compact Lie groups with continuous representations 32 33 - Complex analytic groups with analytic representations 34 35 - Algebraic groups over `\mathbb{R}` with algebraic representations. 36 37 A subgroup of `G` is called *unipotent* if it is connected and all its 38 elements are unipotent. It is called a *torus* if it is connected, 39 abelian, and all its elements are semisimple. The group `G` is called 40 *reductive* if it has no nontrivial normal unipotent subgroup. For 41 example, `GL(2,\mathbb{C})` is reductive, but its subgroup: 42 43 .. MATH:: 44 45 \left\{\left( 46 \begin{array}{cc} 47 a & b \\ 48 & d 49 \end{array} 50 \right)\right\} 51 52 is not since it has a normal unipotent subgroup 53 54 .. MATH:: 55 56 \left\{\left( 57 \begin{array}{cc} 58 1 & b \\ 59 & 1 60 \end{array} 61 \right)\right\}. 62 63 A group has a unique largest normal unipotent subgroup, called the 64 *unipotent radical*, so it is reductive if and only if the unipotent 65 radical is trivial. 66 67 A Lie group is called *semisimple* it is reductive and furthermore has 68 no nontrivial normal tori. For example `GL(2,\mathbb{C})` is reductive 69 but not semisimple because it has a normal torus: 70 71 .. MATH:: 72 73 \left\{\left( 74 \begin{array}{cc} 75 a \\ 76 & a 77 \end{array} 78 \right)\right\}. 79 80 The group `SL(2,\mathbb{C})` is semisimple. 81 82 83 Fundamental group and center 84 ---------------------------- 85 86 If `G` is a semisimple Lie group then its center and fundamental group 87 are finite abelian groups. The universal covering group `\tilde G` is 88 therefore a finite extension with the same Lie algebra. Any 89 representation of `G` may be reinterpreted as a representation of the 90 simply connected `\tilde G`. Therefore we may as well consider 91 representations of `\tilde G`, and restrict ourselves to the simply 92 connected group. 93 94 95 Parabolic subgroups and Levi subgroups 96 -------------------------------------- 97 98 Let `G` be a reductive complex analytic group. A maximal solvable 99 subgroup of `G` is called a *Borel subgroup*. All Borel subgroups are 100 conjugate. Any subgroup `P` containing a Borel subgroup is called a 101 *parabolic subgroup*. We may write `P` as a semidirect product of its 102 maximal normal unipotent subgroup or *unipotent radical* `P` and a 103 reductive subgroup `M`, which is determined up to conjugacy. The 104 subgroup `M` is called a *Levi subgroup*. 105 106 **Example:** Let `G = GL_n(\mathbb{C})` and let `r_1, \dots, r_k` be 107 integers whose sum is `n`. Then we may consider matrices of the form: 108 109 .. MATH:: 110 111 \left(\begin{array}{cccc} 112 g_1 & * & \cdots & * \\ 113 & g_2 & & * \\ 114 && \ddots \\ 115 &&& g_r 116 \end{array}\right) 117 118 where `g_i \in GL(r_i,\mathbb{C}`. The unipotent radical consists of 119 the subgroup in which all `g_i = I_{r_i}`. The Levi subgroup 120 (determined up to conjugacy) is: 121 122 .. MATH:: 123 124 M 125 = 126 \left\{\left( 127 \begin{array}{cccc} 128 g_1 \\ 129 & g_2 \\ 130 && \ddots \\ 131 &&& g_r 132 \end{array} 133 \right)\right\}, 134 135 and is isomorphic to 136 `M = GL(r_1,\mathbb{C}) \times \cdots \times GL(r_k,\mathbb{C})`. 137 Therefore `M` is a Levi subgroup. 138 139 The notion of a Levi subgroup can be extended to compact Lie 140 groups. Thus `U(r_1) \times \cdots \times U(r_k)` is a Levi subgroup 141 of `U(n)`. However Parabolic subgroups do not exist for compact Lie 142 groups. 143 144 145 Cartan types 146 ------------ 147 148 Semisimple Lie groups are classified by their *Cartan types*. There 149 are both reducible and irreducible Cartan types in Sage. Let us start 150 with the irreducible types. Such a type is implemented in Sage as a 151 pair ``[`X`,r]`` where `X` is one of A, B, C, D, E, F or G and `r` is a 152 positive integer. If `X = D` then we must have `r > 1` and if `X` is 153 one of the *exceptional types* `E`, `F` or `G` then `r` is limited to 154 only a few possibilities. The exceptional types are:: 155 156 ['G',2], ['F',4], ['E',6], ['E',7] or ['E',8]. 157 158 A simply-connected semisimple group is a direct product of simple Lie 159 groups, which are given by the following table. The integer `r` is 160 called the *rank*, and is the dimension of the maximal torus. 161 162 Here are the Lie groups corresponding to the classical types: 163 164 +---------------+-------------------------+-------------+ 165 | compact group | complex analytic group | Cartan type | 166 +===============+=========================+=============+ 167 | `SU(r+1)` | `SL(r+1,\mathbb{C})` | `A_r` | 168 +---------------+-------------------------+-------------+ 169 | `spin(2r+1)` | `spin(2r+1,\mathbb{C})` | `B_r` | 170 +---------------+-------------------------+-------------+ 171 | `Sp(2r)` | `Sp(2r,\mathbb{C})` | `C_r` | 172 +---------------+-------------------------+-------------+ 173 | `spin(2r)` | `spin(2r,\mathbb{C})` | `D_r` | 174 +---------------+-------------------------+-------------+ 175 176 You may create these Cartan types and their Dynkin diagrams as follows:: 177 178 sage: ct = CartanType("D5"); ct 179 ['D', 5] 180 181 Here ``"D5"`` is an abbreviation for ``['D',5]``. 182 183 184 Dual Cartan types 185 ------------------ 186 187 Every Cartan type has a dual, which you can get from within Sage:: 188 189 sage: CartanType("B4").dual() 190 ['C', 4] 191 192 Types other than ``B`` and ``C`` are self-dual in the sense that the 193 dual is isomorphic to the original type, but the isomorphism of a 194 Cartan type with its dual might relabel the vertices. We can see this 195 as follows:: 196 197 sage: CartanType("F4").dynkin_diagram() 198 O---O=>=O---O 199 1 2 3 4 200 F4 201 sage: CartanType("F4").dual() 202 ['F', 4]^* 203 sage: CartanType("F4").dual().dynkin_diagram() 204 O---O=<=O---O 205 1 2 3 4 206 F4* 207 208 209 Reducible Cartan types 210 ---------------------- 211 212 If `G` is a Lie group of finite index in `G_1 \times G_2`, where `G_1` 213 and `G_2` are Lie groups of dimension `>0`, then `G` is called 214 *reducible*. In this case, the root system of `G` is the disjoint 215 union of the root systems of `G_1` and `G_2`, which lie in orthogonal 216 subspaces of the ambient space of the weight space of `G`. The Cartan 217 type of `G` is thus *reducible*. 218 219 Reducible Cartan types are supported in Sage as follows:: 220 221 sage: RootSystem("A1xA1") 222 Root system of type A1xA1 223 sage: WeylCharacterRing("A1xA1") 224 The Weyl Character Ring of Type A1xA1 with Integer Ring coefficients 225 226 227 Low dimensional Cartan types 228 ---------------------------- 229 230 There are some isomorphisms that occur in low degree. 231 232 +-------------+------------+-----------------+---------------------+ 233 | Cartan Type | Group | Equivalent Type | Isomorphic Group | 234 +=============+============+=================+=====================+ 235 | B2 | `spin(5)` | C2 | `Sp(4)` | 236 +-------------+------------+-----------------+---------------------+ 237 | D3 | `spin(6)` | A3 | `SL(4)` | 238 +-------------+------------+-----------------+---------------------+ 239 | D2 | `spin(4)` | A1xA1 | `SL(2)\times SL(2)` | 240 +-------------+------------+-----------------+---------------------+ 241 | B1 | `spin(3)` | A1 | `SL(2)` | 242 +-------------+------------+-----------------+---------------------+ 243 | C1 | `Sp(2)` | A1 | `SL(2)` | 244 +-------------+------------+-----------------+---------------------+ 245 246 Sometimes the redundant Cartan types such as D3 and D2 are excluded 247 from the list of Cartan types. Folks will tell there's no such Cartan 248 types. However Sage allows them since excluding them leads to 249 exceptions having to be made in algorithms. A better approach, which 250 is followed by Sage, is to allow the redundant Cartan types, but to 251 implement the isomorphisms explicitly as special cases of branching 252 rules. The utility of this approach may be seen by considering that 253 the rank one group `SL(2)` has different natural weight lattices 254 realizations depending on whether we consider it to be `SL(2)`, 255 `spin(2)` or `Sp(2)`:: 256 257 sage: RootSystem("A1").ambient_space().simple_roots() 258 Finite family {1: (1, -1)} 259 sage: RootSystem("B1").ambient_space().simple_roots() 260 Finite family {1: (1)} 261 sage: RootSystem("C1").ambient_space().simple_roots() 262 Finite family {1: (2)} 263 264 265 Affine Cartan types 266 ------------------- 267 268 There are also affine Cartan types, which correspond to (infinite) 269 affine Lie algebras. There is an affine Cartan type of the of the 270 form ``[`X`,r,1]`` if ``X=A,B,C,D,E,F,G`` and ``[`X`,r]`` is an ordinary 271 Cartan type. There are also *twisted affine types* of the form ``[X,r,k]`` 272 where `k = 2` or 3 if the Dynkin diagram of the ordinary Cartan type 273 ``[X,r]`` has an automorphism of degree `k`. 274 275 Illustrating some of the methods available for the untwisted affine 276 Cartan type ``['A',4,1]``:: 277 278 sage: ct = CartanType(['A',4,1]); ct 279 ['A', 4, 1] 280 sage: ct.dual() 281 ['A', 4, 1] 282 sage: ct.classical() 283 ['A', 4] 284 sage: ct.dynkin_diagram() 285 0 286 O-----------+ 287 | | 288 | | 289 O---O---O---O 290 1 2 3 4 291 A4~ 292 293 The twisted affine Cartan types are relabeling of the duals of certain 294 untwisted Cartan types:: 295 296 sage: CartanType(['A',3,2]) 297 ['B', 2, 1]^* 298 sage: CartanType(['D',4,3]) 299 ['G', 2, 1]^* relabelled by {0: 0, 1: 2, 2: 1} 300 301 302 Relabeled Cartan types 303 ---------------------- 304 305 By default Sage uses the labeling of the Dynkin Diagram from Bourbaki, 306 *Lie Groups and Lie Algebras* Chapters 4,5,6. There is another 307 labeling of the vertices due to Dynkin. Most of the literature follows 308 Bourbaki, though Kac's book *Infinite Dimensional Lie algebras* 309 follows Dynkin. 310 311 If you need to use Dynkin's labeling you should be aware that Sage 312 does support relabeled Cartan types. See the documentation in 313 ``sage.combinat.root_system.type_relabel`` for further information. 314 315 316 .. _standard-realizations: 317 318 Standard realizations of the ambient spaces 319 ------------------------------------------- 320 321 These realizations follow the Appendix in Bourbaki, *Lie Groups 322 and Lie Algebras, Chapters 4-6*. 323 324 325 Type A 326 ^^^^^^ 327 328 For type `A_r` we use an `r+1` dimensional ambient space. This means 329 that we are modeling the Lie group `U(r+1)` or `GL(r+1,\mathbb{C})` 330 rather than `SU(r+1)` or `SL(r+1,\mathbb{C})`. The ambient space is 331 identified with `\mathbb{Q}^{r+1}`:: 332 333 sage: RootSystem("A3").ambient_space().simple_roots() 334 Finite family {1: (1, -1, 0, 0), 2: (0, 1, -1, 0), 3: (0, 0, 1, -1)} 335 sage: RootSystem("A3").ambient_space().fundamental_weights() 336 Finite family {1: (1, 0, 0, 0), 2: (1, 1, 0, 0), 3: (1, 1, 1, 0)} 337 sage: RootSystem("A3").ambient_space().rho() 338 (3, 2, 1, 0) 339 340 The dominant weights consist of integer `r+1`-tuples 341 `\lambda = (\lambda_1,\dots,\lambda_{r+1})` such that 342 `\lambda_1 \ge \dots \ge \lambda_{r+1}`. 343 344 See :ref:`SLvsGL` for further remarks about Type A. 345 346 347 Type B 348 ^^^^^^ 349 For the remaining classical Cartan types `B_r`, `C_r` and `D_r` we use 350 an `r`-dimensional ambient space:: 351 352 sage: RootSystem("B3").ambient_space().simple_roots() 353 Finite family {1: (1, -1, 0), 2: (0, 1, -1), 3: (0, 0, 1)} 354 sage: RootSystem("B3").ambient_space().fundamental_weights() 355 Finite family {1: (1, 0, 0), 2: (1, 1, 0), 3: (1/2, 1/2, 1/2)} 356 sage: RootSystem("B3").ambient_space().rho() 357 (5/2, 3/2, 1/2) 358 359 This is the Cartan type of `spin(2r+1)`. The last fundamental weight 360 ``(1/2, 1/2, ... , 1/2)`` is the highest weight of the `2^r` 361 dimensional *spin representation*. All the other fundamental 362 representations factor through the homomorphism 363 `spin(2r+1) \to SO(2r+1)` and are representations of the orthogonal 364 group. 365 366 The dominant weights consist of `r`-tuples of integers or 367 half-integers `(\lambda_1,\dots,\lambda_r)` such that 368 `\lambda_1 \ge \lambda_2 \dots \ge \lambda_r \ge 0`, and such that the 369 differences `\lambda_i - \lambda_j \in \mathbb{Z}`. 370 371 372 Type C 373 ^^^^^^ 374 :: 375 376 sage: RootSystem("C3").ambient_space().simple_roots() 377 Finite family {1: (1, -1, 0), 2: (0, 1, -1), 3: (0, 0, 2)} 378 sage: RootSystem("C3").ambient_space().fundamental_weights() 379 Finite family {1: (1, 0, 0), 2: (1, 1, 0), 3: (1, 1, 1)} 380 sage: RootSystem("C3").ambient_space().rho() 381 (3, 2, 1) 382 383 This is the Cartan type of the symplectic group `Sp(2r)`. 384 385 The dominant weights consist of `r`-tuples of integers 386 `\lambda = (\lambda_1,\dots,\lambda_{r+1})` such that 387 `\lambda_1 \ge \cdots \ge \lambda_r \ge 0`. 388 389 390 Type D 391 ^^^^^^ 392 :: 393 394 sage: RootSystem("D4").ambient_space().simple_roots() 395 Finite family {1: (1, -1, 0, 0), 2: (0, 1, -1, 0), 3: (0, 0, 1, -1), 4: (0, 0, 1, 1)} 396 sage: RootSystem("D4").ambient_space().fundamental_weights() 397 Finite family {1: (1, 0, 0, 0), 2: (1, 1, 0, 0), 3: (1/2, 1/2, 1/2, -1/2), 4: (1/2, 1/2, 1/2, 1/2)} 398 sage: RootSystem("D4").ambient_space().rho() 399 (3, 2, 1, 0) 400 401 This is the Cartan type of `spin(2r)`. The last two fundamental 402 weights are the highest weights of the two `2^{r-1}`-dimensional spin 403 representations. 404 405 The dominant weights consist of `r`-tuples of integers 406 `\lambda = (\lambda_1,\dots,\lambda_{r+1})` such that 407 `\lambda_1 \ge \cdots \ge \lambda_{r-1} \ge |\lambda_r|`. 408 409 We leave the reader to examine the exceptional types. You can use 410 Sage to list the fundamental dominant weights and simple roots. 411 412 413 Weights and the ambient space 414 ----------------------------- 415 416 Let `G` be a reductive complex analytic group. Let `T` be a maximal 417 torus, `\Lambda = X^{\ast} (T)` be its group of analytic 418 characters. Then `T \cong (\mathbb{C}^{\times})^r` for some `r` and 419 `\Lambda \cong \mathbb{Z}^r`. 420 421 **Example 1:** Let `G = \hbox{GL}_{r+1} (\mathbb{C})`. Then `T` is the 422 diagonal subgroup and `X^{\ast} (T) \cong \mathbb{Z}^{r+1}`. If 423 `\lambda = (\lambda_1, \dots, \lambda_n)` then `\lambda` is identified 424 with the rational character 425 426 .. MATH:: 427 428 {\bf t} 429 = 430 \left(\begin{array}{ccc} 431 t_1 & & \\ 432 & \ddots & \\ 433 & & t_n 434 \end{array}\right) 435 \longmapsto \prod t_i^{\lambda_i}. 436 437 **Example 2:** Let `G = \hbox{SL}_{r+1} (\mathbb{C})`. Again `T` is 438 the diagonal subgroup but now if 439 `\lambda \in \mathbb{Z}^{\Delta} = \{(d, \cdots, d) | d \in \mathbb{Z}\} \subseteq \mathbb{Z}^{r+1}` 440 then `\prod t_i^{\lambda_i} = \det ({\bf t})^d = 1`, so 441 `X^{\ast} (T) \cong \mathbb{Z}^{r+1} /\mathbb{Z}^{\Delta} \cong \mathbb{Z}^r`. 442 443 - Elements of `\Lambda` are called *weights*. 444 445 - If `\pi: G \to GL(V)` is any representation we may restrict `\pi` to 446 `T`. Then the characters of `T` that occur in this restriction are 447 called the *weights of* `\pi`. 448 449 - `G` acts on its Lie algebra by conjugation (the *adjoint representation*). 450 451 - The nonzero weights of the adjoint representation are called *roots*. 452 453 - The *ambient space* of `\Lambda` is `\mathbb{Q} \otimes \Lambda`. 454 455 456 The root system 457 --------------- 458 459 As we have mentioned, `G` acts on its complexified Lie algebra 460 `\mathfrak{g}_{\mathbb{C}}` by the adjoint representation. The zero 461 weight space `\mathfrak{g}_{\mathbb{C}}(0)` is just the Lie algebra of 462 `T` itself. The other nonzero weights each appear with multiplicity 463 one and form an interesting configuration of vectors called the 464 *root system* `\Phi`. 465 466 It is convenient to partition `\Phi` into two sets `\Phi^+` and 467 `\Phi^-` such that `\Phi^+` consists of all roots lying on one side of 468 a hyperplane. Often we arrange things so that `G` is embedded in 469 `GL(n,\mathbb{C})` in such a way that the positive weights correspond 470 to upper triangular matrices. Thus if `\alpha` is a positive root, its 471 weight space `\mathfrak{g}_{\mathbb{C}}(\alpha)` is spanned by a 472 vector `X_\alpha`, and the exponential of this eigenspace in `G` is a 473 one-parameter subgroup of unipotent matrices. It is always possible to 474 arrange that this one-parameter subgroup consists of upper triangular 475 matrices. 476 477 If `\alpha` is a positive root that cannot be decomposed as a sum of 478 other positive roots, then `\alpha` is called a *simple root*. If `G` 479 is semisimple of rank `r`, then `r` is the number of positive 480 roots. Let `\alpha_1,\dots,\alpha_r` be these. 481 482 483 The Weyl group 484 -------------- 485 486 Let `G` be a complex analytic group. Let `T` be a maximal torus, and 487 let `N(T)` be its normalizer. Let `W = N(T)/T` be the *Weyl group*. It 488 acts on `T` by conjugation; therefore it acts on the weight lattice 489 `\Lambda` and its ambient space. The ambient space admits an inner 490 product that is invariant under this action. Let `\left<v,w\right>` 491 denote this inner product. If `\alpha` is a root let `r_\alpha` denote 492 the reflection in the hyperplane of the ambient space that is 493 perpendicular to `\alpha`. If `\alpha = \alpha_i` is a simple root, 494 then we use the notation `s_i` to denote `r_\alpha`. 495 496 Then `s_1,\dots,s_r` generate `W`, which is a *Coxeter group*. This 497 means that it is generated by elements `s_i` of order two and that 498 if `m(i,j)` is the order of `s_i s_j`, then 499 500 .. MATH:: 501 502 W = \left<s_i| s_i^2=1, (s_i s_j)^{m(i,j)} = 1\right> 503 504 is a presentation. An important function `l: W \to \mathbb{Z}` is the 505 *length* function, where `l(w)` is the length of the shortest 506 decomposition of `w` into a product of simple reflections. 507 508 509 The dual root system 510 -------------------- 511 512 The *coroots* are certain linear functionals on the ambient space 513 that also form a root system. Since the ambient space admits a 514 `W`-invariant inner product, they may be identified with elements 515 of the ambient space itself. Then they are proportional to the 516 roots, though if the roots have different lengths, long roots 517 correspond to short coroots and conversely. The coroot corresponding 518 to the root `\alpha` is 519 520 .. MATH:: 521 522 \alpha^\vee = \frac{2\alpha}{\left<\alpha,\alpha\right>}. 523 524 525 The Dynkin diagram 526 ------------------ 527 528 The Dynkin diagram is a graph whose vertices are in bijection with the 529 set simple roots. We connect the vertices corresponding to roots that 530 are not orthogonal. Usually two such vertices make an angle of 531 `2\pi/3`, in which case we connect them with a single 532 bond. Occasionally they may make an angle of `3\pi/4` in which case we 533 connect them with a double bond, or `5\pi/6` in which case we connect 534 them with a triple bond. If the bond is single, the roots have the 535 same length with respect to the inner product on the ambient space. In 536 the case of a double or triple bond, the two simple roots in questions 537 have different length, and the bond is drawn as an arrow from the long 538 root to the short root. Only the exceptional group `G_2` has a triple 539 bond. 540 541 There are various ways to get the Dynkin diagram:: 542 543 sage: DynkinDiagram("D5") 544 O 5 545 | 546 | 547 O---O---O---O 548 1 2 3 4 549 D5 550 sage: ct = CartanType("E6"); ct 551 ['E', 6] 552 sage: ct.dynkin_diagram() 553 O 2 554 | 555 | 556 O---O---O---O---O 557 1 3 4 5 6 558 E6 559 sage: B4=WeylCharacterRing("B4"); B4 560 The Weyl Character Ring of Type ['B', 4] with Integer Ring coefficients 561 sage: B4.dynkin_diagram() 562 O---O---O=>=O 563 1 2 3 4 564 B4 565 sage: RootSystem("G2").dynkin_diagram() 566 3 567 O=<=O 568 1 2 569 G2 570 571 572 The affine root and the extended Dynkin diagram 573 ----------------------------------------------- 574 575 For the extended Dynkin diagram, we add one negative root 576 `\alpha_0`. This is the root whose negative is the highest weight in 577 the adjoint representation. Sometimes this is called the 578 *affine root*. We make the Dynkin diagram as before by measuring the 579 angles between the roots. This extended Dynkin diagram is useful for 580 many purposes, such as finding maximal subgroups and for describing 581 the affine Weyl group. 582 583 The extended Dynkin diagram may be obtained as the Dynkin diagram of 584 the corresponding untwisted affine type:: 585 586 sage: ct = CartanType("E6"); ct 587 ['E', 6] 588 sage: ct.affine() 589 ['E', 6, 1] 590 sage: ct.affine() == CartanType(['E',6,1]) 591 True 592 sage: ct.affine().dynkin_diagram() 593 O 0 594 | 595 | 596 O 2 597 | 598 | 599 O---O---O---O---O 600 1 3 4 5 6 601 E6~ 602 603 The extended Dynkin diagram is also a method of the ``WeylCharacterRing``:: 604 605 sage: WeylCharacterRing("E7").extended_dynkin_diagram() 606 O 2 607 | 608 | 609 O---O---O---O---O---O---O 610 0 1 3 4 5 6 7 611 E7~ 612 613 614 Fundamental weights and the Weyl vector 615 --------------------------------------- 616 617 There are certain weights `\omega_1,\dots,\omega_r` that: 618 619 .. MATH:: 620 621 \frac{2\left<\alpha_i,\omega_j\right>}{\left<\alpha_i,\alpha_i\right>} 622 = 623 \delta(i,j). 624 625 If `G` is semisimple then these are uniquely determined, whereas if 626 `G` is reductive but not semisimple we may choose them conveniently. 627 628 Let `\rho` be the sum of the fundamental dominant weights. If `G` is 629 semisimple, then `\rho` is half the sum of the positive roots. In case 630 `G` is not semisimple, we have noted, the fundamental weights are not 631 completely determined by the inner product condition given above. If 632 we make a different choice, then `\rho` is altered by a vector that is 633 orthogonal to all roots. This is a harmless change for many purposes 634 such as the Weyl character formula. 635 636 In Sage, this issue arises only for Cartan type A. See :ref:`SLvsGL`. 637 638 639 .. _representations: 640 641 Representations and characters 642 ------------------------------ 643 644 Let `\Lambda = X^{\ast} (T)` be the group of rational characters. Then 645 `\Lambda \cong \mathbb{Z}^r`. 646 647 - Recall that elements of `\Lambda \cong \mathbb{Z}^r` are called *weights*. 648 649 - The Weyl group `W = N(T)/T` acts on `T`, hence on `\Lambda` and its 650 ambient space by conjugation. 651 652 - The ambient space `\mathbb{Q} \otimes X^{\ast} (T) \cong \mathbb{Q}^r` 653 has a fundamental domain `\mathcal{C}^+` for the Weyl group `W` 654 called the *positive Weyl chamber*. Weights in `\mathcal{C}^+` are 655 called *dominant*. 656 657 - Then `\mathcal{C}^+` consists of all vectors such that 658 `\left<\alpha,v\right> \ge 0` for all positive roots `\alpha`. 659 660 - It is useful to embed `\Lambda` in `\mathbb{R}^r` and consider 661 weights as lattice points. 662 663 - If `(\pi, V)` is a representation then restricting to `T`, the 664 module `V` decomposes into a direct sum of weight eigenspaces 665 `V(\mu)` with multiplicity `m (\mu)` for weight `\mu`. 666 667 - There is a unique *highest weight* `\lambda` with respect to the 668 partial order. We have `\lambda \in \mathcal{C}` and `m (\lambda) = 1`. 669 670 - `V \longleftrightarrow \lambda` gives a bijection between 671 irreducible representations and weights `\lambda` in 672 `\mathcal{C}^+`. 673 674 Assuming that `G` is simply-connected (or more generally, reductive 675 with a simply-connected derived group) every dominant weight `\lambda` 676 is the highest weight of a unique irreducible representation 677 `\pi_\lambda`, and `\lambda \mapsto \pi_\lambda` gives a 678 parametrization of the isomorphism classes of irreducible 679 representations of `G` by the dominant weights. 680 681 The *character* of `\pi_\lambda` is the function 682 `\chi_\lambda(g) = tr(\pi_\lambda(g))`. It is determined by its values 683 on `T`. If `\mathbf(z) \in T` and `\mu \in \Lambda`, let us write 684 `\mathbf{z}^\mu` for the value of `\mu` on `\mathbf{z}`. Then the 685 character: 686 687 .. MATH:: 688 689 \chi_\lambda(\mathbf{z}) 690 = 691 \sum_{\mu\in\Lambda}m(\mu)\,\mathbf{z}^\lambda. 692 693 Sometimes this is written 694 695 .. MATH:: 696 697 \chi_\lambda = \sum_{\mu\in\Lambda}m(\mu)\,e^\lambda. 698 699 The meaning of `e^\lambda` is subject to interpretation, but we may 700 regard it as the image of the additive group `\Lambda` in its group 701 algebra. The character is then regarded as an element of this ring, 702 the group algebra of `\Lambda`. 703 704 705 Representations: an example 706 --------------------------- 707 708 .. image:: ../static/wcf1.png 709 :scale: 50 710 711 In this example, `G = \hbox{SL}(3,\mathbb{C})`. We have drawn the 712 weights of an irreducible representation with highest weight `\lambda`. 713 The shaded region is `\mathcal{C}^+`. `\lambda` is a dominant weight, 714 and the labeled vertices are the weights with positive multiplicity in 715 `V(\lambda)`. The weights weights on the outside have `m(\mu) = 1`, 716 while the six interior weights (with double circles) have `m(\mu) = 2`. 717 718 719 .. _`Schur Polynomials`: 720 721 Partitions and Schur polynomials 722 -------------------------------- 723 724 The considerations of this section are particular to type A. We review 725 the relationship between characters of `GL(n,\mathbb{C})` and 726 symmetric function theory. 727 728 A *partition* `\lambda` is a sequence of descending nonnegative 729 integers: 730 731 .. MATH:: 732 733 \lambda 734 = 735 (\lambda_1, \lambda_2, \dots, \lambda_n), 736 \qquad 737 \lambda_1 \ge \lambda_2 \ge \cdots \ge \lambda_n \ge 0. 738 739 We do not distinguish between two partitions if they differ only by 740 some trailing zeros, so `(3, 2) = (3, 2, 0)`. If `l` is the last 741 integer such that `\lambda_l > 0` then we say that `l` is the *length* 742 of `\lambda`. If `k = \sum \lambda_i` then we say that `\lambda` is a 743 *partition* of `k` and write `\lambda \vdash k`. 744 745 A partition of length `\le n=r+1` is therefore a dominant weight of 746 type ``['A',r]``. Not every dominant weight is a partition, since the 747 coefficients in a dominant weight could be negative. Let us say that 748 an element `\mu = (\mu_1, \mu_2, \cdots, \mu_n)` of the ``['A',r]`` 749 root lattice is *effective* if the `\mu_i \ge 0`. Thus an effective 750 dominant weight of ``['A',r]`` is a partition of length `\le n`, where 751 `n = r+1`. 752 753 Let `\lambda` be a dominant weight, and let `\chi_\lambda` be the 754 character of `GL(n,\mathbb{C})` with highest weight `\lambda`. If `k` 755 is any integer we may consider the weight 756 `\lambda' = (\lambda_1+k,\dots,\lambda_n+k)` obtained by adding `k` to 757 each entry. Then `\chi_{\lambda'} = \det^k \otimes \chi_\lambda`. 758 Clearly by choosing `k` large enough, we may make `\lambda'` effective. 759 760 So the characters of irreducible representations of `GL(n,\mathbb{C})` 761 do not all correspond to partitions, but the characters indexed by 762 partitions (effective dominant weights) are enough that we can 763 write any character `\det^{-k}\chi_{\lambda'}` where `\lambda'` is a 764 partition. If we take `k = -\lambda_n` we could also arrange that 765 the last entry in `\lambda` is zero. 766 767 If `\lambda` is an effective dominant weight, then every weight that 768 appears in `\chi_\lambda` is effective. (Indeed, it lies in the convex 769 hull of `w(\lambda)` where `w` runs through the Weyl group `W = S_n`.) 770 This means that if 771 772 .. MATH:: 773 774 g 775 = 776 \left(\begin{array}{ccc} 777 z_1 \\ 778 & \ddots \\ 779 && z_n 780 \end{array}\right) 781 \in GL(n,\mathbb{C}) 782 783 then `\chi_\lambda(g)` is a polynomial in the eigenvalues of `g`. 784 This is the *Schur polynomial* `s_\lambda(z_1,\dots,z_n)`. -
new file doc/en/thematic_tutorials/lie/weight_ring.rst
diff -r 5b338f2e484f -r fc7cc70533c4 doc/en/thematic_tutorials/lie/weight_ring.rst
- + 1 ------------ 2 Weight Rings 3 ------------ 4 5 You may wish to work directly with the weights of a representation. 6 7 ``WeylCharacterRingElements`` are represented internally by a 8 dictionary of their weights with multiplicities. However these are 9 subject to a constraint: the coefficients must be invariant under the 10 action of the Weyl group. 11 12 The ``WeightRing`` is also a ring whose elements are represented 13 internally by a dictionary of their weights with multiplicities, but 14 it is not subject to this constraint of Weyl group invariance. The 15 weights are allowed to be fractional, that is, elements of the ambient 16 space. In other words, the weight ring is the group algebra over the 17 ambient space of the weight lattice. 18 19 To create a ``WeightRing`` first construct the Weyl Character Ring, 20 then create the ``WeightRing`` as follows:: 21 22 sage: A2 = WeylCharacterRing(['A',2]) 23 sage: a2 = WeightRing(A2) 24 25 You may coerce elements of the ``WeylCharacterRing`` into the weight 26 ring. For example, if you want to see the weights of the adjoint 27 representation of `GL(3)`, you may use the method ``mlist``, but 28 another way is to coerce it into the weight ring:: 29 30 sage: ad = A2(1,0,-1) 31 sage: ad.mlist() 32 [[(-1, 1, 0), 1], [(0, 1, -1), 1], [(1, 0, -1), 1], [(0, 0, 0), 2], [(-1, 0, 1), 1], 33 [(0, -1, 1), 1], [(1, -1, 0), 1]] 34 sage: a2(ad) 35 a2(-1,0,1) + a2(-1,1,0) + a2(0,-1,1) + 2*a2(0,0,0) + a2(0,1,-1) + a2(1,-1,0) + a2(1,0,-1) 36 37 For example, the Weyl denominator formula is usually written this way: 38 39 .. MATH:: 40 41 \prod_{\alpha\in\Phi^+}\left(e^{\alpha/2}-e^{-\alpha/2}\right) 42 = 43 \sum_{w\in W} (-1)^{l(w)}e^{w(\rho)}. 44 45 The notation is as follows. Here if `\lambda` is a weight, or more 46 generally, an element of the ambient space, then `e^\lambda` means the 47 image of `\lambda` in the group algebra of the ambient space of the 48 weight lattice `\lambda`. Since this group algebra is just the weight 49 ring, we can interpret `e^\lambda` as its image in the weight ring. 50 51 Let us confirm the Weyl denominator formula for ``A2``:: 52 53 sage: A2 = WeylCharacterRing("A2") 54 sage: a2 = WeightRing(A2) 55 sage: L = A2.space() 56 sage: W = L.weyl_group() 57 sage: rho = A2.coerce_to_sl(L.rho()) 58 sage: lhs = prod(a2(alpha/2)-a2(-alpha/2) for alpha in L.positive_roots()); lhs 59 -a2(-1,0,1) + a2(-1,1,0) + a2(0,-1,1) - a2(0,1,-1) - a2(1,-1,0) + a2(1,0,-1) 60 sage: rhs = sum((-1)^(w.length())*a2(w.action(rho)) for w in W); rhs 61 -a2(-1,0,1) + a2(-1,1,0) + a2(0,-1,1) - a2(0,1,-1) - a2(1,-1,0) + a2(1,0,-1) 62 sage: lhs == rhs 63 True 64 65 Note that we have to be careful to use the right value of `\rho`. The 66 reason for this is explained in :ref:`SLvsGL`. 67 68 We have seen that elements of the ``WeylCharacterRing`` can be coerced 69 into the ``WeightRing``. Elements of the ``WeightRing`` can be coerced 70 into the ``WeylCharacterRing`` *provided* they are invariant under the 71 Weyl group. -
new file doc/en/thematic_tutorials/lie/weyl_character_ring.rst
diff -r 5b338f2e484f -r fc7cc70533c4 doc/en/thematic_tutorials/lie/weyl_character_ring.rst
- + 1 ======================= 2 The Weyl Character Ring 3 ======================= 4 5 6 Weyl character rings 7 -------------------- 8 9 The Weyl character ring has a basis consisting of the irreducible 10 representations of `G`, or equivalently, their characters. The 11 addition and multiplication in the Weyl character ring correspond to 12 direct sum and tensor product of representations. 13 14 15 Methods of the ambient space 16 ---------------------------- 17 18 In Sage, many useful features of the Lie group are available as 19 methods of the ambient space:: 20 21 sage: S = RootSystem("B2").ambient_space(); S 22 Ambient space of the Root system of type ['B', 2] 23 sage: S.roots() 24 [(1, -1), (1, 1), (1, 0), (0, 1), (-1, 1), (-1, -1), (-1, 0), (0, -1)] 25 sage: S.fundamental_weights() 26 Finite family {1: (1, 0), 2: (1/2, 1/2)} 27 sage: S.positive_roots() 28 [(1, -1), (1, 1), (1, 0), (0, 1)] 29 sage: S.weyl_group() 30 Weyl Group of type ['B', 2] (as a matrix group acting on the ambient space) 31 32 33 Methods of the Weyl character ring 34 ---------------------------------- 35 36 If you are going to work with representations, you may want to create 37 a *Weyl Character ring*. Many methods of the ambient space are 38 available as methods of the Weyl character ring:: 39 40 sage: B3 = WeylCharacterRing("B3") 41 sage: B3.fundamental_weights() 42 Finite family {1: (1, 0, 0), 2: (1, 1, 0), 3: (1/2, 1/2, 1/2)} 43 sage: B3.simple_roots() 44 Finite family {1: (1, -1, 0), 2: (0, 1, -1), 3: (0, 0, 1)} 45 sage: B3.dynkin_diagram() 46 O---O=>=O 47 1 2 3 48 B3 49 50 Other useful methods of the Weyl character ring include: 51 52 - ``cartan_type`` 53 54 - ``highest_root`` 55 56 - ``positive_root`` 57 58 - ``extended_dynkin_diagram`` 59 60 - ``rank`` 61 62 Some methods of the ambient space are not implemented as methods of 63 the Weyl character ring. However, the ambient space itself is a 64 method, and so you have access to its methods from the Weyl character 65 ring:: 66 67 sage: B3.space().weyl_group() 68 Weyl Group of type ['B', 3] (as a matrix group acting on the ambient space) 69 sage: B3.space() 70 Ambient space of the Root system of type ['B', 3] 71 sage: B3.space().rho() 72 (5/2, 3/2, 1/2) 73 sage: B3.cartan_type() 74 ['B', 3] 75 76 77 Coroot notation 78 --------------- 79 80 It is useful to give the Weyl character ring a name that corresponds 81 to its Cartan type. This has the effect that the ring can parse its 82 own output:: 83 84 sage: G2 = WeylCharacterRing("G2") 85 sage: [G2(fw) for fw in G2.fundamental_weights()] 86 [G2(1,0,-1), G2(2,-1,-1)] 87 sage: G2(1,0,-1) 88 G2(1,0,-1) 89 90 Actually the prefix for the ring is configurable, so you don't really 91 have to call this ring ``G2``. Type ``WeylCharacterRing?`` at the 92 ``sage:`` prompt for details. 93 94 There is one important option that you may want to know about. This 95 is *coroot notation*. You select this by specifying the option 96 ``style="coroots"`` when you create the ring. With the coroot style, 97 the fundamental weights are represented ``(1,0,0, ...)``, 98 ``(0,1,0,...)`` instead of as vectors in the ambient space:: 99 100 sage: B3 = WeylCharacterRing("B3", style="coroots") 101 sage: [B3(fw) for fw in B3.fundamental_weights()] 102 [B3(1,0,0), B3(0,1,0), B3(0,0,1)] 103 sage: B3(0,0,1) 104 B3(0,0,1) 105 sage: B3(0,0,1).degree() 106 8 107 108 The last representation is the eight dimensional spin representation 109 of `G = spin(7)`, the double cover of the orthogonal group `SO(7)`. In 110 the default notation it would be represented ``B3(1/2,1/2,1/2)``. 111 112 With the coroot notation every irreducible representation is 113 represented ``B3(a,b,c)`` where ``a``, ``b`` and ``c`` are nonnegative 114 integers. This is often convenient. For many purposes the coroot style 115 is preferable. 116 117 One disadvantage: in the coroot style the Lie group or Lie algebra is 118 treated as semisimple, so you lose the distinction between `GL(n)` and 119 `SL(n)`; you also some information about representations of E6 and E7 120 for the same reason. 121 122 123 Tensor products of representations 124 ---------------------------------- 125 126 The multiplication in the Weyl character ring corresponds to tensor 127 product. This gives us a convenient way of decomposing a tensor 128 product into irreducibles:: 129 130 sage: B3 = WeylCharacterRing("B3") 131 sage: fw = B3.fundamental_weights() 132 sage: spinweight = fw[3]; spinweight 133 (1/2, 1/2, 1/2) 134 sage: spin = B3(spinweight) 135 sage: spin.degree() 136 8 137 sage: chi = spin*spin; chi 138 B3(0,0,0) + B3(1,0,0) + B3(1,1,0) + B3(1,1,1) 139 140 We have taken the eight-dimensional spin representation and tensored 141 with itself. We see that the tensor square splits into four 142 irreducibles, each with multiplicity one. 143 144 The highest weights that appear here are available (with their 145 coefficients) are available through the method ``hlist``:: 146 147 sage: chi.hlist() 148 [[(1, 1, 1), 1], [(1, 0, 0), 1], [(1, 1, 0), 1], [(0, 0, 0), 1]] 149 sage: [p[0] for p in chi.hlist()] 150 [(1, 1, 1), (1, 0, 0), (1, 1, 0), (0, 0, 0)] 151 sage: [B3(p[0]) for p in chi.hlist()] 152 [B3(1,1,1), B3(1,0,0), B3(1,1,0), B3(0,0,0)] 153 sage: [B3(p[0]).degree() for p in chi.hlist()] 154 [35, 7, 21, 1] 155 sage: sum(B3(p[0]).degree() for p in chi.hlist()) 156 64 157 158 Here we've extracted the individual representations, computed 159 their degrees and checked that they sum to 64. 160 161 162 Weights 163 ------- 164 165 The weights of the character are (with their coefficients) are 166 available through the method ``mlist``. Continuing from the example in 167 the last section:: 168 169 sage: chi.mlist() 170 [[(0, 1, 0), 4], [(1, -1, 1), 1], [(-1, -1, 1), 1], 171 [(0, 1, 1), 2], [(0, -1, -1), 2], [(0, -1, 0), 4], 172 [(1, -1, -1), 1], [(0, 1, -1), 2], [(-1, 0, 1), 2], 173 [(-1, 1, -1), 1], [(-1, -1, 0), 2], [(-1, 1, 0),2], 174 [(1, 0, 0), 4], [(-1, 0, 0), 4], [(1, 0, -1), 2], 175 [(0, 0, -1), 4], [(0, -1, 1), 2], [(1, 1, -1), 1], 176 [(0, 0, 1), 4], [(-1, 0, -1), 2], [(-1, 1, 1), 1], 177 [(1, 0, 1), 2], [(0, 0, 0), 8], [(-1, -1, -1), 1], 178 [(1, 1, 1), 1], [(1, 1, 0), 2], [(1, -1, 0), 2]] 179 180 181 Frobenius-Schur indicator 182 ------------------------- 183 184 The Frobeinus-Schur indicator of an irreducible representation of a 185 compact Lie group `G` with character `\chi` is: 186 187 .. MATH:: 188 189 \int_G\chi(g^2) \, dg 190 191 The Haar measure is normalized so that `vol(G) = 1`. The 192 Frobenius-Schur indicator equals 1 if the representation is real 193 (orthogonal), `-1` if it is quaternionic (symplectic) and 0 if it is 194 complex (not self-contragredient). This is a method of weight ring 195 elements corresponding to irreducible representations. Let us compute 196 the Frobenius-Schur indicators of the spin representations of some 197 odd spin groups:: 198 199 sage: for r in [1..4]: 200 ....: R = WeylCharacterRing(['B',r]) 201 ....: spinweight = R.fundamental_weights().list()[-1] 202 ....: print r, R(spinweight).frobenius_schur_indicator() 203 ....: 204 1 -1 205 2 -1 206 3 1 207 4 1 208 209 We see that the spin representations of `spin(3)` and `spin(5)` are 210 symplectic, while those of `spin(7)` and `spin(9)` are orthogonal. 211 212 213 Symmetric and exterior square 214 ----------------------------- 215 216 The tensor square of any representation decomposes as the direct sum 217 of the symmetric and exterior squares:: 218 219 sage: C4 = WeylCharacterRing("C4",style="coroots") 220 sage: chi = C4(1,0,0,0); chi.degree() 221 8 222 sage: chi.symmetric_square() 223 C4(2,0,0,0) 224 sage: chi.exterior_square() 225 C4(0,0,0,0) + C4(0,1,0,0) 226 sage: chi^2 == chi.symmetric_square() + chi.exterior_square() 227 True 228 229 Since in this example the exterior square contains the trivial 230 representation we expect the Frobenius-Schur indicator to be `-1`, and 231 indeed it is:: 232 233 sage: chi.frobenius_schur_indicator() 234 -1 235 236 This is not surprising since this is the standard representation 237 of a symplectic group, which is symplectic *by definition*! 238 239 240 Weyl dimension formula 241 ---------------------- 242 243 If the representation is truly large you will not be able to construct 244 it in the Weyl character ring, since internally it is represented by a 245 dictionary of its weights. If you want to know its degree, you can 246 still compute that since Sage implements the Weyl dimension 247 formula. The degree of the representation is implemented as a method 248 of its highest weight vector:: 249 250 sage: L = RootSystem("E8").ambient_space() 251 sage: [L.weyl_dimension(f) for f in L.fundamental_weights()] 252 [3875, 147250, 6696000, 6899079264, 146325270, 2450240, 30380, 248] 253 254 It is a fact that if `\rho` is the Weyl vector then the degree of the 255 irreducible representation with highest weight `\rho` equals `2^N` 256 where `N` is the number of positive roots. Let us check this for 257 `E_8`. In this case `N = 120`:: 258 259 sage: len(L.positive_roots()) 260 120 261 sage: 2^120 262 1329227995784915872903807060280344576 263 sage: L.weyl_dimension(L.rho()) 264 1329227995784915872903807060280344576 265 266 267 .. _SLvsGL: 268 269 SL versus GL 270 ------------ 271 272 Sage takes the weight space for type ``['A',r]`` to be `r+1` 273 dimensional. As a biproduct, if you create the Weyl character ring 274 with the command:: 275 276 sage: A2 = WeylCharacterRing("A2") 277 278 Then you are effectively working with `GL(3)` instead of `SL(3)`. For 279 example, the determinant is the character ``A2(1,1,1)``. However, as 280 we will explain later, you can work with `SL(3)` if you like, so long 281 as you are willing to work with fractional weights. On the other hand 282 if you create the Weyl character ring with the command:: 283 284 sage: A2 = WeylCharacterRing("A2", style="coroots") 285 286 Then you are working with `SL(3)`. 287 288 There are some advantages to this arrangement. 289 290 - The group `GL(r+1)` arises frequently in practice. For example, even 291 if you care mainly about semisimple groups, the group `GL(r+1)` may 292 arise as a Levi subgroup. 293 294 - It avoids fractional weights. If you want to work with `SL(3)` the 295 fundamental weights are ``(2/3,-1/3,-1/3)`` and 296 ``(1/3,1/3,-2/3)``. If you work instead with `GL(3)`, they are 297 ``(1,0,0)`` and ``(1,1,0)``. For many mathematical purposes it 298 doesn't make any difference which you use. This is because the 299 difference between ``(2/3,-1/3,-1/3)`` and ``(1,0,0)`` is a vector 300 that is orthogonal to all the simple roots. Thus these vectors are 301 interchangeable. But for convenience avoiding fractional weights is 302 advantageous. 303 304 However if you want to be an `SL` purist, Sage will support you. The 305 weight space for `SL(3)` can be taken to be the hyperplane in 306 `\mathbb{Q}^3` consisting of vectors `(a,b,c)` with 307 `a+b+c = 0`. The fundamental weights for SL(3) are then 308 ``(2/3,-1/3,-1/3)`` and ``(1/3,1/3,-2/3)``, though Sage will tell you 309 they are ``(1,0,0)`` and ``(1,1,0)``. The work-around is to filter 310 them through the method ``coerce_to_sl`` as follows:: 311 312 sage: A2 = WeylCharacterRing("A2") 313 sage: [fw1,fw2] = [A2.coerce_to_sl(w) for w in A2.fundamental_weights()] 314 sage: [standard, contragredient] = [A2(fw1), A2(fw2)] 315 sage: standard, contragredient 316 (A2(2/3,-1/3,-1/3), A2(1/3,1/3,-2/3)) 317 sage: standard*contragredient 318 A2(0,0,0) + A2(1,0,-1) 319 320 Sage is not confused by the fractional weights. Note that if you use 321 coroot notation, you are working with SL automatically:: 322 323 sage: A2 = WeylCharacterRing("A2", style="coroots") 324 sage: A2(1,0).mlist() 325 [[(2/3, -1/3, -1/3), 1], [(-1/3, 2/3, -1/3), 1], [(-1/3, -1/3, 2/3), 1]] 326 327 There is no convenient way to create the determinant in the Weyl 328 character ring if you adopt the coroot style. 329 330 Just as we coerced the fundamental weights into the `SL` weight 331 lattice, you may need to coerce the Weyl vector `\rho` if you are 332 working with `SL`. The default value for `\rho` in type `A_r` is 333 `(r,r-1,\dots,0)`, but if you are an SL purist you want 334 335 .. MATH:: 336 337 \left(\frac{r}{2}, \frac{r}{2}-1,\dots,-\frac{r}{2}\right). 338 339 Therefore take the value of `\rho` that you get from the method of the 340 ambient space and coerce it into `SL`:: 341 342 sage: rho = A2.coerce_to_sl(A2.space().rho()); rho 343 (1, 0, -1) 344 sage: rho == (1/2)*sum(a for a in A2.space().positive_roots()) 345 True 346 347 You do not need to do this for other Cartan types. If you are working 348 with (say) `F4` then a `\rho` is a `\rho` is a `\rho`:: 349 350 sage: F4 = WeylCharacterRing("F4") 351 sage: L = F4.space() 352 sage: rho = L.rho() 353 sage: rho == (1/2)*sum(a for a in L.positive_roots()) 354 True 355 356 357 Caching 358 ------- 359 360 You may improve the performance of a Weyl character ring by specifying 361 ``cache=True`` when you create the ring. This means that the results 362 of intermediate computations are saved. The amount of improvement 363 would depend on the type of computation you are doing. -
new file doc/en/thematic_tutorials/lie/weyl_groups.rst
diff -r 5b338f2e484f -r fc7cc70533c4 doc/en/thematic_tutorials/lie/weyl_groups.rst
- + 1 ------------------------------------------------ 2 Weyl Groups, Coxeter Groups and the Bruhat Order 3 ------------------------------------------------ 4 5 6 Classical and affine Weyl groups 7 -------------------------------- 8 9 You can create Weyl groups and affine Weyl groups for any root 10 system. A variety of methods are available for these. Some of these 11 are methods are available for general Coxeter groups. 12 13 By default, elements of the Weyl group are represented as matrices:: 14 15 sage: WeylGroup("A3").simple_reflection(1) 16 [0 1 0 0] 17 [1 0 0 0] 18 [0 0 1 0] 19 [0 0 0 1] 20 21 You may prefer a notation in which elements are written out as 22 products of simple reflections. In order to implement this you need to 23 specify a prefix, typically ``"s"``:: 24 25 sage: W = WeylGroup("A3",prefix="s") 26 sage: [s1,s2,s3] = W.simple_reflections() 27 sage: (s1*s2*s1).length() 28 3 29 sage: W.long_element() 30 s1*s2*s3*s1*s2*s1 31 sage: s1*s2*s3*s1*s2*s1 == s3*s2*s1*s3*s2*s3 32 True 33 34 The Weyl group acts on the ambient space of the root lattice, which is 35 accessed by the method ``domain``. To illustrate this, recall that if `w_0` is 36 the long element then `\alpha \mapsto -w_0(\alpha)` is a permutation of the 37 simple roots. We may compute this as follows:: 38 39 sage: W = WeylGroup("E6",prefix="s") 40 sage: w0 = W.long_element(); w0 41 s1*s3*s4*s5*s6*s2*s4*s5*s3*s4*s1*s3*s2*s4*s5*s6*s2*s4*s5*s3*s4*s1*s3*s2*s4*s5* 42 s3*s4*s1*s3*s2*s4*s1*s3*s2*s1 43 sage: sr = W.domain().simple_roots().list(); sr 44 [(1/2, -1/2, -1/2, -1/2, -1/2, -1/2, -1/2, 1/2), (1, 1, 0, 0, 0, 0, 0, 0), 45 (-1, 1, 0, 0, 0, 0, 0, 0), (0, -1, 1, 0, 0, 0, 0, 0), (0, 0, -1, 1, 0, 0, 0, 0), 46 (0, 0, 0, -1, 1, 0, 0, 0)] 47 sage: [-w0.action(a) for a in sr] 48 [(0, 0, 0, -1, 1, 0, 0, 0), (1, 1, 0, 0, 0, 0, 0, 0), (0, 0, -1, 1, 0, 0, 0, 0), 49 (0, -1, 1, 0, 0, 0, 0, 0), (-1, 1, 0, 0, 0, 0, 0, 0), 50 (1/2, -1/2, -1/2, -1/2, -1/2, -1/2, -1/2, 1/2)] 51 52 We may ask when this permutation is trivial. If it is nontrivial it 53 induces an automorphism of the Dynkin diagram, so it must be 54 nontrivial when the Dynkin diagram has no automorphism. But if there 55 is a nontrivial automorphism, the permutation might or might not be 56 trivial:: 57 58 sage: def roots_not_permuted(ct): 59 ... W = WeylGroup(ct) 60 ... w0 = W.long_element() 61 ... sr = W.domain().simple_roots() 62 ... return all(a == -w0.action(a) for a in sr) 63 ... 64 sage: for ct in [CartanType(['D',r]) for r in [2..8]]: 65 ... print ct,roots_not_permuted(ct) 66 ... 67 ['D', 2] True 68 ['D', 3] False 69 ['D', 4] True 70 ['D', 5] False 71 ['D', 6] True 72 ['D', 7] False 73 ['D', 8] True 74 75 If `\alpha` is a root let `r_\alpha` denote the reflection in the 76 hyperplane that is orthogonal to `\alpha`. We reserve the notation `s_\alpha` 77 for the simple reflections, that is, the case where `\alpha` is a simple 78 root. The reflections are just the conjugates of the simple reflections. 79 80 The reflections are the keys in a finite family, which is a wrapper 81 around a python dictionary. The values are the positive roots, so 82 given a reflection, you can look up the corresponding root. If you 83 want a list of all reflections, use the method ``keys`` for the 84 family of reflections:: 85 86 sage: W = WeylGroup("B3",prefix="s") 87 sage: [s1,s2,s3] = W.simple_reflections() 88 sage: ref = W.reflections(); ref 89 sage: Finite family {s1*s2*s1: (1, 0, -1), s2: (0, 1, -1), s3*s2*s3: (0, 1, 1), 90 s3*s1*s2*s3*s1: (1, 0, 1), s1: (1, -1, 0), s2*s3*s1*s2*s3*s1*s2: (1, 1, 0), 91 s1*s2*s3*s2*s1: (1, 0, 0), s2*s3*s2: (0, 1, 0), s3: (0, 0, 1)} 92 sage: ref[s3*s2*s3] 93 (0, 1, 1) 94 sage: ref.keys() 95 [s1*s2*s1, s2, s3*s2*s3, s2*s3*s1*s2*s3*s1*s2, s1, s3*s1*s2*s3*s1, s1*s2*s3*s2*s1, s2*s3*s2, s3] 96 97 If instead you want a dictionary whose keys are the roots and whose 98 values are the reflections, you may use the inverse family:: 99 100 sage: altref = W.reflections().inverse_family(); altref 101 Finite family {(1, 0, 0): s1*s2*s3*s2*s1, (1, 0, 1): s3*s1*s2*s3*s1, (0, 1, 0): s2*s3*s2, 102 (0, 1, -1): s2, (1, 0, -1): s1*s2*s1, (0, 1, 1): s3*s2*s3, (1, 1, 0): s2*s3*s1*s2*s3*s1*s2, 103 (0, 0, 1): s3, (1, -1, 0): s1} 104 sage: [a1,a2,a3]=W.domain().simple_roots() 105 sage: a1+a2+a3 106 (1, 0, 0) 107 sage: altref[a1+a2+a3] 108 s1*s2*s3*s2*s1 109 110 The Weyl group is implemented as a GAP matrix group. You therefore can 111 display its character table. The character table is returned as a 112 string, which you can print:: 113 114 sage: print WeylGroup("D4").character_table() 115 CT1 116 117 2 6 4 5 1 3 5 5 4 3 3 1 4 6 118 3 1 . . 1 . . . . . . 1 . 1 119 120 1a 2a 2b 6a 4a 2c 2d 2e 4b 4c 3a 4d 2f 121 122 X.1 1 1 1 1 1 1 1 1 1 1 1 1 1 123 X.2 1 -1 1 1 -1 1 1 -1 -1 -1 1 1 1 124 X.3 2 . 2 -1 . 2 2 . . . -1 2 2 125 X.4 3 -1 3 . -1 -1 -1 -1 1 1 . -1 3 126 X.5 3 -1 -1 . 1 3 -1 -1 -1 1 . -1 3 127 X.6 3 1 3 . 1 -1 -1 1 -1 -1 . -1 3 128 X.7 3 1 -1 . -1 3 -1 1 1 -1 . -1 3 129 X.8 3 -1 -1 . 1 -1 3 -1 1 -1 . -1 3 130 X.9 3 1 -1 . -1 -1 3 1 -1 1 . -1 3 131 X.10 4 -2 . -1 . . . 2 . . 1 . -4 132 X.11 4 2 . -1 . . . -2 . . 1 . -4 133 X.12 6 . -2 . . -2 -2 . . . . 2 6 134 X.13 8 . . 1 . . . . . . -1 . -8 135 136 137 Affine Weyl groups 138 ------------------ 139 140 Affine Weyl groups may be created the same way. You simply begin with 141 an affine Cartan type:: 142 143 sage: W = WeylGroup(['A',2,1],prefix="s") 144 sage: W.cardinality() 145 +Infinity 146 sage: [s0,s1,s2] = W.simple_reflections() 147 sage: s0*s1*s2*s1*s0 148 s0*s1*s2*s1*s0 149 150 The affine Weyl group differs from a classical Weyl group since it is 151 infinite. The associated classical Weyl group is a subgroup that may be 152 extracted as follows:: 153 154 sage: W = WeylGroup(['A',2,1],prefix="s") 155 sage: W1 = W.classical(); W1 156 Parabolic Subgroup of the Weyl Group of type ['A', 2, 1] (as a matrix group 157 acting on the root space) 158 sage: W1.simple_reflections() 159 Finite family {1: s1, 2: s2} 160 161 Although ``W1`` in this example is isomorphic to ``WeylGroup("A2")`` it 162 has a different matrix realization:: 163 164 sage: for s in WeylGroup(['A',2,1]).classical().simple_reflections(): 165 ... print s 166 ... print 167 ... 168 [ 1 0 0] 169 [ 1 -1 1] 170 [ 0 0 1] 171 <BLANKLINE> 172 [ 1 0 0] 173 [ 0 1 0] 174 [ 1 1 -1] 175 176 sage: for s in WeylGroup(['A',2]).simple_reflections(): 177 ... print s 178 ... print 179 ... 180 [0 1 0] 181 [1 0 0] 182 [0 0 1] 183 <BLANKLINE> 184 [1 0 0] 185 [0 0 1] 186 [0 1 0] 187 188 189 Bruhat order 190 ------------ 191 192 The Bruhat partial order on the Weyl group may be defined as follows. 193 194 If `u,v \in W`, find a reduced expression of `v` into a product of 195 simple reflections: `v = s_1 \cdots s_n`. (It is not assumed that the 196 `s_i` are distinct.) If omitting some of the `s_i` gives a product 197 that represents `u`, then `u \le v`. 198 199 The Bruhat order is implemented in Sage as a method of Coxeter groups, 200 and so it is available for Weyl groups, classical or affine. 201 202 If `u`, `v \in W` then ``u.bruhat_le(v)`` returns true of 203 `u \le v` in the Bruhat order. 204 205 If `u \le v` then The *Bruhat interval* `[u,v]` is defined to be the 206 set of all `t` such that `u \le t \le v`. One might try to implement 207 this as follows:: 208 209 sage: W = WeylGroup("A2",prefix="s") 210 sage: [s1,s2] = W.simple_reflections() 211 sage: def bi(u,v) : return [t for t in W if u.bruhat_le(t) and t.bruhat_le(v)] 212 ... 213 sage: bi(s1,s1*s2*s1) 214 [s1, s1*s2, s1*s2*s1, s2*s1] 215 216 This would not be a good definition since it would fail if `W` is 217 affine and be inefficient of `W` is large. Sage has a Bruhat interval 218 method:: 219 220 sage: W.bruhat_interval(s1,s1*s2*s1) 221 [s1*s2*s1, s2*s1, s1*s2, s1] 222 223 This works even for affine Weyl groups. 224 225 226 The Bruhat graph 227 ---------------- 228 229 References: 230 231 - [Carrell1994]_ 232 233 - [Deodhar1977]_ 234 235 - [Dyer1993]_ 236 237 - [BumpNakasuji2010]_ 238 239 The *Bruhat Graph* is a structure on the Bruhat interval. Suppose that 240 `u \le v`. The vertices of the graph are `x` with `u \le x \le v`. 241 There is a vertex connecting `x,y \in [x,y]` if `x = y.r` where `r` is 242 a reflection. If this is true then either `x < y` or `y < x`. 243 244 If `W` is a classical Weyl group the Bruhat graph is implemented in Sage:: 245 246 sage: W = WeylGroup("A3",prefix="s") 247 sage: [s1,s2,s3] = W.simple_reflections() 248 sage: bg = W.bruhat_graph(s2,s2*s1*s3*s2); bg 249 Digraph on 10 vertices 250 sage: bg.show3d() 251 252 The Bruhat graph has interesting regularity properties that were 253 investigated by Carrell and Peterson. It is a regular graph if both 254 the Kazhdan Lusztig polynomials `P_{u,v}` and `P_{w_0v,w_0u}` are 1, 255 where `w_0` is the long Weyl group element. It is closely related to 256 the *Deodhar conjecture* which was proved by Deodhar, Carrell and 257 Peterson, Dyer and Polo. 258 259 Deodhar proved that if `u < v` then the Bruhat interval `[u,v]` 260 contains as many elements of odd length as it does of even length. We 261 observe that often this can be strengthened: if there exists a 262 reflection `r` such that left (or right) multiplication by `r` takes 263 the Bruhat interval `[u,v]` to itself, then this gives an explicit 264 bijection between the elements of odd and even length in `[u,v]`. 265 266 Let us search for such reflections. Put the following commands in a 267 file and load or attach the file:: 268 269 W = WeylGroup("A3",prefix="s") 270 [s1,s2,s3]=W.simple_reflections() 271 ref = W.reflections().keys() 272 273 def find_reflection(u,v): 274 bi = W.bruhat_interval(u,v) 275 ret = [] 276 for r in ref: 277 if all( r*x in bi for x in bi): 278 ret.append(r) 279 return ret 280 281 Now inspect the output of this command:: 282 283 sage: for v in W: 284 ... for u in W.bruhat_interval(1,v): 285 ... if u != v: 286 ... print u,v,find_reflection(u,v) 287 288 This shows that the Bruhat interval is stabilized by a reflection for 289 all pairs `(u,v)` with `u < v` except the following two: 290 `s_3s_1,s_1s_2s_3s_2s_1` and `s_2,s_2s_3s_1s_2`. Now these are 291 precisely the pairs such that `u\prec v` in the notation of Kazhdan 292 and Lusztig, and `l(v)-l(u) > 1`. One should not rashly suppose that 293 this is a general characterization of the pairs `(u,v)` such that no 294 reflection stabilizes the Bruhat interval, for this is not true, but 295 it does suggest that the question is worthy of further investigation. -
sage/algebras/iwahori_hecke_algebra.py
diff -r 5b338f2e484f -r fc7cc70533c4 sage/algebras/iwahori_hecke_algebra.py
a b 75 75 `(T_i-q_1)*(T_i-q_2) == 0` 76 76 77 77 together with the braid relations `T_i T_j T_i ... == T_j T_i T_j ...`, 78 where the number of terms on both sides is `k/2` with `k` the order of79 `s_i s_j` in theCoxeter group.78 where the number of terms on both sides is the order of `s_i s_j` in the 79 Coxeter group. 80 80 81 81 Weyl group elements form a basis of the Iwahori Hecke algebra `H` 82 82 with the property that if `w1` and `w2` are Coxeter group elements
