combinatorics.young.semistandard_tableau
⟷
Mathlib.Combinatorics.Young.SemistandardTableau
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -47,113 +47,118 @@ Semistandard Young tableau
-/
-#print Ssyt /-
+#print SemistandardYoungTableau /-
/-- 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 `μ`. -/
-structure Ssyt (μ : YoungDiagram) where
+structure SemistandardYoungTableau (μ : YoungDiagram) where
entry : ℕ → ℕ → ℕ
row_weak' : ∀ {i j1 j2 : ℕ}, j1 < j2 → (i, j2) ∈ μ → entry i j1 ≤ entry i j2
col_strict' : ∀ {i1 i2 j : ℕ}, i1 < i2 → (i2, j) ∈ μ → entry i1 j < entry i2 j
zeros' : ∀ {i j}, (i, j) ∉ μ → entry i j = 0
-#align ssyt Ssyt
+#align ssyt SemistandardYoungTableau
-/
-namespace Ssyt
+namespace SemistandardYoungTableau
-#print Ssyt.instFunLike /-
-instance instFunLike {μ : YoungDiagram} : DFunLike (Ssyt μ) ℕ fun _ => ℕ → ℕ
+#print SemistandardYoungTableau.instFunLike /-
+instance instFunLike {μ : YoungDiagram} : DFunLike (SemistandardYoungTableau μ) ℕ fun _ => ℕ → ℕ
where
- coe := Ssyt.entry
+ coe := SemistandardYoungTableau.entry
coe_injective' T T' h := by cases T; cases T'; congr
-#align ssyt.fun_like Ssyt.instFunLike
+#align ssyt.fun_like SemistandardYoungTableau.instFunLike
-/
/-- Helper instance for when there's too many metavariables to apply
`fun_like.has_coe_to_fun` directly. -/
-instance {μ : YoungDiagram} : CoeFun (Ssyt μ) fun _ => ℕ → ℕ → ℕ :=
+instance {μ : YoungDiagram} : CoeFun (SemistandardYoungTableau μ) fun _ => ℕ → ℕ → ℕ :=
DFunLike.hasCoeToFun
-#print Ssyt.to_fun_eq_coe /-
+#print SemistandardYoungTableau.to_fun_eq_coe /-
@[simp]
-theorem to_fun_eq_coe {μ : YoungDiagram} {T : Ssyt μ} : T.entry = (T : ℕ → ℕ → ℕ) :=
+theorem to_fun_eq_coe {μ : YoungDiagram} {T : SemistandardYoungTableau μ} :
+ T.entry = (T : ℕ → ℕ → ℕ) :=
rfl
-#align ssyt.to_fun_eq_coe Ssyt.to_fun_eq_coe
+#align ssyt.to_fun_eq_coe SemistandardYoungTableau.to_fun_eq_coe
-/
-#print Ssyt.ext /-
+#print SemistandardYoungTableau.ext /-
@[ext]
-theorem ext {μ : YoungDiagram} {T T' : Ssyt μ} (h : ∀ i j, T i j = T' i j) : T = T' :=
+theorem ext {μ : YoungDiagram} {T T' : SemistandardYoungTableau μ} (h : ∀ i j, T i j = T' i j) :
+ T = T' :=
DFunLike.ext T T' fun x => by funext; apply h
-#align ssyt.ext Ssyt.ext
+#align ssyt.ext SemistandardYoungTableau.ext
-/
-#print Ssyt.copy /-
+#print SemistandardYoungTableau.copy /-
/-- Copy of an `ssyt μ` with a new `entry` equal to the old one. Useful to fix definitional
equalities. -/
-protected def copy {μ : YoungDiagram} (T : Ssyt μ) (entry' : ℕ → ℕ → ℕ) (h : entry' = T) : Ssyt μ
+protected def copy {μ : YoungDiagram} (T : SemistandardYoungTableau μ) (entry' : ℕ → ℕ → ℕ)
+ (h : entry' = T) : SemistandardYoungTableau μ
where
entry := entry'
row_weak' _ _ _ := h.symm ▸ T.row_weak'
col_strict' _ _ _ := h.symm ▸ T.col_strict'
zeros' _ _ := h.symm ▸ T.zeros'
-#align ssyt.copy Ssyt.copy
+#align ssyt.copy SemistandardYoungTableau.copy
-/
-#print Ssyt.coe_copy /-
+#print SemistandardYoungTableau.coe_copy /-
@[simp]
-theorem coe_copy {μ : YoungDiagram} (T : Ssyt μ) (entry' : ℕ → ℕ → ℕ) (h : entry' = T) :
- ⇑(T.copy entry' h) = entry' :=
+theorem coe_copy {μ : YoungDiagram} (T : SemistandardYoungTableau μ) (entry' : ℕ → ℕ → ℕ)
+ (h : entry' = T) : ⇑(T.copy entry' h) = entry' :=
rfl
-#align ssyt.coe_copy Ssyt.coe_copy
+#align ssyt.coe_copy SemistandardYoungTableau.coe_copy
-/
-#print Ssyt.copy_eq /-
-theorem copy_eq {μ : YoungDiagram} (T : Ssyt μ) (entry' : ℕ → ℕ → ℕ) (h : entry' = T) :
- T.copy entry' h = T :=
+#print SemistandardYoungTableau.copy_eq /-
+theorem copy_eq {μ : YoungDiagram} (T : SemistandardYoungTableau μ) (entry' : ℕ → ℕ → ℕ)
+ (h : entry' = T) : T.copy entry' h = T :=
DFunLike.ext' h
-#align ssyt.copy_eq Ssyt.copy_eq
+#align ssyt.copy_eq SemistandardYoungTableau.copy_eq
-/
-#print Ssyt.row_weak /-
-theorem row_weak {μ : YoungDiagram} (T : Ssyt μ) {i j1 j2 : ℕ} (hj : j1 < j2)
+#print SemistandardYoungTableau.row_weak /-
+theorem row_weak {μ : YoungDiagram} (T : SemistandardYoungTableau μ) {i j1 j2 : ℕ} (hj : j1 < j2)
(hcell : (i, j2) ∈ μ) : T i j1 ≤ T i j2 :=
T.row_weak' hj hcell
-#align ssyt.row_weak Ssyt.row_weak
+#align ssyt.row_weak SemistandardYoungTableau.row_weak
-/
-#print Ssyt.col_strict /-
-theorem col_strict {μ : YoungDiagram} (T : Ssyt μ) {i1 i2 j : ℕ} (hi : i1 < i2)
+#print SemistandardYoungTableau.col_strict /-
+theorem col_strict {μ : YoungDiagram} (T : SemistandardYoungTableau μ) {i1 i2 j : ℕ} (hi : i1 < i2)
(hcell : (i2, j) ∈ μ) : T i1 j < T i2 j :=
T.col_strict' hi hcell
-#align ssyt.col_strict Ssyt.col_strict
+#align ssyt.col_strict SemistandardYoungTableau.col_strict
-/
-#print Ssyt.zeros /-
-theorem zeros {μ : YoungDiagram} (T : Ssyt μ) {i j : ℕ} (not_cell : (i, j) ∉ μ) : T i j = 0 :=
+#print SemistandardYoungTableau.zeros /-
+theorem zeros {μ : YoungDiagram} (T : SemistandardYoungTableau μ) {i j : ℕ}
+ (not_cell : (i, j) ∉ μ) : T i j = 0 :=
T.zeros' not_cell
-#align ssyt.zeros Ssyt.zeros
+#align ssyt.zeros SemistandardYoungTableau.zeros
-/
-#print Ssyt.row_weak_of_le /-
-theorem row_weak_of_le {μ : YoungDiagram} (T : Ssyt μ) {i j1 j2 : ℕ} (hj : j1 ≤ j2)
- (cell : (i, j2) ∈ μ) : T i j1 ≤ T i j2 := by cases eq_or_lt_of_le hj; subst h;
+#print SemistandardYoungTableau.row_weak_of_le /-
+theorem row_weak_of_le {μ : YoungDiagram} (T : SemistandardYoungTableau μ) {i j1 j2 : ℕ}
+ (hj : j1 ≤ j2) (cell : (i, j2) ∈ μ) : T i j1 ≤ T i j2 := by cases eq_or_lt_of_le hj; subst h;
exact T.row_weak h cell
-#align ssyt.row_weak_of_le Ssyt.row_weak_of_le
+#align ssyt.row_weak_of_le SemistandardYoungTableau.row_weak_of_le
-/
-#print Ssyt.col_weak /-
-theorem col_weak {μ : YoungDiagram} (T : Ssyt μ) {i1 i2 j : ℕ} (hi : i1 ≤ i2) (cell : (i2, j) ∈ μ) :
- T i1 j ≤ T i2 j := by cases eq_or_lt_of_le hi; subst h; exact le_of_lt (T.col_strict h cell)
-#align ssyt.col_weak Ssyt.col_weak
+#print SemistandardYoungTableau.col_weak /-
+theorem col_weak {μ : YoungDiagram} (T : SemistandardYoungTableau μ) {i1 i2 j : ℕ} (hi : i1 ≤ i2)
+ (cell : (i2, j) ∈ μ) : T i1 j ≤ T i2 j := by cases eq_or_lt_of_le hi; subst h;
+ exact le_of_lt (T.col_strict h cell)
+#align ssyt.col_weak SemistandardYoungTableau.col_weak
-/
-#print Ssyt.highestWeight /-
+#print SemistandardYoungTableau.highestWeight /-
/-- The "highest weight" SSYT of a given shape is has all i's in row i, for each i. -/
-def highestWeight (μ : YoungDiagram) : Ssyt μ
+def highestWeight (μ : YoungDiagram) : SemistandardYoungTableau μ
where
entry i j := if (i, j) ∈ μ then i else 0
row_weak' i j1 j2 hj hcell := by
@@ -161,19 +166,19 @@ def highestWeight (μ : YoungDiagram) : Ssyt μ
col_strict' i1 i2 j hi hcell := by
rwa [if_pos hcell, if_pos (μ.up_left_mem (le_of_lt hi) (by rfl) hcell)]
zeros' i j not_cell := if_neg not_cell
-#align ssyt.highest_weight Ssyt.highestWeight
+#align ssyt.highest_weight SemistandardYoungTableau.highestWeight
-/
-#print Ssyt.highestWeight_apply /-
+#print SemistandardYoungTableau.highestWeight_apply /-
@[simp]
theorem highestWeight_apply {μ : YoungDiagram} {i j : ℕ} :
highestWeight μ i j = if (i, j) ∈ μ then i else 0 :=
rfl
-#align ssyt.highest_weight_apply Ssyt.highestWeight_apply
+#align ssyt.highest_weight_apply SemistandardYoungTableau.highestWeight_apply
-/
-instance {μ : YoungDiagram} : Inhabited (Ssyt μ) :=
- ⟨Ssyt.highestWeight μ⟩
+instance {μ : YoungDiagram} : Inhabited (SemistandardYoungTableau μ) :=
+ ⟨SemistandardYoungTableau.highestWeight μ⟩
-end Ssyt
+end SemistandardYoungTableau
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -64,12 +64,12 @@ structure Ssyt (μ : YoungDiagram) where
namespace Ssyt
-#print Ssyt.instDFunLike /-
-instance instDFunLike {μ : YoungDiagram} : DFunLike (Ssyt μ) ℕ fun _ => ℕ → ℕ
+#print Ssyt.instFunLike /-
+instance instFunLike {μ : YoungDiagram} : DFunLike (Ssyt μ) ℕ fun _ => ℕ → ℕ
where
coe := Ssyt.entry
coe_injective' T T' h := by cases T; cases T'; congr
-#align ssyt.fun_like Ssyt.instDFunLike
+#align ssyt.fun_like Ssyt.instFunLike
-/
/-- Helper instance for when there's too many metavariables to apply
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -64,18 +64,18 @@ structure Ssyt (μ : YoungDiagram) where
namespace Ssyt
-#print Ssyt.funLike /-
-instance funLike {μ : YoungDiagram} : FunLike (Ssyt μ) ℕ fun _ => ℕ → ℕ
+#print Ssyt.instDFunLike /-
+instance instDFunLike {μ : YoungDiagram} : DFunLike (Ssyt μ) ℕ fun _ => ℕ → ℕ
where
coe := Ssyt.entry
coe_injective' T T' h := by cases T; cases T'; congr
-#align ssyt.fun_like Ssyt.funLike
+#align ssyt.fun_like Ssyt.instDFunLike
-/
/-- Helper instance for when there's too many metavariables to apply
`fun_like.has_coe_to_fun` directly. -/
instance {μ : YoungDiagram} : CoeFun (Ssyt μ) fun _ => ℕ → ℕ → ℕ :=
- FunLike.hasCoeToFun
+ DFunLike.hasCoeToFun
#print Ssyt.to_fun_eq_coe /-
@[simp]
@@ -87,7 +87,7 @@ theorem to_fun_eq_coe {μ : YoungDiagram} {T : Ssyt μ} : T.entry = (T : ℕ →
#print Ssyt.ext /-
@[ext]
theorem ext {μ : YoungDiagram} {T T' : Ssyt μ} (h : ∀ i j, T i j = T' i j) : T = T' :=
- FunLike.ext T T' fun x => by funext; apply h
+ DFunLike.ext T T' fun x => by funext; apply h
#align ssyt.ext Ssyt.ext
-/
@@ -114,7 +114,7 @@ theorem coe_copy {μ : YoungDiagram} (T : Ssyt μ) (entry' : ℕ → ℕ → ℕ
#print Ssyt.copy_eq /-
theorem copy_eq {μ : YoungDiagram} (T : Ssyt μ) (entry' : ℕ → ℕ → ℕ) (h : entry' = T) :
T.copy entry' h = T :=
- FunLike.ext' h
+ DFunLike.ext' h
#align ssyt.copy_eq Ssyt.copy_eq
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,7 +3,7 @@ Copyright (c) 2022 Jake Levinson. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jake Levinson
-/
-import Mathbin.Combinatorics.Young.YoungDiagram
+import Combinatorics.Young.YoungDiagram
#align_import combinatorics.young.semistandard_tableau from "leanprover-community/mathlib"@"50832daea47b195a48b5b33b1c8b2162c48c3afc"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,14 +2,11 @@
Copyright (c) 2022 Jake Levinson. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jake Levinson
-
-! This file was ported from Lean 3 source module combinatorics.young.semistandard_tableau
-! leanprover-community/mathlib commit 50832daea47b195a48b5b33b1c8b2162c48c3afc
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Combinatorics.Young.YoungDiagram
+#align_import combinatorics.young.semistandard_tableau from "leanprover-community/mathlib"@"50832daea47b195a48b5b33b1c8b2162c48c3afc"
+
/-!
# Semistandard Young tableaux
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -71,10 +71,7 @@ namespace Ssyt
instance funLike {μ : YoungDiagram} : FunLike (Ssyt μ) ℕ fun _ => ℕ → ℕ
where
coe := Ssyt.entry
- coe_injective' T T' h := by
- cases T
- cases T'
- congr
+ coe_injective' T T' h := by cases T; cases T'; congr
#align ssyt.fun_like Ssyt.funLike
-/
@@ -93,9 +90,7 @@ theorem to_fun_eq_coe {μ : YoungDiagram} {T : Ssyt μ} : T.entry = (T : ℕ →
#print Ssyt.ext /-
@[ext]
theorem ext {μ : YoungDiagram} {T T' : Ssyt μ} (h : ∀ i j, T i j = T' i j) : T = T' :=
- FunLike.ext T T' fun x => by
- funext
- apply h
+ FunLike.ext T T' fun x => by funext; apply h
#align ssyt.ext Ssyt.ext
-/
@@ -148,20 +143,14 @@ theorem zeros {μ : YoungDiagram} (T : Ssyt μ) {i j : ℕ} (not_cell : (i, j)
#print Ssyt.row_weak_of_le /-
theorem row_weak_of_le {μ : YoungDiagram} (T : Ssyt μ) {i j1 j2 : ℕ} (hj : j1 ≤ j2)
- (cell : (i, j2) ∈ μ) : T i j1 ≤ T i j2 :=
- by
- cases eq_or_lt_of_le hj
- subst h
+ (cell : (i, j2) ∈ μ) : T i j1 ≤ T i j2 := by cases eq_or_lt_of_le hj; subst h;
exact T.row_weak h cell
#align ssyt.row_weak_of_le Ssyt.row_weak_of_le
-/
#print Ssyt.col_weak /-
theorem col_weak {μ : YoungDiagram} (T : Ssyt μ) {i1 i2 j : ℕ} (hi : i1 ≤ i2) (cell : (i2, j) ∈ μ) :
- T i1 j ≤ T i2 j := by
- cases eq_or_lt_of_le hi
- subst h
- exact le_of_lt (T.col_strict h cell)
+ T i1 j ≤ T i2 j := by cases eq_or_lt_of_le hi; subst h; exact le_of_lt (T.col_strict h cell)
#align ssyt.col_weak Ssyt.col_weak
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -22,14 +22,15 @@ An example of an SSYT of shape `μ = [4, 2, 1]` is:
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 `μ`.
+We represent a semistandard Young tableau 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
-- `Ssyt (μ : YoungDiagram)`: semistandard Young tableaux of shape `μ`. There is
- a `coe` instance such that `T i j` is value of the `(i, j)` entry of the SSYT `T`.
+- `SemistandardYoungTableau (μ : YoungDiagram)`: semistandard Young tableaux of shape `μ`. There is
+ a `coe` instance such that `T i j` is value of the `(i, j)` entry of the semistandard Young
+ tableau `T`.
- `Ssyt.highestWeight (μ : YoungDiagram)`: the semistandard Young tableau whose `i`th row
consists entirely of `i`s, for each `i`.
@@ -44,13 +45,13 @@ Semistandard Young tableau
-/
-/-- A semistandard Young tableau (SSYT) is a filling of the cells of a Young diagram by natural
+/-- A semistandard Young tableau 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 `μ`. -/
-structure Ssyt (μ : YoungDiagram) where
+Here, a semistandard Young tableau is represented as an unrestricted function `ℕ → ℕ → ℕ` that, for
+reasons of extensionality, is required to vanish outside `μ`. -/
+structure SemistandardYoungTableau (μ : YoungDiagram) where
/-- `entry i j` is value of the `(i, j)` entry of the SSYT `μ`. -/
entry : ℕ → ℕ → ℕ
/-- The entries in each row are weakly increasing (left to right). -/
@@ -59,85 +60,88 @@ structure Ssyt (μ : YoungDiagram) where
col_strict' : ∀ {i1 i2 j : ℕ}, i1 < i2 → (i2, j) ∈ μ → entry i1 j < entry i2 j
/-- `entry` is required to be zero for all pairs `(i, j) ∉ μ`. -/
zeros' : ∀ {i j}, (i, j) ∉ μ → entry i j = 0
-#align ssyt Ssyt
+#align ssyt SemistandardYoungTableau
-namespace Ssyt
+namespace SemistandardYoungTableau
-instance instFunLike {μ : YoungDiagram} : FunLike (Ssyt μ) ℕ (ℕ → ℕ) where
- coe := Ssyt.entry
+instance instFunLike {μ : YoungDiagram} : FunLike (SemistandardYoungTableau μ) ℕ (ℕ → ℕ) where
+ coe := SemistandardYoungTableau.entry
coe_injective' T T' h := by
cases T
cases T'
congr
-#align ssyt.fun_like Ssyt.instFunLike
+#align ssyt.fun_like SemistandardYoungTableau.instFunLike
/-- Helper instance for when there's too many metavariables to apply `CoeFun.coe` directly. -/
-instance {μ : YoungDiagram} : CoeFun (Ssyt μ) fun _ ↦ ℕ → ℕ → ℕ :=
+instance {μ : YoungDiagram} : CoeFun (SemistandardYoungTableau μ) fun _ ↦ ℕ → ℕ → ℕ :=
inferInstance
@[simp]
-theorem to_fun_eq_coe {μ : YoungDiagram} {T : Ssyt μ} : T.entry = (T : ℕ → ℕ → ℕ) :=
+theorem to_fun_eq_coe {μ : YoungDiagram} {T : SemistandardYoungTableau μ} :
+ T.entry = (T : ℕ → ℕ → ℕ) :=
rfl
-#align ssyt.to_fun_eq_coe Ssyt.to_fun_eq_coe
+#align ssyt.to_fun_eq_coe SemistandardYoungTableau.to_fun_eq_coe
@[ext]
-theorem ext {μ : YoungDiagram} {T T' : Ssyt μ} (h : ∀ i j, T i j = T' i j) : T = T' :=
+theorem ext {μ : YoungDiagram} {T T' : SemistandardYoungTableau μ} (h : ∀ i j, T i j = T' i j) :
+ T = T' :=
DFunLike.ext T T' fun _ ↦ by
funext
apply h
-#align ssyt.ext Ssyt.ext
+#align ssyt.ext SemistandardYoungTableau.ext
-/-- Copy of an `Ssyt μ` with a new `entry` equal to the old one. Useful to fix definitional
-equalities. -/
-protected def copy {μ : YoungDiagram} (T : Ssyt μ) (entry' : ℕ → ℕ → ℕ) (h : entry' = T) : Ssyt μ
- where
+/-- Copy of an `SemistandardYoungTableau μ` with a new `entry` equal to the old one. Useful to fix
+definitional equalities. -/
+protected def copy {μ : YoungDiagram} (T : SemistandardYoungTableau μ) (entry' : ℕ → ℕ → ℕ)
+ (h : entry' = T) : SemistandardYoungTableau μ where
entry := entry'
row_weak' := h.symm ▸ T.row_weak'
col_strict' := h.symm ▸ T.col_strict'
zeros' := h.symm ▸ T.zeros'
-#align ssyt.copy Ssyt.copy
+#align ssyt.copy SemistandardYoungTableau.copy
@[simp]
-theorem coe_copy {μ : YoungDiagram} (T : Ssyt μ) (entry' : ℕ → ℕ → ℕ) (h : entry' = T) :
- ⇑(T.copy entry' h) = entry' :=
+theorem coe_copy {μ : YoungDiagram} (T : SemistandardYoungTableau μ) (entry' : ℕ → ℕ → ℕ)
+ (h : entry' = T) : ⇑(T.copy entry' h) = entry' :=
rfl
-#align ssyt.coe_copy Ssyt.coe_copy
+#align ssyt.coe_copy SemistandardYoungTableau.coe_copy
-theorem copy_eq {μ : YoungDiagram} (T : Ssyt μ) (entry' : ℕ → ℕ → ℕ) (h : entry' = T) :
- T.copy entry' h = T :=
+theorem copy_eq {μ : YoungDiagram} (T : SemistandardYoungTableau μ) (entry' : ℕ → ℕ → ℕ)
+ (h : entry' = T) : T.copy entry' h = T :=
DFunLike.ext' h
-#align ssyt.copy_eq Ssyt.copy_eq
+#align ssyt.copy_eq SemistandardYoungTableau.copy_eq
-theorem row_weak {μ : YoungDiagram} (T : Ssyt μ) {i j1 j2 : ℕ} (hj : j1 < j2)
+theorem row_weak {μ : YoungDiagram} (T : SemistandardYoungTableau μ) {i j1 j2 : ℕ} (hj : j1 < j2)
(hcell : (i, j2) ∈ μ) : T i j1 ≤ T i j2 :=
T.row_weak' hj hcell
-#align ssyt.row_weak Ssyt.row_weak
+#align ssyt.row_weak SemistandardYoungTableau.row_weak
-theorem col_strict {μ : YoungDiagram} (T : Ssyt μ) {i1 i2 j : ℕ} (hi : i1 < i2)
+theorem col_strict {μ : YoungDiagram} (T : SemistandardYoungTableau μ) {i1 i2 j : ℕ} (hi : i1 < i2)
(hcell : (i2, j) ∈ μ) : T i1 j < T i2 j :=
T.col_strict' hi hcell
-#align ssyt.col_strict Ssyt.col_strict
+#align ssyt.col_strict SemistandardYoungTableau.col_strict
-theorem zeros {μ : YoungDiagram} (T : Ssyt μ) {i j : ℕ} (not_cell : (i, j) ∉ μ) : T i j = 0 :=
+theorem zeros {μ : YoungDiagram} (T : SemistandardYoungTableau μ) {i j : ℕ}
+ (not_cell : (i, j) ∉ μ) : T i j = 0 :=
T.zeros' not_cell
-#align ssyt.zeros Ssyt.zeros
+#align ssyt.zeros SemistandardYoungTableau.zeros
-theorem row_weak_of_le {μ : YoungDiagram} (T : Ssyt μ) {i j1 j2 : ℕ} (hj : j1 ≤ j2)
- (cell : (i, j2) ∈ μ) : T i j1 ≤ T i j2 := by
+theorem row_weak_of_le {μ : YoungDiagram} (T : SemistandardYoungTableau μ) {i j1 j2 : ℕ}
+ (hj : j1 ≤ j2) (cell : (i, j2) ∈ μ) : T i j1 ≤ T i j2 := by
cases' eq_or_lt_of_le hj with h h
· rw [h]
· exact T.row_weak h cell
-#align ssyt.row_weak_of_le Ssyt.row_weak_of_le
+#align ssyt.row_weak_of_le SemistandardYoungTableau.row_weak_of_le
-theorem col_weak {μ : YoungDiagram} (T : Ssyt μ) {i1 i2 j : ℕ} (hi : i1 ≤ i2) (cell : (i2, j) ∈ μ) :
- T i1 j ≤ T i2 j := by
+theorem col_weak {μ : YoungDiagram} (T : SemistandardYoungTableau μ) {i1 i2 j : ℕ} (hi : i1 ≤ i2)
+ (cell : (i2, j) ∈ μ) : T i1 j ≤ T i2 j := by
cases' eq_or_lt_of_le hi with h h
· rw [h]
· exact le_of_lt (T.col_strict h cell)
-#align ssyt.col_weak Ssyt.col_weak
+#align ssyt.col_weak SemistandardYoungTableau.col_weak
/-- The "highest weight" SSYT of a given shape has all i's in row i, for each i. -/
-def highestWeight (μ : YoungDiagram) : Ssyt μ where
+def highestWeight (μ : YoungDiagram) : SemistandardYoungTableau μ where
entry i j := if (i, j) ∈ μ then i else 0
row_weak' hj hcell := by
simp only
@@ -146,15 +150,15 @@ def highestWeight (μ : YoungDiagram) : Ssyt μ where
simp only
rwa [if_pos hcell, if_pos (μ.up_left_mem (le_of_lt hi) (by rfl) hcell)]
zeros' not_cell := if_neg not_cell
-#align ssyt.highest_weight Ssyt.highestWeight
+#align ssyt.highest_weight SemistandardYoungTableau.highestWeight
@[simp]
theorem highestWeight_apply {μ : YoungDiagram} {i j : ℕ} :
highestWeight μ i j = if (i, j) ∈ μ then i else 0 :=
rfl
-#align ssyt.highest_weight_apply Ssyt.highestWeight_apply
+#align ssyt.highest_weight_apply SemistandardYoungTableau.highestWeight_apply
-instance {μ : YoungDiagram} : Inhabited (Ssyt μ) :=
- ⟨Ssyt.highestWeight μ⟩
+instance {μ : YoungDiagram} : Inhabited (SemistandardYoungTableau μ) :=
+ ⟨highestWeight μ⟩
-end Ssyt
+end SemistandardYoungTableau
FunLike
(#9833)
This follows up from #9785, which renamed FunLike
to DFunLike
, by introducing a new abbreviation FunLike F α β := DFunLike F α (fun _ => β)
, to make the non-dependent use of FunLike
easier.
I searched for the pattern DFunLike.*fun
and DFunLike.*λ
in all files to replace expressions of the form DFunLike F α (fun _ => β)
with FunLike F α β
. I did this everywhere except for extends
clauses for two reasons: it would conflict with #8386, and more importantly extends
must directly refer to a structure with no unfolding of def
s or abbrev
s.
@@ -63,13 +63,13 @@ structure Ssyt (μ : YoungDiagram) where
namespace Ssyt
-instance instDFunLike {μ : YoungDiagram} : DFunLike (Ssyt μ) ℕ fun _ ↦ ℕ → ℕ where
+instance instFunLike {μ : YoungDiagram} : FunLike (Ssyt μ) ℕ (ℕ → ℕ) where
coe := Ssyt.entry
coe_injective' T T' h := by
cases T
cases T'
congr
-#align ssyt.fun_like Ssyt.instDFunLike
+#align ssyt.fun_like Ssyt.instFunLike
/-- Helper instance for when there's too many metavariables to apply `CoeFun.coe` directly. -/
instance {μ : YoungDiagram} : CoeFun (Ssyt μ) fun _ ↦ ℕ → ℕ → ℕ :=
FunLike
to DFunLike
(#9785)
This prepares for the introduction of a non-dependent synonym of FunLike, which helps a lot with keeping #8386 readable.
This is entirely search-and-replace in 680197f combined with manual fixes in 4145626, e900597 and b8428f8. The commands that generated this change:
sed -i 's/\bFunLike\b/DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoFunLike\b/toDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/import Mathlib.Data.DFunLike/import Mathlib.Data.FunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bHom_FunLike\b/Hom_DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\binstFunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bfunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoo many metavariables to apply `fun_like.has_coe_to_fun`/too many metavariables to apply `DFunLike.hasCoeToFun`/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@@ -63,13 +63,13 @@ structure Ssyt (μ : YoungDiagram) where
namespace Ssyt
-instance funLike {μ : YoungDiagram} : FunLike (Ssyt μ) ℕ fun _ ↦ ℕ → ℕ where
+instance instDFunLike {μ : YoungDiagram} : DFunLike (Ssyt μ) ℕ fun _ ↦ ℕ → ℕ where
coe := Ssyt.entry
coe_injective' T T' h := by
cases T
cases T'
congr
-#align ssyt.fun_like Ssyt.funLike
+#align ssyt.fun_like Ssyt.instDFunLike
/-- Helper instance for when there's too many metavariables to apply `CoeFun.coe` directly. -/
instance {μ : YoungDiagram} : CoeFun (Ssyt μ) fun _ ↦ ℕ → ℕ → ℕ :=
@@ -82,7 +82,7 @@ theorem to_fun_eq_coe {μ : YoungDiagram} {T : Ssyt μ} : T.entry = (T : ℕ →
@[ext]
theorem ext {μ : YoungDiagram} {T T' : Ssyt μ} (h : ∀ i j, T i j = T' i j) : T = T' :=
- FunLike.ext T T' fun _ ↦ by
+ DFunLike.ext T T' fun _ ↦ by
funext
apply h
#align ssyt.ext Ssyt.ext
@@ -105,7 +105,7 @@ theorem coe_copy {μ : YoungDiagram} (T : Ssyt μ) (entry' : ℕ → ℕ → ℕ
theorem copy_eq {μ : YoungDiagram} (T : Ssyt μ) (entry' : ℕ → ℕ → ℕ) (h : entry' = T) :
T.copy entry' h = T :=
- FunLike.ext' h
+ DFunLike.ext' h
#align ssyt.copy_eq Ssyt.copy_eq
theorem row_weak {μ : YoungDiagram} (T : Ssyt μ) {i j1 j2 : ℕ} (hj : j1 < j2)
@@ -2,14 +2,11 @@
Copyright (c) 2022 Jake Levinson. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jake Levinson
-
-! This file was ported from Lean 3 source module combinatorics.young.semistandard_tableau
-! leanprover-community/mathlib commit b363547b3113d350d053abdf2884e9850a56b205
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Combinatorics.Young.YoungDiagram
+#align_import combinatorics.young.semistandard_tableau from "leanprover-community/mathlib"@"b363547b3113d350d053abdf2884e9850a56b205"
+
/-!
# Semistandard Young tableaux
This PR is the result of running
find . -type f -name "*.lean" -exec sed -i -E 's/^( +)\. /\1· /' {} \;
find . -type f -name "*.lean" -exec sed -i -E 'N;s/^( +·)\n +(.*)$/\1 \2/;P;D' {} \;
which firstly replaces .
focusing dots with ·
and secondly removes isolated instances of such dots, unifying them with the following line. A new rule is placed in the style linter to verify this.
@@ -128,15 +128,15 @@ theorem zeros {μ : YoungDiagram} (T : Ssyt μ) {i j : ℕ} (not_cell : (i, j)
theorem row_weak_of_le {μ : YoungDiagram} (T : Ssyt μ) {i j1 j2 : ℕ} (hj : j1 ≤ j2)
(cell : (i, j2) ∈ μ) : T i j1 ≤ T i j2 := by
cases' eq_or_lt_of_le hj with h h
- . rw [h]
- . exact T.row_weak h cell
+ · rw [h]
+ · exact T.row_weak h cell
#align ssyt.row_weak_of_le Ssyt.row_weak_of_le
theorem col_weak {μ : YoungDiagram} (T : Ssyt μ) {i1 i2 j : ℕ} (hi : i1 ≤ i2) (cell : (i2, j) ∈ μ) :
T i1 j ≤ T i2 j := by
cases' eq_or_lt_of_le hi with h h
- . rw [h]
- . exact le_of_lt (T.col_strict h cell)
+ · rw [h]
+ · exact le_of_lt (T.col_strict h cell)
#align ssyt.col_weak Ssyt.col_weak
/-- The "highest weight" SSYT of a given shape has all i's in row i, for each i. -/
@@ -127,16 +127,16 @@ theorem zeros {μ : YoungDiagram} (T : Ssyt μ) {i j : ℕ} (not_cell : (i, j)
theorem row_weak_of_le {μ : YoungDiagram} (T : Ssyt μ) {i j1 j2 : ℕ} (hj : j1 ≤ j2)
(cell : (i, j2) ∈ μ) : T i j1 ≤ T i j2 := by
- cases eq_or_lt_of_le hj <;> rename_i h
- rw [h]
- exact T.row_weak h cell
+ cases' eq_or_lt_of_le hj with h h
+ . rw [h]
+ . exact T.row_weak h cell
#align ssyt.row_weak_of_le Ssyt.row_weak_of_le
theorem col_weak {μ : YoungDiagram} (T : Ssyt μ) {i1 i2 j : ℕ} (hi : i1 ≤ i2) (cell : (i2, j) ∈ μ) :
T i1 j ≤ T i2 j := by
- cases eq_or_lt_of_le hi <;> rename_i h
- rw [h]
- exact le_of_lt (T.col_strict h cell)
+ cases' eq_or_lt_of_le hi with h h
+ . rw [h]
+ . exact le_of_lt (T.col_strict h cell)
#align ssyt.col_weak Ssyt.col_weak
/-- The "highest weight" SSYT of a given shape has all i's in row i, for each i. -/
The unported dependencies are