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.row
andYoungDiagram.rowLen
: rows of a Young diagram and their lengthsYoungDiagram.col
andYoungDiagram.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
cells
is a lower set inℕ × ℕ
.
Instances For
Cells are up-left justified, witnessed by the fact that cells
is a lower set in ℕ × ℕ
.
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.instSup = { sup := fun (μ ν : YoungDiagram) => { cells := μ.cells ∪ ν.cells, isLowerSet := ⋯ } }
Equations
- YoungDiagram.instInf = { inf := fun (μ ν : YoungDiagram) => { cells := μ.cells ∩ ν.cells, isLowerSet := ⋯ } }
The empty Young diagram is (⊥ : young_diagram).
Equations
- YoungDiagram.instInhabited = { default := ⊥ }
Equations
- One or more equations did not get rendered due to their size.
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) ∉ μ
.
The i
-th row of a Young diagram consists of the cells whose first coordinate is i
.
Instances For
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.
The j
-th column of a Young diagram consists of the cells whose second coordinate is j
.
Instances For
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
Equations
- μ.rowLens = List.map μ.rowLen (List.range (μ.colLen 0))
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 number of rows in ofRowLens w hw
is the length of w
The length of the i
th row in ofRowLens w hw
is the i
th entry of w
The left_inv direction of the equivalence
The right_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.