Documentation

Mathlib.Combinatorics.Young.SemistandardTableau

Semistandard Young tableaux #

A semistandard Young tableau is a filling of a Young diagram by natural numbers, such that the entries are weakly increasing left-to-right along rows (i.e. for fixed i), and strictly-increasing top-to-bottom along columns (i.e. for fixed j).

An example of an SSYT of shape μ = [4, 2, 1] is:

0 0 0 2
1 1
2

We represent an SSYT as a function ℕ → ℕ → ℕ, which is required to be zero for all pairs (i, j) ∉ μ and to satisfy the row-weak and column-strict conditions on μ.

Main definitions #

Tags #

Semistandard Young tableau

References #

structure Ssyt (μ : YoungDiagram) :

A semistandard Young tableau (SSYT) is a filling of the cells of a Young diagram by natural numbers, such that the entries in each row are weakly increasing (left to right), and the entries in each column are strictly increasing (top to bottom).

Here, an SSYT is represented as an unrestricted function ℕ → ℕ → ℕ that, for reasons of extensionality, is required to vanish outside μ.

  • entry :

    entry i j is value of the (i, j) entry of the SSYT μ.

  • row_weak' : ∀ {i j1 j2 : }, j1 < j2(i, j2) μself.entry i j1 self.entry i j2

    The entries in each row are weakly increasing (left to right).

  • col_strict' : ∀ {i1 i2 j : }, i1 < i2(i2, j) μself.entry i1 j < self.entry i2 j

    The entries in each column are strictly increasing (top to bottom).

  • zeros' : ∀ {i j : }, (i, j)μself.entry i j = 0

    entry is required to be zero for all pairs (i, j) ∉ μ.

Instances For
    instance Ssyt.instFunLike {μ : YoungDiagram} :
    FunLike (Ssyt μ) ()
    Equations
    • Ssyt.instFunLike = { coe := Ssyt.entry, coe_injective' := (_ : ∀ (T T' : Ssyt μ), T.entry = T'.entryT = T') }
    instance Ssyt.instCoeFunSsytForAllNat {μ : YoungDiagram} :
    CoeFun (Ssyt μ) fun (x : Ssyt μ) =>

    Helper instance for when there's too many metavariables to apply CoeFun.coe directly.

    Equations
    • Ssyt.instCoeFunSsytForAllNat = inferInstance
    @[simp]
    theorem Ssyt.to_fun_eq_coe {μ : YoungDiagram} {T : Ssyt μ} :
    T.entry = T
    theorem Ssyt.ext {μ : YoungDiagram} {T : Ssyt μ} {T' : Ssyt μ} (h : ∀ (i j : ), T i j = T' i j) :
    T = T'
    def Ssyt.copy {μ : YoungDiagram} (T : Ssyt μ) (entry' : ) (h : entry' = T) :
    Ssyt μ

    Copy of an Ssyt μ with a new entry equal to the old one. Useful to fix definitional equalities.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem Ssyt.coe_copy {μ : YoungDiagram} (T : Ssyt μ) (entry' : ) (h : entry' = T) :
      (Ssyt.copy T entry' h) = entry'
      theorem Ssyt.copy_eq {μ : YoungDiagram} (T : Ssyt μ) (entry' : ) (h : entry' = T) :
      Ssyt.copy T entry' h = T
      theorem Ssyt.row_weak {μ : YoungDiagram} (T : Ssyt μ) {i : } {j1 : } {j2 : } (hj : j1 < j2) (hcell : (i, j2) μ) :
      T i j1 T i j2
      theorem Ssyt.col_strict {μ : YoungDiagram} (T : Ssyt μ) {i1 : } {i2 : } {j : } (hi : i1 < i2) (hcell : (i2, j) μ) :
      T i1 j < T i2 j
      theorem Ssyt.zeros {μ : YoungDiagram} (T : Ssyt μ) {i : } {j : } (not_cell : (i, j)μ) :
      T i j = 0
      theorem Ssyt.row_weak_of_le {μ : YoungDiagram} (T : Ssyt μ) {i : } {j1 : } {j2 : } (hj : j1 j2) (cell : (i, j2) μ) :
      T i j1 T i j2
      theorem Ssyt.col_weak {μ : YoungDiagram} (T : Ssyt μ) {i1 : } {i2 : } {j : } (hi : i1 i2) (cell : (i2, j) μ) :
      T i1 j T i2 j

      The "highest weight" SSYT of a given shape has all i's in row i, for each i.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem Ssyt.highestWeight_apply {μ : YoungDiagram} {i : } {j : } :
        (Ssyt.highestWeight μ) i j = if (i, j) μ then i else 0
        Equations