data.multiset.nat_antidiagonalMathlib.Data.Multiset.NatAntidiagonal

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)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -3,8 +3,8 @@ Copyright (c) 2019 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin
 -/
-import Mathbin.Data.Multiset.Nodup
-import Mathbin.Data.List.NatAntidiagonal
+import Data.Multiset.Nodup
+import Data.List.NatAntidiagonal
 
 #align_import data.multiset.nat_antidiagonal from "leanprover-community/mathlib"@"f2f413b9d4be3a02840d0663dace76e8fe3da053"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2019 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin
-
-! This file was ported from Lean 3 source module data.multiset.nat_antidiagonal
-! leanprover-community/mathlib commit f2f413b9d4be3a02840d0663dace76e8fe3da053
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Multiset.Nodup
 import Mathbin.Data.List.NatAntidiagonal
 
+#align_import data.multiset.nat_antidiagonal from "leanprover-community/mathlib"@"f2f413b9d4be3a02840d0663dace76e8fe3da053"
+
 /-!
 # Antidiagonals in ℕ × ℕ as multisets
 
Diff
@@ -48,11 +48,13 @@ theorem mem_antidiagonal {n : ℕ} {x : ℕ × ℕ} : x ∈ antidiagonal n ↔ x
 #align multiset.nat.mem_antidiagonal Multiset.Nat.mem_antidiagonal
 -/
 
+#print Multiset.Nat.card_antidiagonal /-
 /-- The cardinality of the antidiagonal of `n` is `n+1`. -/
 @[simp]
 theorem card_antidiagonal (n : ℕ) : (antidiagonal n).card = n + 1 := by
   rw [antidiagonal, coe_card, List.Nat.length_antidiagonal]
 #align multiset.nat.card_antidiagonal Multiset.Nat.card_antidiagonal
+-/
 
 #print Multiset.Nat.antidiagonal_zero /-
 /-- The antidiagonal of `0` is the list `[(0, 0)]` -/
Diff
@@ -48,12 +48,6 @@ theorem mem_antidiagonal {n : ℕ} {x : ℕ × ℕ} : x ∈ antidiagonal n ↔ x
 #align multiset.nat.mem_antidiagonal Multiset.Nat.mem_antidiagonal
 -/
 
-/- warning: multiset.nat.card_antidiagonal -> Multiset.Nat.card_antidiagonal is a dubious translation:
-lean 3 declaration is
-  forall (n : Nat), Eq.{1} Nat (coeFn.{1, 1} (AddMonoidHom.{0, 0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.orderedCancelAddCommMonoid.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)) (fun (_x : AddMonoidHom.{0, 0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.orderedCancelAddCommMonoid.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)) => (Multiset.{0} (Prod.{0, 0} Nat Nat)) -> Nat) (AddMonoidHom.hasCoeToFun.{0, 0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.orderedCancelAddCommMonoid.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)) (Multiset.card.{0} (Prod.{0, 0} Nat Nat)) (Multiset.Nat.antidiagonal n)) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))
-but is expected to have type
-  forall (n : Nat), Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Multiset.{0} (Prod.{0, 0} Nat Nat)) => Nat) (Multiset.Nat.antidiagonal n)) (FunLike.coe.{1, 1, 1} (AddMonoidHom.{0, 0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.instOrderedCancelAddCommMonoidMultiset.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)) (Multiset.{0} (Prod.{0, 0} Nat Nat)) (fun (_x : Multiset.{0} (Prod.{0, 0} Nat Nat)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Multiset.{0} (Prod.{0, 0} Nat Nat)) => Nat) _x) (AddHomClass.toFunLike.{0, 0, 0} (AddMonoidHom.{0, 0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.instOrderedCancelAddCommMonoidMultiset.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)) (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddZeroClass.toAdd.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.instOrderedCancelAddCommMonoidMultiset.{0} (Prod.{0, 0} Nat Nat)))))))) (AddZeroClass.toAdd.{0} Nat (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)) (AddMonoidHomClass.toAddHomClass.{0, 0, 0} (AddMonoidHom.{0, 0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.instOrderedCancelAddCommMonoidMultiset.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)) (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.instOrderedCancelAddCommMonoidMultiset.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid) (AddMonoidHom.addMonoidHomClass.{0, 0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.instOrderedCancelAddCommMonoidMultiset.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)))) (Multiset.card.{0} (Prod.{0, 0} Nat Nat)) (Multiset.Nat.antidiagonal n)) (HAdd.hAdd.{0, 0, 0} Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Multiset.{0} (Prod.{0, 0} Nat Nat)) => Nat) (Multiset.Nat.antidiagonal n)) Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Multiset.{0} (Prod.{0, 0} Nat Nat)) => Nat) (Multiset.Nat.antidiagonal n)) 1 (instOfNatNat 1)))
-Case conversion may be inaccurate. Consider using '#align multiset.nat.card_antidiagonal Multiset.Nat.card_antidiagonalₓ'. -/
 /-- The cardinality of the antidiagonal of `n` is `n+1`. -/
 @[simp]
 theorem card_antidiagonal (n : ℕ) : (antidiagonal n).card = n + 1 := by
Diff
@@ -96,9 +96,7 @@ theorem antidiagonal_succ' {n : ℕ} :
 theorem antidiagonal_succ_succ' {n : ℕ} :
     antidiagonal (n + 2) =
       (0, n + 2) ::ₘ (n + 2, 0) ::ₘ (antidiagonal n).map (Prod.map Nat.succ Nat.succ) :=
-  by
-  rw [antidiagonal_succ, antidiagonal_succ', map_cons, map_map, Prod_map]
-  rfl
+  by rw [antidiagonal_succ, antidiagonal_succ', map_cons, map_map, Prod_map]; rfl
 #align multiset.nat.antidiagonal_succ_succ' Multiset.Nat.antidiagonal_succ_succ'
 -/
 
Diff
@@ -52,7 +52,7 @@ theorem mem_antidiagonal {n : ℕ} {x : ℕ × ℕ} : x ∈ antidiagonal n ↔ x
 lean 3 declaration is
   forall (n : Nat), Eq.{1} Nat (coeFn.{1, 1} (AddMonoidHom.{0, 0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.orderedCancelAddCommMonoid.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)) (fun (_x : AddMonoidHom.{0, 0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.orderedCancelAddCommMonoid.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)) => (Multiset.{0} (Prod.{0, 0} Nat Nat)) -> Nat) (AddMonoidHom.hasCoeToFun.{0, 0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.orderedCancelAddCommMonoid.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)) (Multiset.card.{0} (Prod.{0, 0} Nat Nat)) (Multiset.Nat.antidiagonal n)) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))
 but is expected to have type
-  forall (n : Nat), Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Multiset.{0} (Prod.{0, 0} Nat Nat)) => Nat) (Multiset.Nat.antidiagonal n)) (FunLike.coe.{1, 1, 1} (AddMonoidHom.{0, 0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.instOrderedCancelAddCommMonoidMultiset.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)) (Multiset.{0} (Prod.{0, 0} Nat Nat)) (fun (_x : Multiset.{0} (Prod.{0, 0} Nat Nat)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Multiset.{0} (Prod.{0, 0} Nat Nat)) => Nat) _x) (AddHomClass.toFunLike.{0, 0, 0} (AddMonoidHom.{0, 0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.instOrderedCancelAddCommMonoidMultiset.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)) (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddZeroClass.toAdd.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.instOrderedCancelAddCommMonoidMultiset.{0} (Prod.{0, 0} Nat Nat)))))))) (AddZeroClass.toAdd.{0} Nat (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)) (AddMonoidHomClass.toAddHomClass.{0, 0, 0} (AddMonoidHom.{0, 0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.instOrderedCancelAddCommMonoidMultiset.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)) (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.instOrderedCancelAddCommMonoidMultiset.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid) (AddMonoidHom.addMonoidHomClass.{0, 0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.instOrderedCancelAddCommMonoidMultiset.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)))) (Multiset.card.{0} (Prod.{0, 0} Nat Nat)) (Multiset.Nat.antidiagonal n)) (HAdd.hAdd.{0, 0, 0} Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Multiset.{0} (Prod.{0, 0} Nat Nat)) => Nat) (Multiset.Nat.antidiagonal n)) Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Multiset.{0} (Prod.{0, 0} Nat Nat)) => Nat) (Multiset.Nat.antidiagonal n)) 1 (instOfNatNat 1)))
+  forall (n : Nat), Eq.{1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Multiset.{0} (Prod.{0, 0} Nat Nat)) => Nat) (Multiset.Nat.antidiagonal n)) (FunLike.coe.{1, 1, 1} (AddMonoidHom.{0, 0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.instOrderedCancelAddCommMonoidMultiset.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)) (Multiset.{0} (Prod.{0, 0} Nat Nat)) (fun (_x : Multiset.{0} (Prod.{0, 0} Nat Nat)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Multiset.{0} (Prod.{0, 0} Nat Nat)) => Nat) _x) (AddHomClass.toFunLike.{0, 0, 0} (AddMonoidHom.{0, 0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.instOrderedCancelAddCommMonoidMultiset.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)) (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddZeroClass.toAdd.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.instOrderedCancelAddCommMonoidMultiset.{0} (Prod.{0, 0} Nat Nat)))))))) (AddZeroClass.toAdd.{0} Nat (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)) (AddMonoidHomClass.toAddHomClass.{0, 0, 0} (AddMonoidHom.{0, 0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.instOrderedCancelAddCommMonoidMultiset.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)) (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.instOrderedCancelAddCommMonoidMultiset.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid) (AddMonoidHom.addMonoidHomClass.{0, 0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) Nat (AddMonoid.toAddZeroClass.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddRightCancelMonoid.toAddMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelMonoid.toAddRightCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (AddCancelCommMonoid.toAddCancelMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{0} (Multiset.{0} (Prod.{0, 0} Nat Nat)) (Multiset.instOrderedCancelAddCommMonoidMultiset.{0} (Prod.{0, 0} Nat Nat))))))) (AddMonoid.toAddZeroClass.{0} Nat Nat.addMonoid)))) (Multiset.card.{0} (Prod.{0, 0} Nat Nat)) (Multiset.Nat.antidiagonal n)) (HAdd.hAdd.{0, 0, 0} Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Multiset.{0} (Prod.{0, 0} Nat Nat)) => Nat) (Multiset.Nat.antidiagonal n)) Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Multiset.{0} (Prod.{0, 0} Nat Nat)) => Nat) (Multiset.Nat.antidiagonal n)) 1 (instOfNatNat 1)))
 Case conversion may be inaccurate. Consider using '#align multiset.nat.card_antidiagonal Multiset.Nat.card_antidiagonalₓ'. -/
 /-- The cardinality of the antidiagonal of `n` is `n+1`. -/
 @[simp]

Changes in mathlib4

mathlib3
mathlib4
chore: Rename lemmas about the coercion List → Multiset (#11099)

These did not respect the naming convention by having the coe as a prefix instead of a suffix, or vice-versa. Also add a bunch of norm_cast

Diff
@@ -58,12 +58,12 @@ theorem nodup_antidiagonal (n : ℕ) : Nodup (antidiagonal n) :=
 @[simp]
 theorem antidiagonal_succ {n : ℕ} :
     antidiagonal (n + 1) = (0, n + 1) ::ₘ (antidiagonal n).map (Prod.map Nat.succ id) := by
-  simp only [antidiagonal, List.Nat.antidiagonal_succ, coe_map, cons_coe]
+  simp only [antidiagonal, List.Nat.antidiagonal_succ, map_coe, cons_coe]
 #align multiset.nat.antidiagonal_succ Multiset.Nat.antidiagonal_succ
 
 theorem antidiagonal_succ' {n : ℕ} :
     antidiagonal (n + 1) = (n + 1, 0) ::ₘ (antidiagonal n).map (Prod.map id Nat.succ) := by
-  rw [antidiagonal, List.Nat.antidiagonal_succ', ← coe_add, add_comm, antidiagonal, coe_map,
+  rw [antidiagonal, List.Nat.antidiagonal_succ', ← coe_add, add_comm, antidiagonal, map_coe,
     coe_add, List.singleton_append, cons_coe]
 #align multiset.nat.antidiagonal_succ' Multiset.Nat.antidiagonal_succ'
 
@@ -75,7 +75,7 @@ theorem antidiagonal_succ_succ' {n : ℕ} :
 #align multiset.nat.antidiagonal_succ_succ' Multiset.Nat.antidiagonal_succ_succ'
 
 theorem map_swap_antidiagonal {n : ℕ} : (antidiagonal n).map Prod.swap = antidiagonal n := by
-  rw [antidiagonal, coe_map, List.Nat.map_swap_antidiagonal, coe_reverse]
+  rw [antidiagonal, map_coe, List.Nat.map_swap_antidiagonal, coe_reverse]
 #align multiset.nat.map_swap_antidiagonal Multiset.Nat.map_swap_antidiagonal
 
 end Nat
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,15 +2,12 @@
 Copyright (c) 2019 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin
-
-! This file was ported from Lean 3 source module data.multiset.nat_antidiagonal
-! leanprover-community/mathlib commit 9003f28797c0664a49e4179487267c494477d853
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.Multiset.Nodup
 import Mathlib.Data.List.NatAntidiagonal
 
+#align_import data.multiset.nat_antidiagonal from "leanprover-community/mathlib"@"9003f28797c0664a49e4179487267c494477d853"
+
 /-!
 # Antidiagonals in ℕ × ℕ as multisets
 
chore: bye-bye, solo bys! (#3825)

This PR puts, with one exception, every single remaining by that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh. The exception is when the by begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.

Essentially this is s/\n *by$/ by/g, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated bys".

Diff
@@ -72,8 +72,7 @@ theorem antidiagonal_succ' {n : ℕ} :
 
 theorem antidiagonal_succ_succ' {n : ℕ} :
     antidiagonal (n + 2) =
-      (0, n + 2) ::ₘ (n + 2, 0) ::ₘ (antidiagonal n).map (Prod.map Nat.succ Nat.succ) :=
-  by
+      (0, n + 2) ::ₘ (n + 2, 0) ::ₘ (antidiagonal n).map (Prod.map Nat.succ Nat.succ) := by
   rw [antidiagonal_succ, antidiagonal_succ', map_cons, map_map, Prod_map]
   rfl
 #align multiset.nat.antidiagonal_succ_succ' Multiset.Nat.antidiagonal_succ_succ'
feat: port Data.Multiset.NatAntidiagonal (#1561)

Dependencies 2 + 149

150 files ported (98.7%)
67242 lines ported (99.8%)
Show graph

The unported dependencies are