Young diagrams #
A Young diagram is a finite set of up-left justified boxes:
□□□□□
□□□
□□□
□
This Young diagram corresponds to the [5, 3, 3, 1] partition of 12.
We represent it as a lower set in ℕ × ℕ in the product partial order. We write (i, j) ∈ μ
to say that (i, j) (in matrix coordinates) is in the Young diagram μ.
Main definitions #
YoungDiagram: Young diagramsYoungDiagram.card: the number of cells in a Young diagram (its cardinality)YoungDiagram.instDistribLatticeYoungDiagram: a distributive lattice instance for Young diagrams ordered by containment, with(⊥ : YoungDiagram)the empty diagram.YoungDiagram.rowandYoungDiagram.rowLen: rows of a Young diagram and their lengthsYoungDiagram.colandYoungDiagram.colLen: columns of a Young diagram and their lengths
Notation #
In "English notation", a Young diagram is drawn so that (i1, j1) ≤ (i2, j2)
means (i1, j1) is weakly up-and-left of (i2, j2). This terminology is used
below, e.g. in YoungDiagram.up_left_mem.
Tags #
Young diagram
References #
A Young diagram is a finite collection of cells on the ℕ × ℕ grid such that whenever
a cell is present, so are all the ones above and to the left of it. Like matrices, an (i, j) cell
is a cell in row i and column j, where rows are enumerated downward and columns rightward.
Young diagrams are modeled as finite sets in ℕ × ℕ that are lower sets with respect to the
standard order on products.
A finite set which represents a finite collection of cells on the
ℕ × ℕgrid.- isLowerSet : IsLowerSet ↑self.cells
Cells are up-left justified, witnessed by the fact that
cellsis a lower set inℕ × ℕ.
Instances For
Equations
- YoungDiagram.instSetLikeProdNat = { coe := fun (y : YoungDiagram) => ↑y.cells, coe_injective' := YoungDiagram.instSetLikeProdNat._proof_1 }
Equations
- μ.decidableMem = inferInstanceAs (DecidablePred fun (x : ℕ × ℕ) => x ∈ μ.cells)
Equations
- YoungDiagram.instMax = { max := fun (μ ν : YoungDiagram) => { cells := μ.cells ∪ ν.cells, isLowerSet := ⋯ } }
Equations
- YoungDiagram.instMin = { min := fun (μ ν : YoungDiagram) => { cells := μ.cells ∩ ν.cells, isLowerSet := ⋯ } }
The empty Young diagram is (⊥ : young_diagram).
Equations
- YoungDiagram.instOrderBot = { bot := { cells := ∅, isLowerSet := YoungDiagram.instOrderBot._proof_3 }, bot_le := YoungDiagram.instOrderBot._proof_4 }
Alias of YoungDiagram.notMem_bot.
Equations
- YoungDiagram.instInhabited = { default := ⊥ }
Equations
- One or more equations did not get rendered due to their size.
Cardinality of a Young diagram
Instances For
The transpose of a Young diagram is obtained by swapping i's with j's.
Equations
- μ.transpose = { cells := (Equiv.prodComm ℕ ℕ).finsetCongr μ.cells, isLowerSet := ⋯ }
Instances For
Transposing Young diagrams is an OrderIso.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Rows and row lengths of Young diagrams. #
This section defines μ.row and μ.rowLen, with the following API:
1. (i, j) ∈ μ ↔ j < μ.rowLen i
2. μ.row i = {i} ×ˢ (Finset.range (μ.rowLen i))
3. μ.rowLen i = (μ.row i).card
4. ∀ {i1 i2}, i1 ≤ i2 → μ.rowLen i2 ≤ μ.rowLen i1
Note: #3 is not convenient for defining μ.rowLen; instead, μ.rowLen is defined
as the smallest j such that (i, j) ∉ μ.
Alias of YoungDiagram.exists_notMem_row.
Length of a row of a Young diagram
Instances For
Columns and column lengths of Young diagrams. #
This section has an identical API to the rows section.
Alias of YoungDiagram.exists_notMem_col.
Length of a column of a Young diagram
Instances For
The list of row lengths of a Young diagram #
This section defines μ.rowLens : List ℕ, the list of row lengths of a Young diagram μ.
YoungDiagram.rowLens_sorted: It is weakly decreasing (List.Sorted (· ≥ ·)).YoungDiagram.rowLens_pos: It is strictly positive.
List of row lengths of a Young diagram
Instances For
Equivalence between Young diagrams and lists of natural numbers #
This section defines the equivalence between Young diagrams μ and weakly decreasing lists w
of positive natural numbers, corresponding to row lengths of the diagram:
YoungDiagram.equivListRowLens :
YoungDiagram ≃ {w : List ℕ // w.Sorted (· ≥ ·) ∧ ∀ x ∈ w, 0 < x}
The two directions are YoungDiagram.rowLens (defined above) and YoungDiagram.ofRowLens.
The cells making up a YoungDiagram from a list of row lengths
Equations
- One or more equations did not get rendered due to their size.
- YoungDiagram.cellsOfRowLens [] = ∅
Instances For
Young diagram from a sorted list
Equations
- YoungDiagram.ofRowLens w hw = { cells := YoungDiagram.cellsOfRowLens w, isLowerSet := ⋯ }
Instances For
The left_inv direction of the equivalence
Equivalence between Young diagrams and weakly decreasing lists of positive natural numbers.
A Young diagram μ is equivalent to a list of row lengths.
Equations
- One or more equations did not get rendered due to their size.