Documentation

TauCeti.Combinatorics.Young.Partitions

Partitions and Young diagrams #

This file relates partitions of n and Young diagrams with n cells by a pair of direct constructions: TauCeti.diagramOf builds the Young diagram whose rows are the decreasingly sorted parts of a partition, and TauCeti.toPartition reads the row lengths of a sized diagram back as a partition. The two constructions are inverse to each other, which packages as the equivalence TauCeti.partitionEquivYoungDiagram.

References #

The Young diagram of a partition: its rows are the decreasingly sorted parts.

Equations
Instances For
    @[simp]
    theorem TauCeti.rowLens_diagramOf {n : ℕ} (μ : n.Partition) :
    (diagramOf μ).rowLens = μ.parts.sort fun (x1 x2 : ℕ) => x1 ≥ x2

    The row lengths of a partition's Young diagram are its decreasingly sorted parts.

    @[simp]
    theorem TauCeti.card_diagramOf {n : ℕ} (μ : n.Partition) :

    The Young diagram of a partition has the size of the partition.

    @[simp]
    theorem TauCeti.rowLen_diagramOf {n : ℕ} (ν : n.Partition) (i : ℕ) :
    (diagramOf ν).rowLen i = (ν.parts.sort fun (x1 x2 : ℕ) => x1 ≥ x2).getD i 0

    The row lengths of the Young diagram of a partition are its decreasingly sorted parts, padded by zeros.

    The Young diagram of the partition (1ⁿ) is a single column: every part is 1, so every row has at most one cell.

    The Young diagram of the partition (n) has at most one row: for n > 0 its only part is n, so there is nothing below the first row, and for n = 0 the diagram is empty.

    The second row of the Young diagram of the partition (n+1, 1) is a single cell.

    The Young diagram of the partition (n+1, 1) has no third row.

    @[simp]

    The Young diagram of a partition has one row per part: its rows are the parts, so the length of its first column counts them.

    def TauCeti.toPartition {n : ℕ} (μ : YoungDiagram) (h : μ.card = n) :

    The partition of the cells of a Young diagram: its parts are the row lengths.

    Equations
    Instances For
      @[simp]
      theorem TauCeti.toPartition_parts {n : ℕ} (μ : YoungDiagram) (h : μ.card = n) :
      (toPartition μ h).parts = ↑μ.rowLens

      The parts of the partition of a sized Young diagram are its row lengths.

      @[simp]

      Reading back the row lengths of the Young diagram of a partition recovers the partition.

      @[simp]
      theorem TauCeti.diagramOf_toPartition {n : ℕ} (μ : YoungDiagram) (h : μ.card = n) :

      The Young diagram whose rows are the row lengths of a sized Young diagram is that diagram.

      Partitions of n are equivalent to Young diagrams with n cells.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]

        The Young diagram associated to a partition by the equivalence is TauCeti.diagramOf.

        @[simp]

        The partition associated to a sized Young diagram by the equivalence is TauCeti.toPartition.

        The Young diagram construction is injective on partitions of a fixed size.

        The shape partition of a Young diagram: the partition of μ.card whose parts are the row lengths.

        Equations
        Instances For
          @[simp]

          A partition built from a Young diagram along the trivial equality of sizes is its shape partition.

          @[simp]

          The Young diagram of the shape partition of a Young diagram is that diagram.

          @[simp]

          The parts of the shape partition are the row lengths of the diagram.

          theorem TauCeti.shapePartition_parts_sort (μ : YoungDiagram) :
          ((shapePartition μ).parts.sort fun (x1 x2 : ℕ) => x1 ≥ x2) = μ.rowLens

          Sorting the parts of the shape partition into decreasing order returns the row lengths, which are already decreasing. This is not a simp lemma: simp reaches the same normal form through shapePartition_parts and TauCeti.YoungDiagram.sort_coe_rowLens.