Skip to content

Dinv ​

The dinv statistic, read from the area sequence.

✓ checked against that system · ! checked, with disagreements (hover a chip)FindStatSt000006via DyckPath✓
Dinv(path)The dinv statistic, read from the area sequence.
SageMathenumeratio_stat("DyckPath", path, "Dinv")
Typed signatures
TypePackageApplies
(dyck_path) -> numbercombinatoricsalways

Domain: Dyck path statistics

Details
  • Defined over DyckPath as an expression in _x, evaluated by compute-engine — the definition IS the implementation.
  • Takes a DyckPath 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.
  • dinv = #{i<j : a_i=a_j} + #{i<j : a_i=a_j+1}; the two counts never overlap (a_i=a_j and a_i=a_j+1 can't both hold), so this is one pass over the pairs.

Definition

Epsil, as the implementation runs it.

on DyckPath, over _x

0 if Length(_x) < 4 else Sum(Map(Function(
                                           Count(Filter(
                                                         Range(
                                                                i + 1,
                                                                Length(_x) / 2,
                                                              ),
                                                         Function(
                                                                   Map(
                                                                        Function(0 if i < 2 else Sum(Map(
                                                                                                          Function(2 * _x[k] -
                                                                                                                   1, k),
                                                                                                          Range(1, i - 1),
                                                                                                        )), i),
                                                                        Filter(
                                                                                Range(1, Length(_x)),
                                                                                Function(_x[i] == 1, i),
                                                                              ),
                                                                      )[i] ==
                                                                   Map(
                                                                        Function(0 if i < 2 else Sum(Map(
                                                                                                          Function(2 * _x[k] -
                                                                                                                   1, k),
                                                                                                          Range(1, i - 1),
                                                                                                        )), i),
                                                                        Filter(
                                                                                Range(1, Length(_x)),
                                                                                Function(_x[i] == 1, i),
                                                                              ),
                                                                      )[j] || Map(
                                                                            Function(0 if i < 2 else Sum(Map(
                                                                                                              Function(2 * _x[k] -
                                                                                                                       1, k),
                                                                                                              Range(1, i - 1),
                                                                                                            )), i),
                                                                            Filter(
                                                                                    Range(1, Length(_x)),
                                                                                    Function(_x[i] == 1, i),
                                                                                  ),
                                                                          )[i] ==
                                                                       Map(
                                                                            Function(0 if i < 2 else Sum(Map(
                                                                                                              Function(2 * _x[k] -
                                                                                                                       1, k),
                                                                                                              Range(1, i - 1),
                                                                                                            )), i),
                                                                            Filter(
                                                                                    Range(1, Length(_x)),
                                                                                    Function(_x[i] == 1, i),
                                                                                  ),
                                                                          )[j] +
                                                                       1,
                                                                   j,
                                                                 ),
                                                       )) if i < Length(_x) / 2 else 0,
                                           i,
                                         ), Range(1, Length(_x) / 2)))

Examples

Basic #

the step word UUDDUDUUDDUD

live ↗
InDinv(DyckPath⁡([1,1,0,0,1,0]))\mathrm{Dinv}({\operatorname{DyckPath}}([1, 1, 0, 0, 1, 0]))Out22

the step word UDUUDDUDUUDD

live ↗
InDinv(DyckPath⁡([1,0,1,1,0,0]))\mathrm{Dinv}({\operatorname{DyckPath}}([1, 0, 1, 1, 0, 0]))Out11
Properties #

FindStat's value for [1,0]

live ↗
InCombinatorialStat(DyckPath⁡([1,0]),Dinv)\mathrm{CombinatorialStat}({\operatorname{DyckPath}}([1, 0]), \text{Dinv})Out00

Known value · FindStat St000006

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

live ↗
InCombinatorialStat(DyckPath⁡([1,0,1,0]),Dinv)\mathrm{CombinatorialStat}({\operatorname{DyckPath}}([1, 0, 1, 0]), \text{Dinv})Out11

Known value · FindStat St000006

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

live ↗
InCombinatorialStat(DyckPath⁡([1,1,0,0]),Dinv)\mathrm{CombinatorialStat}({\operatorname{DyckPath}}([1, 1, 0, 0]), \text{Dinv})Out00

Known value · FindStat St000006

About
Examples5
Checked againstSageMath 5 agree
CrosswalkFindStatSageMath

Implementation

mappedsagepackages/oracle/src/mappings.ts