Skip to content

SeaweedIndex ​

Twice the cycles plus the paths, less one, of the meander of the composition over the single block: the index of the maximal parabolic seaweed algebra.

✓ checked against that system · ! checked, with disagreements (hover a chip)FindStatSt001263via IntegerComposition✓
SeaweedIndex(composition)Twice the cycles plus the paths, less one, of the meander of the composition over the single block: the index of the maximal parabolic seaweed algebra.
Typed signatures
TypePackageApplies
(composition) -> numbercombinatoricsalways

Domain: Composition statistics

Details
  • Defined over IntegerComposition as an expression in _x, evaluated by compute-engine — the definition IS the implementation.
  • Takes a IntegerComposition 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.
  • Dergachev and Kirillov, Index of Lie algebras of seaweed type. FindStat's code builds the meander as a simple graph, so two dots joined by an arc above and one below are a path, not a cycle; the definition follows the code, not the prose. The empty composition is outside FindStat's rows.

Definition

Epsil, as the implementation runs it.

on IntegerComposition, over _x

0 if Length(_x) < 1 else Apply((cuts: list<integer>) => Apply(
                                                               (top: list<integer>) => Apply(
                                                                                              (degrees: list<integer>) => Apply(
                                                                                                                                 (labels: list<integer>) => 2 *
                                                                                                                                                            Count(Filter(Range(1, Sum(_x)), Function(labels[i] == i, i))) -
                                                                                                                                                            1 -
                                                                                                                                                            Count(Filter(Range(1, Sum(_x)), Function(degrees[i] == 0, i))) -
                                                                                                                                                            Count(Filter(Range(1, Sum(_x)), Function(degrees[i] == 1, i))) /
                                                                                                                                                            2,
                                                                                                                                 Fold(
                                                                                                                                       Function(Map(Function(Min(a[i], a[top[i]], a[Sum(_x) + 1 -
                                                                                                                                                                                    i]), i), Range(1, Sum(_x))), a, b),
                                                                                                                                       Range(1, Sum(_x)),
                                                                                                                                       Range(1, Sum(_x)),
                                                                                                                                     ),
                                                                                                                               ),
                                                                                              Map(Function((1 if Abs(top[i] - i) >
                                                                                                                 0 else 0) +
                                                                                                           (1 if Abs(Sum(_x) + 1 -
                                                                                                                     i -
                                                                                                                     i) >
                                                                                                                 0 else 0) -
                                                                                                           (1 if top[i] ==
                                                                                                                 Sum(_x) + 1 -
                                                                                                                 i &&
                                                                                                                 Abs(top[i] - i) >
                                                                                                                 0 else 0), i), Range(1, Sum(_x))),
                                                                                            ),
                                                               Map(
                                                                    Function(Max(Filter(
                                                                                         cuts,
                                                                                         Function(u < i, u),
                                                                                       )) +
                                                                             Min(Filter(
                                                                                         cuts,
                                                                                         Function(u >= i, u),
                                                                                       )) +
                                                                             1 -
                                                                             i, i),
                                                                    Range(
                                                                           1,
                                                                           Sum(_x),
                                                                         ),
                                                                  ),
                                                             ), Fold(Function(
                                                                              Join(a, [Last(a) + b]),
                                                                              a,
                                                                              b,
                                                                            ), [0], _x))

Examples

Basic #

the composition [2,1,3,1,1][2,1,3,1,1]

live ↗
InSeaweedIndex(IntegerComposition⁡([2,1,3,1,1]))\mathrm{SeaweedIndex}({\operatorname{IntegerComposition}}([2, 1, 3, 1, 1]))Out11
Properties #

FindStat's value for [1]

live ↗
InCombinatorialStat(IntegerComposition⁡([1]),SeaweedIndex)\mathrm{CombinatorialStat}({\operatorname{IntegerComposition}}([1]), \text{SeaweedIndex})Out00

Known value · FindStat St001263

FindStat's value for [2]

live ↗
InCombinatorialStat(IntegerComposition⁡([2]),SeaweedIndex)\mathrm{CombinatorialStat}({\operatorname{IntegerComposition}}([2]), \text{SeaweedIndex})Out00

Known value · FindStat St001263

FindStat's value for [3]

live ↗
InCombinatorialStat(IntegerComposition⁡([3]),SeaweedIndex)\mathrm{CombinatorialStat}({\operatorname{IntegerComposition}}([3]), \text{SeaweedIndex})Out11

Known value · FindStat St001263

About
Examples4
CrosswalkFindStat