combinatorics.young.semistandard_tableauMathlib.Combinatorics.Young.SemistandardTableau

This file has been ported!

Changes since the initial port

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.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -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
 
Diff
@@ -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
Diff
@@ -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
 -/
 
Diff
@@ -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"
 
Diff
@@ -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
 
Diff
@@ -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
 -/
 

Changes in mathlib4

mathlib3
mathlib4
chore: rename Ssyt to SemistandardYoungTableau (#11328)

Per Zulip

Diff
@@ -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
refactor(*): abbreviation for non-dependent 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 defs or abbrevs.

Diff
@@ -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 _ ↦ ℕ → ℕ → ℕ :=
chore(*): rename 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>

Diff
@@ -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)
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -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
 
chore: fix focusing dots (#5708)

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.

Diff
@@ -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. -/
Refactor uses to rename_i that have easy fixes (#2429)
Diff
@@ -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. -/
feat: port Combinatorics.Young.SemistandardTableau (#2067)

Dependencies 7 + 231

232 files ported (97.1%)
100859 lines ported (97.1%)
Show graph

The unported dependencies are