Skip to content

FullyCommutativeElementCount ​

The fully commutative elements of the Weyl group: the Catalan number C(n + 1) for A_n, (n + 2) C(n) - 1 for B_n and C_n, (n + 3) C(n) / 2 - 1 for D_n (Stembridge).

✓ checked against that system · ! checked, with disagreements (hover a chip)FindStatSt001653via CartanType✓
FullyCommutativeElementCount(cartanType)The fully commutative elements of the Weyl group: the Catalan number C(n + 1) for A_n, (n + 2) C(n) - 1 for B_n and C_n, (n + 3) C(n) / 2 - 1 for D_n (Stembridge).
Typed signatures
TypePackageApplies
(cartan_type) -> numbercombinatoricsalways

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

(Product(Map(Function(_x[2] + 1 + j, j), Range(2, _x[2] + 1, 1))) /
 Product(Range(2, _x[2] + 1, 1)) if (Product(Map(Function(_x[2] + 1 + j, j), Range(2, _x[2] + 1, 1))) + 1) % 2 ==
     (Product(Map(Function(_x[2] + 1 + j, j), Range(2, _x[2] + 1, 1))) % 2 + 1) %
     2 else 0 / 0) if _x[1] == "A" else (_x[2] + 2) * (Product(Map(
                                                                   Function(_x[2] +
                                                                            j, j),
                                                                   Range(
                                                                          2,
                                                                          _x[2],
                                                                          1,
                                                                        ),
                                                                 )) /
                                                      Product(Range(2, _x[2], 1)) if (Product(Map(
                                                                        Function(
                                                                                  _x[2] + j,
                                                                                  j,
                                                                                ),
                                                                        Range(2, _x[2], 1),
                                                                      )) + 1) % 2 ==
                                                          (Product(Map(
                                                                        Function(
                                                                                  _x[2] + j,
                                                                                  j,
                                                                                ),
                                                                        Range(2, _x[2], 1),
                                                                      )) % 2 + 1) %
                                                          2 else 0 / 0) - 1 if _x[1] ==
                                                                              "B" else (_x[2] + 2) *
                                                                                    (Product(Map(
                                                                                                  Function(_x[2] + j, j),
                                                                                                  Range(2, _x[2], 1),
                                                                                                )) /
                                                                                     Product(Range(2, _x[2], 1)) if (Product(Map(
                                                                                                       Function(_x[2] + j, j),
                                                                                                       Range(2, _x[2], 1),
                                                                                                     )) +
                                                                                          1) %
                                                                                         2 ==
                                                                                         (Product(Map(
                                                                                                       Function(_x[2] + j, j),
                                                                                                       Range(2, _x[2], 1),
                                                                                                     )) %
                                                                                          2 +
                                                                                          1) %
                                                                                         2 else 0 / 0) -
                                                                                    1 if _x[1] == "C" else (_x[2] + 3) *
                                                                                                          (Product(Map(Function(_x[2] + j, j), Range(2, _x[2], 1))) /
                                                                                                           Product(Range(2, _x[2], 1)) if (Product(Map(Function(_x[2] + j, j), Range(2, _x[2], 1))) +
                                                                                                                1) %
                                                                                                               2 ==
                                                                                                               (Product(Map(Function(_x[2] + j, j), Range(2, _x[2], 1))) %
                                                                                                                2 +
                                                                                                                1) %
                                                                                                               2 else 0 / 0) /
                                                                                                          2 -
                                                                                                          1 if _x[1] == "D" else (662 if _x[2] == 6 else 2_670 if _x[2] == 7 else 10_846) if _x[1] == "E" else 106 if _x[1] == "F" else 11

Examples

Basic #

the type D5D_5

live ↗
InFullyCommutativeElementCount(CartanType⁡((D,5)))\mathrm{FullyCommutativeElementCount}(\operatorname{CartanType}((\text{D},5)))Out167167

the type E6E_6

live ↗
InFullyCommutativeElementCount(CartanType⁡((E,6)))\mathrm{FullyCommutativeElementCount}(\operatorname{CartanType}((\text{E},6)))Out662662
Properties #

FindStat's value for ['A',1]

live ↗
InCombinatorialStat(CartanType⁡(("A",1)),FullyCommutativeElementCount)\mathrm{CombinatorialStat}(\operatorname{CartanType}(("A",1)), \text{FullyCommutativeElementCount})Out22

Known value · FindStat St001653

FindStat's value for ['A',2]

live ↗
InCombinatorialStat(CartanType⁡(("A",2)),FullyCommutativeElementCount)\mathrm{CombinatorialStat}(\operatorname{CartanType}(("A",2)), \text{FullyCommutativeElementCount})Out55

Known value · FindStat St001653

FindStat's value for ['A',3]

live ↗
InCombinatorialStat(CartanType⁡(("A",3)),FullyCommutativeElementCount)\mathrm{CombinatorialStat}(\operatorname{CartanType}(("A",3)), \text{FullyCommutativeElementCount})Out1414

Known value · FindStat St001653

About
Examples5
CrosswalkFindStat