Skip to content

CartanMatrix ​

The Cartan matrix of the type in Bourbaki's numbering: the entry at row i and column j is the pairing of the simple root i with the coroot j.

CartanMatrix(cartanType)The Cartan matrix of the type in Bourbaki's numbering: the entry at row i and column j is the pairing of the simple root i with the coroot j.
Typed signatures
TypePackageApplies
(cartan_type) -> list<list<integer>>combinatoricsalways

Domain: Cartan type statistics

Details
  • Defined over CartanType as an expression in _x, evaluated by compute-engine — the definition IS the implementation.
  • Takes a CartanType and nothing else — it reads values against their positions, or walks the orbits, so it needs the bijection. Applying it to a bare list is a type error, not a wrong answer.

Definition

Epsil, as the implementation runs it.

on CartanType, over _x

Apply((mx_init: list<list<integer>>) => Fold((mx: list<list<integer>>, mi) => Apply(
                                                                                     (mx_next: list<list<integer>>) => mx_next,
                                                                                     Join(
                                                                                           mx,
                                                                                           [Apply((my_init: list<integer>) => Fold((my: list<integer>, mj) => Apply(
                                                                                                                                                                     (my_next: list<integer>) => my_next,
                                                                                                                                                                     Join(
                                                                                                                                                                           my,
                                                                                                                                                                           [2 if mi == mj else (-1 if Abs(mi - mj) ==
                                                                                                                                                                                                      1 else 0) if _x[1] == "A" else ((-2 if mi ==
                                                                                                                                                                                                                                            _x[2] - 1 &&
                                                                                                                                                                                                                                            mj == _x[2] else -1) if Abs(mi - mj) ==
                                                                                                                                                                                                                                                         1 else 0) if _x[1] == "B" else ((-2 if mi == _x[2] &&
                                                                                                                                                                                                                                                                                               mj ==
                                                                                                                                                                                                                                                                                               _x[2] - 1 else -1) if Abs(mi - mj) ==
                                                                                                                                                                                                                                                                                                            1 else 0) if _x[1] == "C" else (-1 if mi ==
                                                                                                                                                                                                                                                                                                                                                 _x[2] - 2 &&
                                                                                                                                                                                                                                                                                                                                                 mj == _x[2] ||
                                                                                                                                                                                                                                                                                                                                                 mi == _x[2] &&
                                                                                                                                                                                                                                                                                                                                                 mj ==
                                                                                                                                                                                                                                                                                                                                                 _x[2] - 2 else -1 if Abs(mi - mj) ==
                                                                                                                                                                                                                                                                                                                                                             1 &&
                                                                                                                                                                                                                                                                                                                                                             mi < _x[2] &&
                                                                                                                                                                                                                                                                                                                                                             mj < _x[2] else 0) if _x[1] == "D" else (-1 if mi == 2 &&
                                                                                                                                                                                                                                                                                                                                                                                                  mj == 4 ||
                                                                                                                                                                                                                                                                                                                                                                                                  mi == 4 &&
                                                                                                                                                                                                                                                                                                                                                                                                  mj == 2 else -1 if mi == 1 &&
                                                                                                                                                                                                                                                                                                                                                                                                              mj == 3 ||
                                                                                                                                                                                                                                                                                                                                                                                                              mi == 3 &&
                                                                                                                                                                                                                                                                                                                                                                                                              mj == 1 else -1 if mi > 2 &&
                                                                                                                                                                                                                                                                                                                                                                                                                          mj > 2 &&
                                                                                                                                                                                                                                                                                                                                                                                                                          Abs(mi - mj) ==
                                                                                                                                                                                                                                                                                                                                                                                                                          1 else 0) if _x[1] == "E" else ((-2 if mi == 2 &&
                                                                                                                                                                                                                                                                                                                                                                                                                                                                mj == 3 else -1) if Abs(mi - mj) ==
                                                                                                                                                                                                                                                                                                                                                                                                                                                                             1 else 0) if _x[1] == "F" else (-3 if mi == 2 &&
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  mj == 1 else -1) if Abs(mi - mj) ==
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               1 else 0],
                                                                                                                                                                         ),
                                                                                                                                                                   ), my_init, Range(1, _x[2])), [])],
                                                                                         ),
                                                                                   ), mx_init, Range(1, _x[2])), [])

Examples

Basic #

the type D5D_5

live ↗
InCartanMatrix(CartanType⁡((D,5)))\mathrm{CartanMatrix}(\operatorname{CartanType}((\text{D},5)))Out[[2,−1,0,0,0],[−1,2,−1,0,0],[0,−1,2,−1,−1],[0,0,−1,2,0],[0,0,−1,0,2]]\bigl\lbrack\bigl\lbrack2, -1, 0, 0, 0\bigr\rbrack, \bigl\lbrack-1, 2, -1, 0, 0\bigr\rbrack, \bigl\lbrack0, -1, 2, -1, -1\bigr\rbrack, \bigl\lbrack0, 0, -1, 2, 0\bigr\rbrack, \bigl\lbrack0, 0, -1, 0, 2\bigr\rbrack\bigr\rbrack

the type E6E_6

live ↗
InCartanMatrix(CartanType⁡((E,6)))\mathrm{CartanMatrix}(\operatorname{CartanType}((\text{E},6)))Out[[2,0,−1,0,0,0],[0,2,0,−1,0,0],[−1,0,2,−1,0,0],[0,−1,−1,2,−1,0],[0,0,0,−1,2,−1],[0,0,0,0,−1,2]]\bigl\lbrack\bigl\lbrack2, 0, -1, 0, 0, 0\bigr\rbrack, \bigl\lbrack0, 2, 0, -1, 0, 0\bigr\rbrack, \bigl\lbrack-1, 0, 2, -1, 0, 0\bigr\rbrack, \bigl\lbrack0, -1, -1, 2, -1, 0\bigr\rbrack, \bigl\lbrack0, 0, 0, -1, 2, -1\bigr\rbrack, \bigl\lbrack0, 0, 0, 0, -1, 2\bigr\rbrack\bigr\rbrack
Properties #

the Cartan matrix of A2A_2

live ↗
InCartanMatrix(CartanType⁡(("A",2)))\mathrm{CartanMatrix}(\operatorname{CartanType}(("A",2)))Out[[2,−1],[−1,2]]\bigl\lbrack\bigl\lbrack2, -1\bigr\rbrack, \bigl\lbrack-1, 2\bigr\rbrack\bigr\rbrack

Known value · Humphreys, Introduction to Lie Algebras and Representation Theory, section 11.4

the Cartan matrix of B2B_2

live ↗
InCartanMatrix(CartanType⁡((B,2)))\mathrm{CartanMatrix}(\operatorname{CartanType}((\text{B},2)))Out[[2,−2],[−1,2]]\bigl\lbrack\bigl\lbrack2, -2\bigr\rbrack, \bigl\lbrack-1, 2\bigr\rbrack\bigr\rbrack

Known value · Humphreys, Introduction to Lie Algebras and Representation Theory, section 11.4

the Cartan matrix of G2G_2

live ↗
InCartanMatrix(CartanType⁡((G,2)))\mathrm{CartanMatrix}(\operatorname{CartanType}((\text{G},2)))Out[[2,−1],[−3,2]]\bigl\lbrack\bigl\lbrack2, -1\bigr\rbrack, \bigl\lbrack-3, 2\bigr\rbrack\bigr\rbrack

Known value · Humphreys, Introduction to Lie Algebras and Representation Theory, section 11.4

About
Examples5