data.finsupp.to_dfinsuppMathlib.Data.Finsupp.ToDFinsupp

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
 -/
 import Algebra.Module.Equiv
-import Data.Dfinsupp.Basic
+import Data.DFinsupp.Basic
 import Data.Finsupp.Basic
 
 #align_import data.finsupp.to_dfinsupp from "leanprover-community/mathlib"@"4c19a16e4b705bf135cf9a80ac18fcc99c438514"
Diff
@@ -327,7 +327,7 @@ def sigmaFinsuppEquivDFinsupp [Zero N] : ((Σ i, η i) →₀ N) ≃ Π₀ i, η
         finset.mem_sigma.mpr ⟨_, mem_support_iff.mpr hg⟩
     simp only [Ne.def, DFinsupp.mem_support_toFun]
     intro h
-    rw [h] at hg 
+    rw [h] at hg
     simpa using hg
   left_inv f := by ext; simp [split]
   right_inv f := by ext; simp [split]
Diff
@@ -380,7 +380,7 @@ theorem sigmaFinsuppEquivDFinsupp_single [DecidableEq ι] [Zero N] (a : Σ i, η
 -/
 
 -- Without this Lean fails to find the `add_zero_class` instance on `Π₀ i, (η i →₀ N)`.
-attribute [-instance] Finsupp.zero
+attribute [-instance] Finsupp.instZero
 
 #print sigmaFinsuppEquivDFinsupp_add /-
 @[simp]
@@ -402,7 +402,7 @@ def sigmaFinsuppAddEquivDFinsupp [AddZeroClass N] : ((Σ i, η i) →₀ N) ≃+
 #align sigma_finsupp_add_equiv_dfinsupp sigmaFinsuppAddEquivDFinsupp
 -/
 
-attribute [-instance] Finsupp.addZeroClass
+attribute [-instance] Finsupp.instAddZeroClass
 
 #print sigmaFinsuppEquivDFinsupp_smul /-
 --tofix: r • (sigma_finsupp_equiv_dfinsupp f) doesn't work.
@@ -415,7 +415,7 @@ theorem sigmaFinsuppEquivDFinsupp_smul {R} [Monoid R] [AddMonoid N] [DistribMulA
 #align sigma_finsupp_equiv_dfinsupp_smul sigmaFinsuppEquivDFinsupp_smul
 -/
 
-attribute [-instance] Finsupp.addMonoid
+attribute [-instance] Finsupp.instAddMonoid
 
 #print sigmaFinsuppLequivDFinsupp /-
 /-- `finsupp.split` is a linear equivalence between `(Σ i, η i) →₀ N` and `Π₀ i, (η i →₀ N)`. -/
Diff
@@ -372,10 +372,10 @@ theorem sigmaFinsuppEquivDFinsupp_single [DecidableEq ι] [Zero N] (a : Σ i, η
   ext j b
   by_cases h : i = j
   · subst h
-    classical
+    classical simp [split_apply, Finsupp.single_apply]
   suffices Finsupp.single (⟨i, a⟩ : Σ i, η i) n ⟨j, b⟩ = 0 by simp [split_apply, dif_neg h, this]
   have H : (⟨i, a⟩ : Σ i, η i) ≠ ⟨j, b⟩ := by simp [h]
-  classical
+  classical rw [Finsupp.single_apply, if_neg H]
 #align sigma_finsupp_equiv_dfinsupp_single sigmaFinsuppEquivDFinsupp_single
 -/
 
Diff
@@ -372,10 +372,10 @@ theorem sigmaFinsuppEquivDFinsupp_single [DecidableEq ι] [Zero N] (a : Σ i, η
   ext j b
   by_cases h : i = j
   · subst h
-    classical simp [split_apply, Finsupp.single_apply]
+    classical
   suffices Finsupp.single (⟨i, a⟩ : Σ i, η i) n ⟨j, b⟩ = 0 by simp [split_apply, dif_neg h, this]
   have H : (⟨i, a⟩ : Σ i, η i) ≠ ⟨j, b⟩ := by simp [h]
-  classical rw [Finsupp.single_apply, if_neg H]
+  classical
 #align sigma_finsupp_equiv_dfinsupp_single sigmaFinsuppEquivDFinsupp_single
 -/
 
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2021 Eric Wieser. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
 -/
-import Mathbin.Algebra.Module.Equiv
-import Mathbin.Data.Dfinsupp.Basic
-import Mathbin.Data.Finsupp.Basic
+import Algebra.Module.Equiv
+import Data.Dfinsupp.Basic
+import Data.Finsupp.Basic
 
 #align_import data.finsupp.to_dfinsupp from "leanprover-community/mathlib"@"4c19a16e4b705bf135cf9a80ac18fcc99c438514"
 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2021 Eric Wieser. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
-
-! This file was ported from Lean 3 source module data.finsupp.to_dfinsupp
-! leanprover-community/mathlib commit 4c19a16e4b705bf135cf9a80ac18fcc99c438514
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Module.Equiv
 import Mathbin.Data.Dfinsupp.Basic
 import Mathbin.Data.Finsupp.Basic
 
+#align_import data.finsupp.to_dfinsupp from "leanprover-community/mathlib"@"4c19a16e4b705bf135cf9a80ac18fcc99c438514"
+
 /-!
 # Conversion between `finsupp` and homogenous `dfinsupp`
 
Diff
@@ -73,89 +73,89 @@ variable {ι : Type _} {R : Type _} {M : Type _}
 
 section Defs
 
-#print Finsupp.toDfinsupp /-
+#print Finsupp.toDFinsupp /-
 /-- Interpret a `finsupp` as a homogenous `dfinsupp`. -/
-def Finsupp.toDfinsupp [Zero M] (f : ι →₀ M) : Π₀ i : ι, M
+def Finsupp.toDFinsupp [Zero M] (f : ι →₀ M) : Π₀ i : ι, M
     where
   toFun := f
   support' :=
     Trunc.mk
       ⟨f.support.1, fun i => (Classical.em (f i = 0)).symm.imp_left Finsupp.mem_support_iff.mpr⟩
-#align finsupp.to_dfinsupp Finsupp.toDfinsupp
+#align finsupp.to_dfinsupp Finsupp.toDFinsupp
 -/
 
-#print Finsupp.toDfinsupp_coe /-
+#print Finsupp.toDFinsupp_coe /-
 @[simp]
-theorem Finsupp.toDfinsupp_coe [Zero M] (f : ι →₀ M) : ⇑f.toDfinsupp = f :=
+theorem Finsupp.toDFinsupp_coe [Zero M] (f : ι →₀ M) : ⇑f.toDFinsupp = f :=
   rfl
-#align finsupp.to_dfinsupp_coe Finsupp.toDfinsupp_coe
+#align finsupp.to_dfinsupp_coe Finsupp.toDFinsupp_coe
 -/
 
 section
 
 variable [DecidableEq ι] [Zero M]
 
-#print Finsupp.toDfinsupp_single /-
+#print Finsupp.toDFinsupp_single /-
 @[simp]
-theorem Finsupp.toDfinsupp_single (i : ι) (m : M) :
-    (Finsupp.single i m).toDfinsupp = Dfinsupp.single i m := by ext;
-  simp [Finsupp.single_apply, Dfinsupp.single_apply]
-#align finsupp.to_dfinsupp_single Finsupp.toDfinsupp_single
+theorem Finsupp.toDFinsupp_single (i : ι) (m : M) :
+    (Finsupp.single i m).toDFinsupp = DFinsupp.single i m := by ext;
+  simp [Finsupp.single_apply, DFinsupp.single_apply]
+#align finsupp.to_dfinsupp_single Finsupp.toDFinsupp_single
 -/
 
 variable [∀ m : M, Decidable (m ≠ 0)]
 
-#print toDfinsupp_support /-
+#print toDFinsupp_support /-
 @[simp]
-theorem toDfinsupp_support (f : ι →₀ M) : f.toDfinsupp.support = f.support := by ext; simp
-#align to_dfinsupp_support toDfinsupp_support
+theorem toDFinsupp_support (f : ι →₀ M) : f.toDFinsupp.support = f.support := by ext; simp
+#align to_dfinsupp_support toDFinsupp_support
 -/
 
-#print Dfinsupp.toFinsupp /-
+#print DFinsupp.toFinsupp /-
 /-- Interpret a homogenous `dfinsupp` as a `finsupp`.
 
 Note that the elaborator has a lot of trouble with this definition - it is often necessary to
 write `(dfinsupp.to_finsupp f : ι →₀ M)` instead of `f.to_finsupp`, as for some unknown reason
 using dot notation or omitting the type ascription prevents the type being resolved correctly. -/
-def Dfinsupp.toFinsupp (f : Π₀ i : ι, M) : ι →₀ M :=
-  ⟨f.support, f, fun i => by simp only [Dfinsupp.mem_support_iff]⟩
-#align dfinsupp.to_finsupp Dfinsupp.toFinsupp
+def DFinsupp.toFinsupp (f : Π₀ i : ι, M) : ι →₀ M :=
+  ⟨f.support, f, fun i => by simp only [DFinsupp.mem_support_iff]⟩
+#align dfinsupp.to_finsupp DFinsupp.toFinsupp
 -/
 
-#print Dfinsupp.toFinsupp_coe /-
+#print DFinsupp.toFinsupp_coe /-
 @[simp]
-theorem Dfinsupp.toFinsupp_coe (f : Π₀ i : ι, M) : ⇑f.toFinsupp = f :=
+theorem DFinsupp.toFinsupp_coe (f : Π₀ i : ι, M) : ⇑f.toFinsupp = f :=
   rfl
-#align dfinsupp.to_finsupp_coe Dfinsupp.toFinsupp_coe
+#align dfinsupp.to_finsupp_coe DFinsupp.toFinsupp_coe
 -/
 
-#print Dfinsupp.toFinsupp_support /-
+#print DFinsupp.toFinsupp_support /-
 @[simp]
-theorem Dfinsupp.toFinsupp_support (f : Π₀ i : ι, M) : f.toFinsupp.support = f.support := by ext;
+theorem DFinsupp.toFinsupp_support (f : Π₀ i : ι, M) : f.toFinsupp.support = f.support := by ext;
   simp
-#align dfinsupp.to_finsupp_support Dfinsupp.toFinsupp_support
+#align dfinsupp.to_finsupp_support DFinsupp.toFinsupp_support
 -/
 
-#print Dfinsupp.toFinsupp_single /-
+#print DFinsupp.toFinsupp_single /-
 @[simp]
-theorem Dfinsupp.toFinsupp_single (i : ι) (m : M) :
-    (Dfinsupp.single i m : Π₀ i : ι, M).toFinsupp = Finsupp.single i m := by ext;
-  simp [Finsupp.single_apply, Dfinsupp.single_apply]
-#align dfinsupp.to_finsupp_single Dfinsupp.toFinsupp_single
+theorem DFinsupp.toFinsupp_single (i : ι) (m : M) :
+    (DFinsupp.single i m : Π₀ i : ι, M).toFinsupp = Finsupp.single i m := by ext;
+  simp [Finsupp.single_apply, DFinsupp.single_apply]
+#align dfinsupp.to_finsupp_single DFinsupp.toFinsupp_single
 -/
 
-#print Finsupp.toDfinsupp_toFinsupp /-
+#print Finsupp.toDFinsupp_toFinsupp /-
 @[simp]
-theorem Finsupp.toDfinsupp_toFinsupp (f : ι →₀ M) : f.toDfinsupp.toFinsupp = f :=
+theorem Finsupp.toDFinsupp_toFinsupp (f : ι →₀ M) : f.toDFinsupp.toFinsupp = f :=
   Finsupp.coeFn_injective rfl
-#align finsupp.to_dfinsupp_to_finsupp Finsupp.toDfinsupp_toFinsupp
+#align finsupp.to_dfinsupp_to_finsupp Finsupp.toDFinsupp_toFinsupp
 -/
 
-#print Dfinsupp.toFinsupp_toDfinsupp /-
+#print DFinsupp.toFinsupp_toDFinsupp /-
 @[simp]
-theorem Dfinsupp.toFinsupp_toDfinsupp (f : Π₀ i : ι, M) : f.toFinsupp.toDfinsupp = f :=
-  Dfinsupp.coeFn_injective rfl
-#align dfinsupp.to_finsupp_to_dfinsupp Dfinsupp.toFinsupp_toDfinsupp
+theorem DFinsupp.toFinsupp_toDFinsupp (f : Π₀ i : ι, M) : f.toFinsupp.toDFinsupp = f :=
+  DFinsupp.coeFn_injective rfl
+#align dfinsupp.to_finsupp_to_dfinsupp DFinsupp.toFinsupp_toDFinsupp
 -/
 
 end
@@ -169,90 +169,90 @@ section Lemmas
 
 namespace Finsupp
 
-#print Finsupp.toDfinsupp_zero /-
+#print Finsupp.toDFinsupp_zero /-
 @[simp]
-theorem toDfinsupp_zero [Zero M] : (0 : ι →₀ M).toDfinsupp = 0 :=
-  Dfinsupp.coeFn_injective rfl
-#align finsupp.to_dfinsupp_zero Finsupp.toDfinsupp_zero
+theorem toDFinsupp_zero [Zero M] : (0 : ι →₀ M).toDFinsupp = 0 :=
+  DFinsupp.coeFn_injective rfl
+#align finsupp.to_dfinsupp_zero Finsupp.toDFinsupp_zero
 -/
 
-#print Finsupp.toDfinsupp_add /-
+#print Finsupp.toDFinsupp_add /-
 @[simp]
-theorem toDfinsupp_add [AddZeroClass M] (f g : ι →₀ M) :
-    (f + g).toDfinsupp = f.toDfinsupp + g.toDfinsupp :=
-  Dfinsupp.coeFn_injective rfl
-#align finsupp.to_dfinsupp_add Finsupp.toDfinsupp_add
+theorem toDFinsupp_add [AddZeroClass M] (f g : ι →₀ M) :
+    (f + g).toDFinsupp = f.toDFinsupp + g.toDFinsupp :=
+  DFinsupp.coeFn_injective rfl
+#align finsupp.to_dfinsupp_add Finsupp.toDFinsupp_add
 -/
 
-#print Finsupp.toDfinsupp_neg /-
+#print Finsupp.toDFinsupp_neg /-
 @[simp]
-theorem toDfinsupp_neg [AddGroup M] (f : ι →₀ M) : (-f).toDfinsupp = -f.toDfinsupp :=
-  Dfinsupp.coeFn_injective rfl
-#align finsupp.to_dfinsupp_neg Finsupp.toDfinsupp_neg
+theorem toDFinsupp_neg [AddGroup M] (f : ι →₀ M) : (-f).toDFinsupp = -f.toDFinsupp :=
+  DFinsupp.coeFn_injective rfl
+#align finsupp.to_dfinsupp_neg Finsupp.toDFinsupp_neg
 -/
 
-#print Finsupp.toDfinsupp_sub /-
+#print Finsupp.toDFinsupp_sub /-
 @[simp]
-theorem toDfinsupp_sub [AddGroup M] (f g : ι →₀ M) :
-    (f - g).toDfinsupp = f.toDfinsupp - g.toDfinsupp :=
-  Dfinsupp.coeFn_injective rfl
-#align finsupp.to_dfinsupp_sub Finsupp.toDfinsupp_sub
+theorem toDFinsupp_sub [AddGroup M] (f g : ι →₀ M) :
+    (f - g).toDFinsupp = f.toDFinsupp - g.toDFinsupp :=
+  DFinsupp.coeFn_injective rfl
+#align finsupp.to_dfinsupp_sub Finsupp.toDFinsupp_sub
 -/
 
-#print Finsupp.toDfinsupp_smul /-
+#print Finsupp.toDFinsupp_smul /-
 @[simp]
-theorem toDfinsupp_smul [Monoid R] [AddMonoid M] [DistribMulAction R M] (r : R) (f : ι →₀ M) :
-    (r • f).toDfinsupp = r • f.toDfinsupp :=
-  Dfinsupp.coeFn_injective rfl
-#align finsupp.to_dfinsupp_smul Finsupp.toDfinsupp_smul
+theorem toDFinsupp_smul [Monoid R] [AddMonoid M] [DistribMulAction R M] (r : R) (f : ι →₀ M) :
+    (r • f).toDFinsupp = r • f.toDFinsupp :=
+  DFinsupp.coeFn_injective rfl
+#align finsupp.to_dfinsupp_smul Finsupp.toDFinsupp_smul
 -/
 
 end Finsupp
 
-namespace Dfinsupp
+namespace DFinsupp
 
 variable [DecidableEq ι]
 
-#print Dfinsupp.toFinsupp_zero /-
+#print DFinsupp.toFinsupp_zero /-
 @[simp]
 theorem toFinsupp_zero [Zero M] [∀ m : M, Decidable (m ≠ 0)] : toFinsupp 0 = (0 : ι →₀ M) :=
   Finsupp.coeFn_injective rfl
-#align dfinsupp.to_finsupp_zero Dfinsupp.toFinsupp_zero
+#align dfinsupp.to_finsupp_zero DFinsupp.toFinsupp_zero
 -/
 
-#print Dfinsupp.toFinsupp_add /-
+#print DFinsupp.toFinsupp_add /-
 @[simp]
 theorem toFinsupp_add [AddZeroClass M] [∀ m : M, Decidable (m ≠ 0)] (f g : Π₀ i : ι, M) :
     (toFinsupp (f + g) : ι →₀ M) = toFinsupp f + toFinsupp g :=
-  Finsupp.coeFn_injective <| Dfinsupp.coe_add _ _
-#align dfinsupp.to_finsupp_add Dfinsupp.toFinsupp_add
+  Finsupp.coeFn_injective <| DFinsupp.coe_add _ _
+#align dfinsupp.to_finsupp_add DFinsupp.toFinsupp_add
 -/
 
-#print Dfinsupp.toFinsupp_neg /-
+#print DFinsupp.toFinsupp_neg /-
 @[simp]
 theorem toFinsupp_neg [AddGroup M] [∀ m : M, Decidable (m ≠ 0)] (f : Π₀ i : ι, M) :
     (toFinsupp (-f) : ι →₀ M) = -toFinsupp f :=
-  Finsupp.coeFn_injective <| Dfinsupp.coe_neg _
-#align dfinsupp.to_finsupp_neg Dfinsupp.toFinsupp_neg
+  Finsupp.coeFn_injective <| DFinsupp.coe_neg _
+#align dfinsupp.to_finsupp_neg DFinsupp.toFinsupp_neg
 -/
 
-#print Dfinsupp.toFinsupp_sub /-
+#print DFinsupp.toFinsupp_sub /-
 @[simp]
 theorem toFinsupp_sub [AddGroup M] [∀ m : M, Decidable (m ≠ 0)] (f g : Π₀ i : ι, M) :
     (toFinsupp (f - g) : ι →₀ M) = toFinsupp f - toFinsupp g :=
-  Finsupp.coeFn_injective <| Dfinsupp.coe_sub _ _
-#align dfinsupp.to_finsupp_sub Dfinsupp.toFinsupp_sub
+  Finsupp.coeFn_injective <| DFinsupp.coe_sub _ _
+#align dfinsupp.to_finsupp_sub DFinsupp.toFinsupp_sub
 -/
 
-#print Dfinsupp.toFinsupp_smul /-
+#print DFinsupp.toFinsupp_smul /-
 @[simp]
 theorem toFinsupp_smul [Monoid R] [AddMonoid M] [DistribMulAction R M] [∀ m : M, Decidable (m ≠ 0)]
     (r : R) (f : Π₀ i : ι, M) : (toFinsupp (r • f) : ι →₀ M) = r • toFinsupp f :=
-  Finsupp.coeFn_injective <| Dfinsupp.coe_smul _ _
-#align dfinsupp.to_finsupp_smul Dfinsupp.toFinsupp_smul
+  Finsupp.coeFn_injective <| DFinsupp.coe_smul _ _
+#align dfinsupp.to_finsupp_smul DFinsupp.toFinsupp_smul
 -/
 
-end Dfinsupp
+end DFinsupp
 
 end Lemmas
 
@@ -261,45 +261,45 @@ end Lemmas
 
 section Equivs
 
-#print finsuppEquivDfinsupp /-
+#print finsuppEquivDFinsupp /-
 /-- `finsupp.to_dfinsupp` and `dfinsupp.to_finsupp` together form an equiv. -/
 @[simps (config := { fullyApplied := false })]
-def finsuppEquivDfinsupp [DecidableEq ι] [Zero M] [∀ m : M, Decidable (m ≠ 0)] :
+def finsuppEquivDFinsupp [DecidableEq ι] [Zero M] [∀ m : M, Decidable (m ≠ 0)] :
     (ι →₀ M) ≃ Π₀ i : ι, M where
-  toFun := Finsupp.toDfinsupp
-  invFun := Dfinsupp.toFinsupp
-  left_inv := Finsupp.toDfinsupp_toFinsupp
-  right_inv := Dfinsupp.toFinsupp_toDfinsupp
-#align finsupp_equiv_dfinsupp finsuppEquivDfinsupp
+  toFun := Finsupp.toDFinsupp
+  invFun := DFinsupp.toFinsupp
+  left_inv := Finsupp.toDFinsupp_toFinsupp
+  right_inv := DFinsupp.toFinsupp_toDFinsupp
+#align finsupp_equiv_dfinsupp finsuppEquivDFinsupp
 -/
 
-#print finsuppAddEquivDfinsupp /-
+#print finsuppAddEquivDFinsupp /-
 /-- The additive version of `finsupp.to_finsupp`. Note that this is `noncomputable` because
 `finsupp.has_add` is noncomputable. -/
 @[simps (config := { fullyApplied := false })]
-def finsuppAddEquivDfinsupp [DecidableEq ι] [AddZeroClass M] [∀ m : M, Decidable (m ≠ 0)] :
+def finsuppAddEquivDFinsupp [DecidableEq ι] [AddZeroClass M] [∀ m : M, Decidable (m ≠ 0)] :
     (ι →₀ M) ≃+ Π₀ i : ι, M :=
-  { finsuppEquivDfinsupp with
-    toFun := Finsupp.toDfinsupp
-    invFun := Dfinsupp.toFinsupp
-    map_add' := Finsupp.toDfinsupp_add }
-#align finsupp_add_equiv_dfinsupp finsuppAddEquivDfinsupp
+  { finsuppEquivDFinsupp with
+    toFun := Finsupp.toDFinsupp
+    invFun := DFinsupp.toFinsupp
+    map_add' := Finsupp.toDFinsupp_add }
+#align finsupp_add_equiv_dfinsupp finsuppAddEquivDFinsupp
 -/
 
 variable (R)
 
-#print finsuppLequivDfinsupp /-
+#print finsuppLequivDFinsupp /-
 /-- The additive version of `finsupp.to_finsupp`. Note that this is `noncomputable` because
 `finsupp.has_add` is noncomputable. -/
 @[simps (config := { fullyApplied := false })]
-def finsuppLequivDfinsupp [DecidableEq ι] [Semiring R] [AddCommMonoid M]
+def finsuppLequivDFinsupp [DecidableEq ι] [Semiring R] [AddCommMonoid M]
     [∀ m : M, Decidable (m ≠ 0)] [Module R M] : (ι →₀ M) ≃ₗ[R] Π₀ i : ι, M :=
-  { finsuppEquivDfinsupp with
-    toFun := Finsupp.toDfinsupp
-    invFun := Dfinsupp.toFinsupp
-    map_smul' := Finsupp.toDfinsupp_smul
-    map_add' := Finsupp.toDfinsupp_add }
-#align finsupp_lequiv_dfinsupp finsuppLequivDfinsupp
+  { finsuppEquivDFinsupp with
+    toFun := Finsupp.toDFinsupp
+    invFun := DFinsupp.toFinsupp
+    map_smul' := Finsupp.toDFinsupp_smul
+    map_add' := Finsupp.toDFinsupp_add }
+#align finsupp_lequiv_dfinsupp finsuppLequivDFinsupp
 -/
 
 section Sigma
@@ -311,9 +311,9 @@ variable {η : ι → Type _} {N : Type _} [Semiring R]
 
 open Finsupp
 
-#print sigmaFinsuppEquivDfinsupp /-
+#print sigmaFinsuppEquivDFinsupp /-
 /-- `finsupp.split` is an equivalence between `(Σ i, η i) →₀ N` and `Π₀ i, (η i →₀ N)`. -/
-def sigmaFinsuppEquivDfinsupp [Zero N] : ((Σ i, η i) →₀ N) ≃ Π₀ i, η i →₀ N
+def sigmaFinsuppEquivDFinsupp [Zero N] : ((Σ i, η i) →₀ N) ≃ Π₀ i, η i →₀ N
     where
   toFun f :=
     ⟨split f,
@@ -328,48 +328,48 @@ def sigmaFinsuppEquivDfinsupp [Zero N] : ((Σ i, η i) →₀ N) ≃ Π₀ i, η
     refine'
       on_finset (Finset.sigma f.support fun j => (f j).support) (fun ji => f ji.1 ji.2) fun g hg =>
         finset.mem_sigma.mpr ⟨_, mem_support_iff.mpr hg⟩
-    simp only [Ne.def, Dfinsupp.mem_support_toFun]
+    simp only [Ne.def, DFinsupp.mem_support_toFun]
     intro h
     rw [h] at hg 
     simpa using hg
   left_inv f := by ext; simp [split]
   right_inv f := by ext; simp [split]
-#align sigma_finsupp_equiv_dfinsupp sigmaFinsuppEquivDfinsupp
+#align sigma_finsupp_equiv_dfinsupp sigmaFinsuppEquivDFinsupp
 -/
 
-#print sigmaFinsuppEquivDfinsupp_apply /-
+#print sigmaFinsuppEquivDFinsupp_apply /-
 @[simp]
-theorem sigmaFinsuppEquivDfinsupp_apply [Zero N] (f : (Σ i, η i) →₀ N) :
-    (sigmaFinsuppEquivDfinsupp f : ∀ i, η i →₀ N) = Finsupp.split f :=
+theorem sigmaFinsuppEquivDFinsupp_apply [Zero N] (f : (Σ i, η i) →₀ N) :
+    (sigmaFinsuppEquivDFinsupp f : ∀ i, η i →₀ N) = Finsupp.split f :=
   rfl
-#align sigma_finsupp_equiv_dfinsupp_apply sigmaFinsuppEquivDfinsupp_apply
+#align sigma_finsupp_equiv_dfinsupp_apply sigmaFinsuppEquivDFinsupp_apply
 -/
 
-#print sigmaFinsuppEquivDfinsupp_symm_apply /-
+#print sigmaFinsuppEquivDFinsupp_symm_apply /-
 @[simp]
-theorem sigmaFinsuppEquivDfinsupp_symm_apply [Zero N] (f : Π₀ i, η i →₀ N) (s : Σ i, η i) :
-    (sigmaFinsuppEquivDfinsupp.symm f : (Σ i, η i) →₀ N) s = f s.1 s.2 :=
+theorem sigmaFinsuppEquivDFinsupp_symm_apply [Zero N] (f : Π₀ i, η i →₀ N) (s : Σ i, η i) :
+    (sigmaFinsuppEquivDFinsupp.symm f : (Σ i, η i) →₀ N) s = f s.1 s.2 :=
   rfl
-#align sigma_finsupp_equiv_dfinsupp_symm_apply sigmaFinsuppEquivDfinsupp_symm_apply
+#align sigma_finsupp_equiv_dfinsupp_symm_apply sigmaFinsuppEquivDFinsupp_symm_apply
 -/
 
-#print sigmaFinsuppEquivDfinsupp_support /-
+#print sigmaFinsuppEquivDFinsupp_support /-
 @[simp]
-theorem sigmaFinsuppEquivDfinsupp_support [DecidableEq ι] [Zero N]
+theorem sigmaFinsuppEquivDFinsupp_support [DecidableEq ι] [Zero N]
     [∀ (i : ι) (x : η i →₀ N), Decidable (x ≠ 0)] (f : (Σ i, η i) →₀ N) :
-    (sigmaFinsuppEquivDfinsupp f).support = Finsupp.splitSupport f :=
+    (sigmaFinsuppEquivDFinsupp f).support = Finsupp.splitSupport f :=
   by
   ext
-  rw [Dfinsupp.mem_support_toFun]
+  rw [DFinsupp.mem_support_toFun]
   exact (Finsupp.mem_splitSupport_iff_nonzero _ _).symm
-#align sigma_finsupp_equiv_dfinsupp_support sigmaFinsuppEquivDfinsupp_support
+#align sigma_finsupp_equiv_dfinsupp_support sigmaFinsuppEquivDFinsupp_support
 -/
 
-#print sigmaFinsuppEquivDfinsupp_single /-
+#print sigmaFinsuppEquivDFinsupp_single /-
 @[simp]
-theorem sigmaFinsuppEquivDfinsupp_single [DecidableEq ι] [Zero N] (a : Σ i, η i) (n : N) :
-    sigmaFinsuppEquivDfinsupp (Finsupp.single a n) =
-      @Dfinsupp.single _ (fun i => η i →₀ N) _ _ a.1 (Finsupp.single a.2 n) :=
+theorem sigmaFinsuppEquivDFinsupp_single [DecidableEq ι] [Zero N] (a : Σ i, η i) (n : N) :
+    sigmaFinsuppEquivDFinsupp (Finsupp.single a n) =
+      @DFinsupp.single _ (fun i => η i →₀ N) _ _ a.1 (Finsupp.single a.2 n) :=
   by
   obtain ⟨i, a⟩ := a
   ext j b
@@ -379,54 +379,54 @@ theorem sigmaFinsuppEquivDfinsupp_single [DecidableEq ι] [Zero N] (a : Σ i, η
   suffices Finsupp.single (⟨i, a⟩ : Σ i, η i) n ⟨j, b⟩ = 0 by simp [split_apply, dif_neg h, this]
   have H : (⟨i, a⟩ : Σ i, η i) ≠ ⟨j, b⟩ := by simp [h]
   classical rw [Finsupp.single_apply, if_neg H]
-#align sigma_finsupp_equiv_dfinsupp_single sigmaFinsuppEquivDfinsupp_single
+#align sigma_finsupp_equiv_dfinsupp_single sigmaFinsuppEquivDFinsupp_single
 -/
 
 -- Without this Lean fails to find the `add_zero_class` instance on `Π₀ i, (η i →₀ N)`.
 attribute [-instance] Finsupp.zero
 
-#print sigmaFinsuppEquivDfinsupp_add /-
+#print sigmaFinsuppEquivDFinsupp_add /-
 @[simp]
-theorem sigmaFinsuppEquivDfinsupp_add [AddZeroClass N] (f g : (Σ i, η i) →₀ N) :
-    sigmaFinsuppEquivDfinsupp (f + g) =
-      (sigmaFinsuppEquivDfinsupp f + sigmaFinsuppEquivDfinsupp g : Π₀ i : ι, η i →₀ N) :=
+theorem sigmaFinsuppEquivDFinsupp_add [AddZeroClass N] (f g : (Σ i, η i) →₀ N) :
+    sigmaFinsuppEquivDFinsupp (f + g) =
+      (sigmaFinsuppEquivDFinsupp f + sigmaFinsuppEquivDFinsupp g : Π₀ i : ι, η i →₀ N) :=
   by ext; rfl
-#align sigma_finsupp_equiv_dfinsupp_add sigmaFinsuppEquivDfinsupp_add
+#align sigma_finsupp_equiv_dfinsupp_add sigmaFinsuppEquivDFinsupp_add
 -/
 
-#print sigmaFinsuppAddEquivDfinsupp /-
+#print sigmaFinsuppAddEquivDFinsupp /-
 /-- `finsupp.split` is an additive equivalence between `(Σ i, η i) →₀ N` and `Π₀ i, (η i →₀ N)`. -/
 @[simps]
-def sigmaFinsuppAddEquivDfinsupp [AddZeroClass N] : ((Σ i, η i) →₀ N) ≃+ Π₀ i, η i →₀ N :=
-  { sigmaFinsuppEquivDfinsupp with
-    toFun := sigmaFinsuppEquivDfinsupp
-    invFun := sigmaFinsuppEquivDfinsupp.symm
-    map_add' := sigmaFinsuppEquivDfinsupp_add }
-#align sigma_finsupp_add_equiv_dfinsupp sigmaFinsuppAddEquivDfinsupp
+def sigmaFinsuppAddEquivDFinsupp [AddZeroClass N] : ((Σ i, η i) →₀ N) ≃+ Π₀ i, η i →₀ N :=
+  { sigmaFinsuppEquivDFinsupp with
+    toFun := sigmaFinsuppEquivDFinsupp
+    invFun := sigmaFinsuppEquivDFinsupp.symm
+    map_add' := sigmaFinsuppEquivDFinsupp_add }
+#align sigma_finsupp_add_equiv_dfinsupp sigmaFinsuppAddEquivDFinsupp
 -/
 
 attribute [-instance] Finsupp.addZeroClass
 
-#print sigmaFinsuppEquivDfinsupp_smul /-
+#print sigmaFinsuppEquivDFinsupp_smul /-
 --tofix: r • (sigma_finsupp_equiv_dfinsupp f) doesn't work.
 @[simp]
-theorem sigmaFinsuppEquivDfinsupp_smul {R} [Monoid R] [AddMonoid N] [DistribMulAction R N] (r : R)
+theorem sigmaFinsuppEquivDFinsupp_smul {R} [Monoid R] [AddMonoid N] [DistribMulAction R N] (r : R)
     (f : (Σ i, η i) →₀ N) :
-    sigmaFinsuppEquivDfinsupp (r • f) =
-      @SMul.smul R (Π₀ i, η i →₀ N) MulAction.toHasSmul r (sigmaFinsuppEquivDfinsupp f) :=
+    sigmaFinsuppEquivDFinsupp (r • f) =
+      @SMul.smul R (Π₀ i, η i →₀ N) MulAction.toHasSmul r (sigmaFinsuppEquivDFinsupp f) :=
   by ext; rfl
-#align sigma_finsupp_equiv_dfinsupp_smul sigmaFinsuppEquivDfinsupp_smul
+#align sigma_finsupp_equiv_dfinsupp_smul sigmaFinsuppEquivDFinsupp_smul
 -/
 
 attribute [-instance] Finsupp.addMonoid
 
-#print sigmaFinsuppLequivDfinsupp /-
+#print sigmaFinsuppLequivDFinsupp /-
 /-- `finsupp.split` is a linear equivalence between `(Σ i, η i) →₀ N` and `Π₀ i, (η i →₀ N)`. -/
 @[simps]
-def sigmaFinsuppLequivDfinsupp [AddCommMonoid N] [Module R N] :
+def sigmaFinsuppLequivDFinsupp [AddCommMonoid N] [Module R N] :
     ((Σ i, η i) →₀ N) ≃ₗ[R] Π₀ i, η i →₀ N :=
-  { sigmaFinsuppAddEquivDfinsupp with map_smul' := sigmaFinsuppEquivDfinsupp_smul }
-#align sigma_finsupp_lequiv_dfinsupp sigmaFinsuppLequivDfinsupp
+  { sigmaFinsuppAddEquivDFinsupp with map_smul' := sigmaFinsuppEquivDFinsupp_smul }
+#align sigma_finsupp_lequiv_dfinsupp sigmaFinsuppLequivDFinsupp
 -/
 
 end Sigma
Diff
@@ -372,7 +372,7 @@ theorem sigmaFinsuppEquivDfinsupp_single [DecidableEq ι] [Zero N] (a : Σ i, η
       @Dfinsupp.single _ (fun i => η i →₀ N) _ _ a.1 (Finsupp.single a.2 n) :=
   by
   obtain ⟨i, a⟩ := a
-  ext (j b)
+  ext j b
   by_cases h : i = j
   · subst h
     classical simp [split_apply, Finsupp.single_apply]
Diff
@@ -95,17 +95,21 @@ section
 
 variable [DecidableEq ι] [Zero M]
 
+#print Finsupp.toDfinsupp_single /-
 @[simp]
 theorem Finsupp.toDfinsupp_single (i : ι) (m : M) :
     (Finsupp.single i m).toDfinsupp = Dfinsupp.single i m := by ext;
   simp [Finsupp.single_apply, Dfinsupp.single_apply]
 #align finsupp.to_dfinsupp_single Finsupp.toDfinsupp_single
+-/
 
 variable [∀ m : M, Decidable (m ≠ 0)]
 
+#print toDfinsupp_support /-
 @[simp]
 theorem toDfinsupp_support (f : ι →₀ M) : f.toDfinsupp.support = f.support := by ext; simp
 #align to_dfinsupp_support toDfinsupp_support
+-/
 
 #print Dfinsupp.toFinsupp /-
 /-- Interpret a homogenous `dfinsupp` as a `finsupp`.
@@ -118,31 +122,41 @@ def Dfinsupp.toFinsupp (f : Π₀ i : ι, M) : ι →₀ M :=
 #align dfinsupp.to_finsupp Dfinsupp.toFinsupp
 -/
 
+#print Dfinsupp.toFinsupp_coe /-
 @[simp]
 theorem Dfinsupp.toFinsupp_coe (f : Π₀ i : ι, M) : ⇑f.toFinsupp = f :=
   rfl
 #align dfinsupp.to_finsupp_coe Dfinsupp.toFinsupp_coe
+-/
 
+#print Dfinsupp.toFinsupp_support /-
 @[simp]
 theorem Dfinsupp.toFinsupp_support (f : Π₀ i : ι, M) : f.toFinsupp.support = f.support := by ext;
   simp
 #align dfinsupp.to_finsupp_support Dfinsupp.toFinsupp_support
+-/
 
+#print Dfinsupp.toFinsupp_single /-
 @[simp]
 theorem Dfinsupp.toFinsupp_single (i : ι) (m : M) :
     (Dfinsupp.single i m : Π₀ i : ι, M).toFinsupp = Finsupp.single i m := by ext;
   simp [Finsupp.single_apply, Dfinsupp.single_apply]
 #align dfinsupp.to_finsupp_single Dfinsupp.toFinsupp_single
+-/
 
+#print Finsupp.toDfinsupp_toFinsupp /-
 @[simp]
 theorem Finsupp.toDfinsupp_toFinsupp (f : ι →₀ M) : f.toDfinsupp.toFinsupp = f :=
   Finsupp.coeFn_injective rfl
 #align finsupp.to_dfinsupp_to_finsupp Finsupp.toDfinsupp_toFinsupp
+-/
 
+#print Dfinsupp.toFinsupp_toDfinsupp /-
 @[simp]
 theorem Dfinsupp.toFinsupp_toDfinsupp (f : Π₀ i : ι, M) : f.toFinsupp.toDfinsupp = f :=
   Dfinsupp.coeFn_injective rfl
 #align dfinsupp.to_finsupp_to_dfinsupp Dfinsupp.toFinsupp_toDfinsupp
+-/
 
 end
 
@@ -162,28 +176,36 @@ theorem toDfinsupp_zero [Zero M] : (0 : ι →₀ M).toDfinsupp = 0 :=
 #align finsupp.to_dfinsupp_zero Finsupp.toDfinsupp_zero
 -/
 
+#print Finsupp.toDfinsupp_add /-
 @[simp]
 theorem toDfinsupp_add [AddZeroClass M] (f g : ι →₀ M) :
     (f + g).toDfinsupp = f.toDfinsupp + g.toDfinsupp :=
   Dfinsupp.coeFn_injective rfl
 #align finsupp.to_dfinsupp_add Finsupp.toDfinsupp_add
+-/
 
+#print Finsupp.toDfinsupp_neg /-
 @[simp]
 theorem toDfinsupp_neg [AddGroup M] (f : ι →₀ M) : (-f).toDfinsupp = -f.toDfinsupp :=
   Dfinsupp.coeFn_injective rfl
 #align finsupp.to_dfinsupp_neg Finsupp.toDfinsupp_neg
+-/
 
+#print Finsupp.toDfinsupp_sub /-
 @[simp]
 theorem toDfinsupp_sub [AddGroup M] (f g : ι →₀ M) :
     (f - g).toDfinsupp = f.toDfinsupp - g.toDfinsupp :=
   Dfinsupp.coeFn_injective rfl
 #align finsupp.to_dfinsupp_sub Finsupp.toDfinsupp_sub
+-/
 
+#print Finsupp.toDfinsupp_smul /-
 @[simp]
 theorem toDfinsupp_smul [Monoid R] [AddMonoid M] [DistribMulAction R M] (r : R) (f : ι →₀ M) :
     (r • f).toDfinsupp = r • f.toDfinsupp :=
   Dfinsupp.coeFn_injective rfl
 #align finsupp.to_dfinsupp_smul Finsupp.toDfinsupp_smul
+-/
 
 end Finsupp
 
@@ -198,29 +220,37 @@ theorem toFinsupp_zero [Zero M] [∀ m : M, Decidable (m ≠ 0)] : toFinsupp 0 =
 #align dfinsupp.to_finsupp_zero Dfinsupp.toFinsupp_zero
 -/
 
+#print Dfinsupp.toFinsupp_add /-
 @[simp]
 theorem toFinsupp_add [AddZeroClass M] [∀ m : M, Decidable (m ≠ 0)] (f g : Π₀ i : ι, M) :
     (toFinsupp (f + g) : ι →₀ M) = toFinsupp f + toFinsupp g :=
   Finsupp.coeFn_injective <| Dfinsupp.coe_add _ _
 #align dfinsupp.to_finsupp_add Dfinsupp.toFinsupp_add
+-/
 
+#print Dfinsupp.toFinsupp_neg /-
 @[simp]
 theorem toFinsupp_neg [AddGroup M] [∀ m : M, Decidable (m ≠ 0)] (f : Π₀ i : ι, M) :
     (toFinsupp (-f) : ι →₀ M) = -toFinsupp f :=
   Finsupp.coeFn_injective <| Dfinsupp.coe_neg _
 #align dfinsupp.to_finsupp_neg Dfinsupp.toFinsupp_neg
+-/
 
+#print Dfinsupp.toFinsupp_sub /-
 @[simp]
 theorem toFinsupp_sub [AddGroup M] [∀ m : M, Decidable (m ≠ 0)] (f g : Π₀ i : ι, M) :
     (toFinsupp (f - g) : ι →₀ M) = toFinsupp f - toFinsupp g :=
   Finsupp.coeFn_injective <| Dfinsupp.coe_sub _ _
 #align dfinsupp.to_finsupp_sub Dfinsupp.toFinsupp_sub
+-/
 
+#print Dfinsupp.toFinsupp_smul /-
 @[simp]
 theorem toFinsupp_smul [Monoid R] [AddMonoid M] [DistribMulAction R M] [∀ m : M, Decidable (m ≠ 0)]
     (r : R) (f : Π₀ i : ι, M) : (toFinsupp (r • f) : ι →₀ M) = r • toFinsupp f :=
   Finsupp.coeFn_injective <| Dfinsupp.coe_smul _ _
 #align dfinsupp.to_finsupp_smul Dfinsupp.toFinsupp_smul
+-/
 
 end Dfinsupp
 
@@ -243,6 +273,7 @@ def finsuppEquivDfinsupp [DecidableEq ι] [Zero M] [∀ m : M, Decidable (m ≠
 #align finsupp_equiv_dfinsupp finsuppEquivDfinsupp
 -/
 
+#print finsuppAddEquivDfinsupp /-
 /-- The additive version of `finsupp.to_finsupp`. Note that this is `noncomputable` because
 `finsupp.has_add` is noncomputable. -/
 @[simps (config := { fullyApplied := false })]
@@ -253,9 +284,11 @@ def finsuppAddEquivDfinsupp [DecidableEq ι] [AddZeroClass M] [∀ m : M, Decida
     invFun := Dfinsupp.toFinsupp
     map_add' := Finsupp.toDfinsupp_add }
 #align finsupp_add_equiv_dfinsupp finsuppAddEquivDfinsupp
+-/
 
 variable (R)
 
+#print finsuppLequivDfinsupp /-
 /-- The additive version of `finsupp.to_finsupp`. Note that this is `noncomputable` because
 `finsupp.has_add` is noncomputable. -/
 @[simps (config := { fullyApplied := false })]
@@ -267,6 +300,7 @@ def finsuppLequivDfinsupp [DecidableEq ι] [Semiring R] [AddCommMonoid M]
     map_smul' := Finsupp.toDfinsupp_smul
     map_add' := Finsupp.toDfinsupp_add }
 #align finsupp_lequiv_dfinsupp finsuppLequivDfinsupp
+-/
 
 section Sigma
 
@@ -303,18 +337,23 @@ def sigmaFinsuppEquivDfinsupp [Zero N] : ((Σ i, η i) →₀ N) ≃ Π₀ i, η
 #align sigma_finsupp_equiv_dfinsupp sigmaFinsuppEquivDfinsupp
 -/
 
+#print sigmaFinsuppEquivDfinsupp_apply /-
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_apply [Zero N] (f : (Σ i, η i) →₀ N) :
     (sigmaFinsuppEquivDfinsupp f : ∀ i, η i →₀ N) = Finsupp.split f :=
   rfl
 #align sigma_finsupp_equiv_dfinsupp_apply sigmaFinsuppEquivDfinsupp_apply
+-/
 
+#print sigmaFinsuppEquivDfinsupp_symm_apply /-
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_symm_apply [Zero N] (f : Π₀ i, η i →₀ N) (s : Σ i, η i) :
     (sigmaFinsuppEquivDfinsupp.symm f : (Σ i, η i) →₀ N) s = f s.1 s.2 :=
   rfl
 #align sigma_finsupp_equiv_dfinsupp_symm_apply sigmaFinsuppEquivDfinsupp_symm_apply
+-/
 
+#print sigmaFinsuppEquivDfinsupp_support /-
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_support [DecidableEq ι] [Zero N]
     [∀ (i : ι) (x : η i →₀ N), Decidable (x ≠ 0)] (f : (Σ i, η i) →₀ N) :
@@ -324,7 +363,9 @@ theorem sigmaFinsuppEquivDfinsupp_support [DecidableEq ι] [Zero N]
   rw [Dfinsupp.mem_support_toFun]
   exact (Finsupp.mem_splitSupport_iff_nonzero _ _).symm
 #align sigma_finsupp_equiv_dfinsupp_support sigmaFinsuppEquivDfinsupp_support
+-/
 
+#print sigmaFinsuppEquivDfinsupp_single /-
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_single [DecidableEq ι] [Zero N] (a : Σ i, η i) (n : N) :
     sigmaFinsuppEquivDfinsupp (Finsupp.single a n) =
@@ -339,17 +380,21 @@ theorem sigmaFinsuppEquivDfinsupp_single [DecidableEq ι] [Zero N] (a : Σ i, η
   have H : (⟨i, a⟩ : Σ i, η i) ≠ ⟨j, b⟩ := by simp [h]
   classical rw [Finsupp.single_apply, if_neg H]
 #align sigma_finsupp_equiv_dfinsupp_single sigmaFinsuppEquivDfinsupp_single
+-/
 
 -- Without this Lean fails to find the `add_zero_class` instance on `Π₀ i, (η i →₀ N)`.
 attribute [-instance] Finsupp.zero
 
+#print sigmaFinsuppEquivDfinsupp_add /-
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_add [AddZeroClass N] (f g : (Σ i, η i) →₀ N) :
     sigmaFinsuppEquivDfinsupp (f + g) =
       (sigmaFinsuppEquivDfinsupp f + sigmaFinsuppEquivDfinsupp g : Π₀ i : ι, η i →₀ N) :=
   by ext; rfl
 #align sigma_finsupp_equiv_dfinsupp_add sigmaFinsuppEquivDfinsupp_add
+-/
 
+#print sigmaFinsuppAddEquivDfinsupp /-
 /-- `finsupp.split` is an additive equivalence between `(Σ i, η i) →₀ N` and `Π₀ i, (η i →₀ N)`. -/
 @[simps]
 def sigmaFinsuppAddEquivDfinsupp [AddZeroClass N] : ((Σ i, η i) →₀ N) ≃+ Π₀ i, η i →₀ N :=
@@ -358,9 +403,11 @@ def sigmaFinsuppAddEquivDfinsupp [AddZeroClass N] : ((Σ i, η i) →₀ N) ≃+
     invFun := sigmaFinsuppEquivDfinsupp.symm
     map_add' := sigmaFinsuppEquivDfinsupp_add }
 #align sigma_finsupp_add_equiv_dfinsupp sigmaFinsuppAddEquivDfinsupp
+-/
 
 attribute [-instance] Finsupp.addZeroClass
 
+#print sigmaFinsuppEquivDfinsupp_smul /-
 --tofix: r • (sigma_finsupp_equiv_dfinsupp f) doesn't work.
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_smul {R} [Monoid R] [AddMonoid N] [DistribMulAction R N] (r : R)
@@ -369,15 +416,18 @@ theorem sigmaFinsuppEquivDfinsupp_smul {R} [Monoid R] [AddMonoid N] [DistribMulA
       @SMul.smul R (Π₀ i, η i →₀ N) MulAction.toHasSmul r (sigmaFinsuppEquivDfinsupp f) :=
   by ext; rfl
 #align sigma_finsupp_equiv_dfinsupp_smul sigmaFinsuppEquivDfinsupp_smul
+-/
 
 attribute [-instance] Finsupp.addMonoid
 
+#print sigmaFinsuppLequivDfinsupp /-
 /-- `finsupp.split` is a linear equivalence between `(Σ i, η i) →₀ N` and `Π₀ i, (η i →₀ N)`. -/
 @[simps]
 def sigmaFinsuppLequivDfinsupp [AddCommMonoid N] [Module R N] :
     ((Σ i, η i) →₀ N) ≃ₗ[R] Π₀ i, η i →₀ N :=
   { sigmaFinsuppAddEquivDfinsupp with map_smul' := sigmaFinsuppEquivDfinsupp_smul }
 #align sigma_finsupp_lequiv_dfinsupp sigmaFinsuppLequivDfinsupp
+-/
 
 end Sigma
 
Diff
@@ -279,7 +279,7 @@ open Finsupp
 
 #print sigmaFinsuppEquivDfinsupp /-
 /-- `finsupp.split` is an equivalence between `(Σ i, η i) →₀ N` and `Π₀ i, (η i →₀ N)`. -/
-def sigmaFinsuppEquivDfinsupp [Zero N] : ((Σi, η i) →₀ N) ≃ Π₀ i, η i →₀ N
+def sigmaFinsuppEquivDfinsupp [Zero N] : ((Σ i, η i) →₀ N) ≃ Π₀ i, η i →₀ N
     where
   toFun f :=
     ⟨split f,
@@ -296,7 +296,7 @@ def sigmaFinsuppEquivDfinsupp [Zero N] : ((Σi, η i) →₀ N) ≃ Π₀ i, η
         finset.mem_sigma.mpr ⟨_, mem_support_iff.mpr hg⟩
     simp only [Ne.def, Dfinsupp.mem_support_toFun]
     intro h
-    rw [h] at hg
+    rw [h] at hg 
     simpa using hg
   left_inv f := by ext; simp [split]
   right_inv f := by ext; simp [split]
@@ -304,20 +304,20 @@ def sigmaFinsuppEquivDfinsupp [Zero N] : ((Σi, η i) →₀ N) ≃ Π₀ i, η
 -/
 
 @[simp]
-theorem sigmaFinsuppEquivDfinsupp_apply [Zero N] (f : (Σi, η i) →₀ N) :
+theorem sigmaFinsuppEquivDfinsupp_apply [Zero N] (f : (Σ i, η i) →₀ N) :
     (sigmaFinsuppEquivDfinsupp f : ∀ i, η i →₀ N) = Finsupp.split f :=
   rfl
 #align sigma_finsupp_equiv_dfinsupp_apply sigmaFinsuppEquivDfinsupp_apply
 
 @[simp]
-theorem sigmaFinsuppEquivDfinsupp_symm_apply [Zero N] (f : Π₀ i, η i →₀ N) (s : Σi, η i) :
-    (sigmaFinsuppEquivDfinsupp.symm f : (Σi, η i) →₀ N) s = f s.1 s.2 :=
+theorem sigmaFinsuppEquivDfinsupp_symm_apply [Zero N] (f : Π₀ i, η i →₀ N) (s : Σ i, η i) :
+    (sigmaFinsuppEquivDfinsupp.symm f : (Σ i, η i) →₀ N) s = f s.1 s.2 :=
   rfl
 #align sigma_finsupp_equiv_dfinsupp_symm_apply sigmaFinsuppEquivDfinsupp_symm_apply
 
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_support [DecidableEq ι] [Zero N]
-    [∀ (i : ι) (x : η i →₀ N), Decidable (x ≠ 0)] (f : (Σi, η i) →₀ N) :
+    [∀ (i : ι) (x : η i →₀ N), Decidable (x ≠ 0)] (f : (Σ i, η i) →₀ N) :
     (sigmaFinsuppEquivDfinsupp f).support = Finsupp.splitSupport f :=
   by
   ext
@@ -326,7 +326,7 @@ theorem sigmaFinsuppEquivDfinsupp_support [DecidableEq ι] [Zero N]
 #align sigma_finsupp_equiv_dfinsupp_support sigmaFinsuppEquivDfinsupp_support
 
 @[simp]
-theorem sigmaFinsuppEquivDfinsupp_single [DecidableEq ι] [Zero N] (a : Σi, η i) (n : N) :
+theorem sigmaFinsuppEquivDfinsupp_single [DecidableEq ι] [Zero N] (a : Σ i, η i) (n : N) :
     sigmaFinsuppEquivDfinsupp (Finsupp.single a n) =
       @Dfinsupp.single _ (fun i => η i →₀ N) _ _ a.1 (Finsupp.single a.2 n) :=
   by
@@ -335,8 +335,8 @@ theorem sigmaFinsuppEquivDfinsupp_single [DecidableEq ι] [Zero N] (a : Σi, η
   by_cases h : i = j
   · subst h
     classical simp [split_apply, Finsupp.single_apply]
-  suffices Finsupp.single (⟨i, a⟩ : Σi, η i) n ⟨j, b⟩ = 0 by simp [split_apply, dif_neg h, this]
-  have H : (⟨i, a⟩ : Σi, η i) ≠ ⟨j, b⟩ := by simp [h]
+  suffices Finsupp.single (⟨i, a⟩ : Σ i, η i) n ⟨j, b⟩ = 0 by simp [split_apply, dif_neg h, this]
+  have H : (⟨i, a⟩ : Σ i, η i) ≠ ⟨j, b⟩ := by simp [h]
   classical rw [Finsupp.single_apply, if_neg H]
 #align sigma_finsupp_equiv_dfinsupp_single sigmaFinsuppEquivDfinsupp_single
 
@@ -344,7 +344,7 @@ theorem sigmaFinsuppEquivDfinsupp_single [DecidableEq ι] [Zero N] (a : Σi, η
 attribute [-instance] Finsupp.zero
 
 @[simp]
-theorem sigmaFinsuppEquivDfinsupp_add [AddZeroClass N] (f g : (Σi, η i) →₀ N) :
+theorem sigmaFinsuppEquivDfinsupp_add [AddZeroClass N] (f g : (Σ i, η i) →₀ N) :
     sigmaFinsuppEquivDfinsupp (f + g) =
       (sigmaFinsuppEquivDfinsupp f + sigmaFinsuppEquivDfinsupp g : Π₀ i : ι, η i →₀ N) :=
   by ext; rfl
@@ -352,7 +352,7 @@ theorem sigmaFinsuppEquivDfinsupp_add [AddZeroClass N] (f g : (Σi, η i) →₀
 
 /-- `finsupp.split` is an additive equivalence between `(Σ i, η i) →₀ N` and `Π₀ i, (η i →₀ N)`. -/
 @[simps]
-def sigmaFinsuppAddEquivDfinsupp [AddZeroClass N] : ((Σi, η i) →₀ N) ≃+ Π₀ i, η i →₀ N :=
+def sigmaFinsuppAddEquivDfinsupp [AddZeroClass N] : ((Σ i, η i) →₀ N) ≃+ Π₀ i, η i →₀ N :=
   { sigmaFinsuppEquivDfinsupp with
     toFun := sigmaFinsuppEquivDfinsupp
     invFun := sigmaFinsuppEquivDfinsupp.symm
@@ -364,7 +364,7 @@ attribute [-instance] Finsupp.addZeroClass
 --tofix: r • (sigma_finsupp_equiv_dfinsupp f) doesn't work.
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_smul {R} [Monoid R] [AddMonoid N] [DistribMulAction R N] (r : R)
-    (f : (Σi, η i) →₀ N) :
+    (f : (Σ i, η i) →₀ N) :
     sigmaFinsuppEquivDfinsupp (r • f) =
       @SMul.smul R (Π₀ i, η i →₀ N) MulAction.toHasSmul r (sigmaFinsuppEquivDfinsupp f) :=
   by ext; rfl
@@ -375,7 +375,7 @@ attribute [-instance] Finsupp.addMonoid
 /-- `finsupp.split` is a linear equivalence between `(Σ i, η i) →₀ N` and `Π₀ i, (η i →₀ N)`. -/
 @[simps]
 def sigmaFinsuppLequivDfinsupp [AddCommMonoid N] [Module R N] :
-    ((Σi, η i) →₀ N) ≃ₗ[R] Π₀ i, η i →₀ N :=
+    ((Σ i, η i) →₀ N) ≃ₗ[R] Π₀ i, η i →₀ N :=
   { sigmaFinsuppAddEquivDfinsupp with map_smul' := sigmaFinsuppEquivDfinsupp_smul }
 #align sigma_finsupp_lequiv_dfinsupp sigmaFinsuppLequivDfinsupp
 
Diff
@@ -95,12 +95,6 @@ section
 
 variable [DecidableEq ι] [Zero M]
 
-/- warning: finsupp.to_dfinsupp_single -> Finsupp.toDfinsupp_single is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Zero.{u2} M] (i : ι) (m : M), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) (Finsupp.toDfinsupp.{u1, u2} ι M _inst_2 (Finsupp.single.{u1, u2} ι M _inst_2 i m)) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => M) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2) i m)
-but is expected to have type
-  forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : Zero.{u1} M] (i : ι) (m : M), Eq.{max (succ u2) (succ u1)} (Dfinsupp.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) (Finsupp.toDfinsupp.{u2, u1} ι M _inst_2 (Finsupp.single.{u2, u1} ι M _inst_2 i m)) (Dfinsupp.single.{u2, u1} ι (fun (i : ι) => M) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2) i m)
-Case conversion may be inaccurate. Consider using '#align finsupp.to_dfinsupp_single Finsupp.toDfinsupp_singleₓ'. -/
 @[simp]
 theorem Finsupp.toDfinsupp_single (i : ι) (m : M) :
     (Finsupp.single i m).toDfinsupp = Dfinsupp.single i m := by ext;
@@ -109,12 +103,6 @@ theorem Finsupp.toDfinsupp_single (i : ι) (m : M) :
 
 variable [∀ m : M, Decidable (m ≠ 0)]
 
-/- warning: to_dfinsupp_support -> toDfinsupp_support is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Zero.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M _inst_2))))] (f : Finsupp.{u1, u2} ι M _inst_2), Eq.{succ u1} (Finset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => M) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2) (fun (i : ι) (x : M) => _inst_3 x) (Finsupp.toDfinsupp.{u1, u2} ι M _inst_2 f)) (Finsupp.support.{u1, u2} ι M _inst_2 f)
-but is expected to have type
-  forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : Zero.{u1} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u1} M m (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M _inst_2)))] (f : Finsupp.{u2, u1} ι M _inst_2), Eq.{succ u2} (Finset.{u2} ι) (Dfinsupp.support.{u2, u1} ι (fun (i : ι) => M) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2) (fun (i : ι) (x : M) => _inst_3 x) (Finsupp.toDfinsupp.{u2, u1} ι M _inst_2 f)) (Finsupp.support.{u2, u1} ι M _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align to_dfinsupp_support toDfinsupp_supportₓ'. -/
 @[simp]
 theorem toDfinsupp_support (f : ι →₀ M) : f.toDfinsupp.support = f.support := by ext; simp
 #align to_dfinsupp_support toDfinsupp_support
@@ -130,57 +118,27 @@ def Dfinsupp.toFinsupp (f : Π₀ i : ι, M) : ι →₀ M :=
 #align dfinsupp.to_finsupp Dfinsupp.toFinsupp
 -/
 
-/- warning: dfinsupp.to_finsupp_coe -> Dfinsupp.toFinsupp_coe is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Zero.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M _inst_2))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)), Eq.{max (succ u1) (succ u2)} (ι -> M) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M _inst_2) (fun (_x : Finsupp.{u1, u2} ι M _inst_2) => ι -> M) (Finsupp.coeFun.{u1, u2} ι M _inst_2) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) f)) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) => ι -> M) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) f)
-but is expected to have type
-  forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : Zero.{u1} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u1} M m (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M _inst_2)))] (f : Dfinsupp.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : ι), (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : ι) => M) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} ι M _inst_2) ι (fun (_x : ι) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : ι) => M) _x) (Finsupp.funLike.{u2, u1} ι M _inst_2) (Dfinsupp.toFinsupp.{u2, u1} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Dfinsupp.{u2, u1} ι (fun (i : ι) => (fun (_i : ι) => M) i) (fun (i : ι) => (fun (i : ι) => _inst_2) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (_i : ι) => M) i) _x) (Dfinsupp.funLike.{u2, u1} ι (fun (i : ι) => (fun (_i : ι) => M) i) (fun (i : ι) => (fun (i : ι) => _inst_2) i)) f)
-Case conversion may be inaccurate. Consider using '#align dfinsupp.to_finsupp_coe Dfinsupp.toFinsupp_coeₓ'. -/
 @[simp]
 theorem Dfinsupp.toFinsupp_coe (f : Π₀ i : ι, M) : ⇑f.toFinsupp = f :=
   rfl
 #align dfinsupp.to_finsupp_coe Dfinsupp.toFinsupp_coe
 
-/- warning: dfinsupp.to_finsupp_support -> Dfinsupp.toFinsupp_support is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Zero.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M _inst_2))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)), Eq.{succ u1} (Finset.{u1} ι) (Finsupp.support.{u1, u2} ι M _inst_2 (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) f)) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => M) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2) (fun (i : ι) (x : M) => _inst_3 x) f)
-but is expected to have type
-  forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : Zero.{u1} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u1} M m (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M _inst_2)))] (f : Dfinsupp.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)), Eq.{succ u2} (Finset.{u2} ι) (Finsupp.support.{u2, u1} ι M _inst_2 (Dfinsupp.toFinsupp.{u2, u1} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) f)) (Dfinsupp.support.{u2, u1} ι (fun (i : ι) => M) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2) (fun (i : ι) (x : M) => _inst_3 x) f)
-Case conversion may be inaccurate. Consider using '#align dfinsupp.to_finsupp_support Dfinsupp.toFinsupp_supportₓ'. -/
 @[simp]
 theorem Dfinsupp.toFinsupp_support (f : Π₀ i : ι, M) : f.toFinsupp.support = f.support := by ext;
   simp
 #align dfinsupp.to_finsupp_support Dfinsupp.toFinsupp_support
 
-/- warning: dfinsupp.to_finsupp_single -> Dfinsupp.toFinsupp_single is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Zero.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M _inst_2))))] (i : ι) (m : M), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M _inst_2) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => M) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2) i m)) (Finsupp.single.{u1, u2} ι M _inst_2 i m)
-but is expected to have type
-  forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : Zero.{u1} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u1} M m (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M _inst_2)))] (i : ι) (m : M), Eq.{max (succ u2) (succ u1)} (Finsupp.{u2, u1} ι M _inst_2) (Dfinsupp.toFinsupp.{u2, u1} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (Dfinsupp.single.{u2, u1} ι (fun (i : ι) => M) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2) i m)) (Finsupp.single.{u2, u1} ι M _inst_2 i m)
-Case conversion may be inaccurate. Consider using '#align dfinsupp.to_finsupp_single Dfinsupp.toFinsupp_singleₓ'. -/
 @[simp]
 theorem Dfinsupp.toFinsupp_single (i : ι) (m : M) :
     (Dfinsupp.single i m : Π₀ i : ι, M).toFinsupp = Finsupp.single i m := by ext;
   simp [Finsupp.single_apply, Dfinsupp.single_apply]
 #align dfinsupp.to_finsupp_single Dfinsupp.toFinsupp_single
 
-/- warning: finsupp.to_dfinsupp_to_finsupp -> Finsupp.toDfinsupp_toFinsupp is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Zero.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M _inst_2))))] (f : Finsupp.{u1, u2} ι M _inst_2), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M _inst_2) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (Finsupp.toDfinsupp.{u1, u2} ι M _inst_2 f)) f
-but is expected to have type
-  forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : Zero.{u1} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u1} M m (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M _inst_2)))] (f : Finsupp.{u2, u1} ι M _inst_2), Eq.{max (succ u2) (succ u1)} (Finsupp.{u2, u1} ι M _inst_2) (Dfinsupp.toFinsupp.{u2, u1} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (Finsupp.toDfinsupp.{u2, u1} ι M _inst_2 f)) f
-Case conversion may be inaccurate. Consider using '#align finsupp.to_dfinsupp_to_finsupp Finsupp.toDfinsupp_toFinsuppₓ'. -/
 @[simp]
 theorem Finsupp.toDfinsupp_toFinsupp (f : ι →₀ M) : f.toDfinsupp.toFinsupp = f :=
   Finsupp.coeFn_injective rfl
 #align finsupp.to_dfinsupp_to_finsupp Finsupp.toDfinsupp_toFinsupp
 
-/- warning: dfinsupp.to_finsupp_to_dfinsupp -> Dfinsupp.toFinsupp_toDfinsupp is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Zero.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M _inst_2))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) (Finsupp.toDfinsupp.{u1, u2} ι M _inst_2 (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) f)) f
-but is expected to have type
-  forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : Zero.{u1} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u1} M m (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M _inst_2)))] (f : Dfinsupp.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)), Eq.{max (succ u2) (succ u1)} (Dfinsupp.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) (Finsupp.toDfinsupp.{u2, u1} ι M _inst_2 (Dfinsupp.toFinsupp.{u2, u1} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) f)) f
-Case conversion may be inaccurate. Consider using '#align dfinsupp.to_finsupp_to_dfinsupp Dfinsupp.toFinsupp_toDfinsuppₓ'. -/
 @[simp]
 theorem Dfinsupp.toFinsupp_toDfinsupp (f : Π₀ i : ι, M) : f.toFinsupp.toDfinsupp = f :=
   Dfinsupp.coeFn_injective rfl
@@ -204,47 +162,23 @@ theorem toDfinsupp_zero [Zero M] : (0 : ι →₀ M).toDfinsupp = 0 :=
 #align finsupp.to_dfinsupp_zero Finsupp.toDfinsupp_zero
 -/
 
-/- warning: finsupp.to_dfinsupp_add -> Finsupp.toDfinsupp_add is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddZeroClass.{u2} M] (f : Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1)) (g : Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1)), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_1)) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1)) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1)) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1)) (instHAdd.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1)) (Finsupp.add.{u1, u2} ι M _inst_1)) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_1)) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_1)) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_1))) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1) f) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1) g))
-but is expected to have type
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddZeroClass.{u2} M] (f : Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_1)) (g : Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_1)), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} M _inst_1)) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_1) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_1)) (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_1)) (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_1)) (instHAdd.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_1)) (Finsupp.add.{u1, u2} ι M _inst_1)) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} M _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} M _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} M _inst_1)) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} M _inst_1)) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_1))) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_1) f) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_1) g))
-Case conversion may be inaccurate. Consider using '#align finsupp.to_dfinsupp_add Finsupp.toDfinsupp_addₓ'. -/
 @[simp]
 theorem toDfinsupp_add [AddZeroClass M] (f g : ι →₀ M) :
     (f + g).toDfinsupp = f.toDfinsupp + g.toDfinsupp :=
   Dfinsupp.coeFn_injective rfl
 #align finsupp.to_dfinsupp_add Finsupp.toDfinsupp_add
 
-/- warning: finsupp.to_dfinsupp_neg -> Finsupp.toDfinsupp_neg is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddGroup.{u2} M] (f : Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1)))) (Neg.neg.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Finsupp.neg.{u1, u2} ι M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) f)) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Dfinsupp.hasNeg.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_1)) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1)))) f))
-but is expected to have type
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddGroup.{u2} M] (f : Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Finsupp.toDfinsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) (Neg.neg.{max u1 u2} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Finsupp.neg.{u1, u2} ι M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) f)) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Dfinsupp.instNegDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_1)) (Finsupp.toDfinsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) f))
-Case conversion may be inaccurate. Consider using '#align finsupp.to_dfinsupp_neg Finsupp.toDfinsupp_negₓ'. -/
 @[simp]
 theorem toDfinsupp_neg [AddGroup M] (f : ι →₀ M) : (-f).toDfinsupp = -f.toDfinsupp :=
   Dfinsupp.coeFn_injective rfl
 #align finsupp.to_dfinsupp_neg Finsupp.toDfinsupp_neg
 
-/- warning: finsupp.to_dfinsupp_sub -> Finsupp.toDfinsupp_sub is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddGroup.{u2} M] (f : Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (g : Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1)))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (instHSub.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Finsupp.sub.{u1, u2} ι M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) f g)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Dfinsupp.hasSub.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_1))) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1)))) f) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1)))) g))
-but is expected to have type
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddGroup.{u2} M] (f : Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (g : Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Finsupp.toDfinsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (instHSub.{max u1 u2} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Finsupp.sub.{u1, u2} ι M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) f g)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_1))) (Finsupp.toDfinsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) f) (Finsupp.toDfinsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) g))
-Case conversion may be inaccurate. Consider using '#align finsupp.to_dfinsupp_sub Finsupp.toDfinsupp_subₓ'. -/
 @[simp]
 theorem toDfinsupp_sub [AddGroup M] (f g : ι →₀ M) :
     (f - g).toDfinsupp = f.toDfinsupp - g.toDfinsupp :=
   Dfinsupp.coeFn_injective rfl
 #align finsupp.to_dfinsupp_sub Finsupp.toDfinsupp_sub
 
-/- warning: finsupp.to_dfinsupp_smul -> Finsupp.toDfinsupp_smul is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Monoid.{u2} R] [_inst_2 : AddMonoid.{u3} M] [_inst_3 : DistribMulAction.{u2, u3} R M _inst_1 _inst_2] (r : R) (f : Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2))), Eq.{succ (max u1 u3)} (Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2))) (Finsupp.toDfinsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2)) (SMul.smul.{u2, max u1 u3} R (Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2))) (SMulZeroClass.toHasSmul.{u2, max u1 u3} R (Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2))) (Finsupp.zero.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2))) (Finsupp.smulZeroClass.{u1, u3, u2} ι M R (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2)) (DistribSMul.toSmulZeroClass.{u2, u3} R M (AddMonoid.toAddZeroClass.{u3} M _inst_2) (DistribMulAction.toDistribSMul.{u2, u3} R M _inst_1 _inst_2 _inst_3)))) r f)) (SMul.smul.{u2, max u1 u3} R (Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2))) (Dfinsupp.hasSmul.{u1, u3, u2} ι R (fun (i : ι) => M) _inst_1 (fun (i : ι) => _inst_2) (fun (i : ι) => _inst_3)) r (Finsupp.toDfinsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2)) f))
-but is expected to have type
-  forall {ι : Type.{u1}} {R : Type.{u3}} {M : Type.{u2}} [_inst_1 : Monoid.{u3} R] [_inst_2 : AddMonoid.{u2} M] [_inst_3 : DistribMulAction.{u3, u2} R M _inst_1 _inst_2] (r : R) (f : Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2)), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} M _inst_2)) (Finsupp.toDfinsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} R (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2)) (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2)) (instHSMul.{u3, max u1 u2} R (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2)) (SMulZeroClass.toSMul.{u3, max u1 u2} R (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2)) (Finsupp.zero.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2)) (Finsupp.smulZeroClass.{u1, u2, u3} ι M R (AddMonoid.toZero.{u2} M _inst_2) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M _inst_2) (DistribMulAction.toDistribSMul.{u3, u2} R M _inst_1 _inst_2 _inst_3))))) r f)) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} R (Dfinsupp.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} M _inst_2)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} M _inst_2)) (instHSMul.{u3, max u1 u2} R (Dfinsupp.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} M _inst_2)) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι R (fun (_i : ι) => M) _inst_1 (fun (i : ι) => _inst_2) (fun (i : ι) => _inst_3))) r (Finsupp.toDfinsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2) f))
-Case conversion may be inaccurate. Consider using '#align finsupp.to_dfinsupp_smul Finsupp.toDfinsupp_smulₓ'. -/
 @[simp]
 theorem toDfinsupp_smul [Monoid R] [AddMonoid M] [DistribMulAction R M] (r : R) (f : ι →₀ M) :
     (r • f).toDfinsupp = r • f.toDfinsupp :=
@@ -264,48 +198,24 @@ theorem toFinsupp_zero [Zero M] [∀ m : M, Decidable (m ≠ 0)] : toFinsupp 0 =
 #align dfinsupp.to_finsupp_zero Dfinsupp.toFinsupp_zero
 -/
 
-/- warning: dfinsupp.to_finsupp_add -> Dfinsupp.toFinsupp_add is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddZeroClass.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M _inst_2)))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => M) i) _inst_2)) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => M) i) _inst_2)), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_2)) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M _inst_2) (fun (m : M) => _inst_3 m) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_2)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_2)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_2)) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_2)) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_2)) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_2)) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_2)) (instHAdd.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_2)) (Finsupp.add.{u1, u2} ι M _inst_2)) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M _inst_2) (fun (m : M) => _inst_3 m) f) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M _inst_2) (fun (m : M) => _inst_3 m) g))
-but is expected to have type
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddZeroClass.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddZeroClass.toZero.{u2} M _inst_2))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => M) i) _inst_2)) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => M) i) _inst_2)), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_2)) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toZero.{u2} M _inst_2) (fun (m : M) => _inst_3 m) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) _inst_2)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) _inst_2)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) _inst_2)) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) _inst_2)) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_2)) (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_2)) (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_2)) (instHAdd.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_2)) (Finsupp.add.{u1, u2} ι M _inst_2)) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toZero.{u2} M _inst_2) (fun (m : M) => _inst_3 m) f) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toZero.{u2} M _inst_2) (fun (m : M) => _inst_3 m) g))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.to_finsupp_add Dfinsupp.toFinsupp_addₓ'. -/
 @[simp]
 theorem toFinsupp_add [AddZeroClass M] [∀ m : M, Decidable (m ≠ 0)] (f g : Π₀ i : ι, M) :
     (toFinsupp (f + g) : ι →₀ M) = toFinsupp f + toFinsupp g :=
   Finsupp.coeFn_injective <| Dfinsupp.coe_add _ _
 #align dfinsupp.to_finsupp_add Dfinsupp.toFinsupp_add
 
-/- warning: dfinsupp.to_finsupp_neg -> Dfinsupp.toFinsupp_neg is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddGroup.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => M) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => M) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => M) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => M) i) _inst_2))))), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Dfinsupp.hasNeg.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) f)) (Neg.neg.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Finsupp.neg.{u1, u2} ι M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) f))
-but is expected to have type
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddGroup.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => M) i) _inst_2))))), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (_i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (_i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (_i : ι) => M) i) _inst_2))))) (Dfinsupp.instNegDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) f)) (Neg.neg.{max u1 u2} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (Finsupp.neg.{u1, u2} ι M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) f))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.to_finsupp_neg Dfinsupp.toFinsupp_negₓ'. -/
 @[simp]
 theorem toFinsupp_neg [AddGroup M] [∀ m : M, Decidable (m ≠ 0)] (f : Π₀ i : ι, M) :
     (toFinsupp (-f) : ι →₀ M) = -toFinsupp f :=
   Finsupp.coeFn_injective <| Dfinsupp.coe_neg _
 #align dfinsupp.to_finsupp_neg Dfinsupp.toFinsupp_neg
 
-/- warning: dfinsupp.to_finsupp_sub -> Dfinsupp.toFinsupp_sub is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddGroup.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => M) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => M) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => M) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => M) i) _inst_2))))) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => M) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => M) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => M) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => M) i) _inst_2))))), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Dfinsupp.hasSub.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2))) f g)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (instHSub.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Finsupp.sub.{u1, u2} ι M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) f) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) g))
-but is expected to have type
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddGroup.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => M) i) _inst_2))))) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => M) i) _inst_2))))), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (_i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (_i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (_i : ι) => M) i) _inst_2))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (_i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (_i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (_i : ι) => M) i) _inst_2))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (_i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (_i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (_i : ι) => M) i) _inst_2))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (_i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (_i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (_i : ι) => M) i) _inst_2))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2))) f g)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (instHSub.{max u1 u2} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (Finsupp.sub.{u1, u2} ι M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) f) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) g))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.to_finsupp_sub Dfinsupp.toFinsupp_subₓ'. -/
 @[simp]
 theorem toFinsupp_sub [AddGroup M] [∀ m : M, Decidable (m ≠ 0)] (f g : Π₀ i : ι, M) :
     (toFinsupp (f - g) : ι →₀ M) = toFinsupp f - toFinsupp g :=
   Finsupp.coeFn_injective <| Dfinsupp.coe_sub _ _
 #align dfinsupp.to_finsupp_sub Dfinsupp.toFinsupp_sub
 
-/- warning: dfinsupp.to_finsupp_smul -> Dfinsupp.toFinsupp_smul is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Monoid.{u2} R] [_inst_3 : AddMonoid.{u3} M] [_inst_4 : DistribMulAction.{u2, u3} R M _inst_2 _inst_3] [_inst_5 : forall (m : M), Decidable (Ne.{succ u3} M m (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3))))))] (r : R) (f : Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => M) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => M) i) _inst_3))), Eq.{max (succ u1) (succ u3)} (Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3))) (Dfinsupp.toFinsupp.{u1, u3} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3)) (fun (m : M) => _inst_5 m) (SMul.smul.{u2, max u1 u3} R (Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3))) (Dfinsupp.hasSmul.{u1, u3, u2} ι R (fun (i : ι) => M) _inst_2 (fun (i : ι) => _inst_3) (fun (i : ι) => _inst_4)) r f)) (SMul.smul.{u2, max u1 u3} R (Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3))) (SMulZeroClass.toHasSmul.{u2, max u1 u3} R (Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3))) (Finsupp.zero.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3))) (Finsupp.smulZeroClass.{u1, u3, u2} ι M R (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3)) (DistribSMul.toSmulZeroClass.{u2, u3} R M (AddMonoid.toAddZeroClass.{u3} M _inst_3) (DistribMulAction.toDistribSMul.{u2, u3} R M _inst_2 _inst_3 _inst_4)))) r (Dfinsupp.toFinsupp.{u1, u3} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3)) (fun (m : M) => _inst_5 m) f))
-but is expected to have type
-  forall {ι : Type.{u1}} {R : Type.{u3}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Monoid.{u3} R] [_inst_3 : AddMonoid.{u2} M] [_inst_4 : DistribMulAction.{u3, u2} R M _inst_2 _inst_3] [_inst_5 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M _inst_3))))] (r : R) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => M) i) _inst_3)), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_3)) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddMonoid.toZero.{u2} M _inst_3) (fun (m : M) => _inst_5 m) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} R (Dfinsupp.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (_i : ι) => M) i) _inst_3)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (_i : ι) => M) i) _inst_3)) (instHSMul.{u3, max u1 u2} R (Dfinsupp.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (_i : ι) => M) i) _inst_3)) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι R (fun (_i : ι) => M) _inst_2 (fun (i : ι) => _inst_3) (fun (i : ι) => _inst_4))) r f)) (HSMul.hSMul.{u3, max u2 u1, max u1 u2} R (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_3)) (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_3)) (instHSMul.{u3, max u1 u2} R (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_3)) (SMulZeroClass.toSMul.{u3, max u1 u2} R (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_3)) (Finsupp.zero.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_3)) (Finsupp.smulZeroClass.{u1, u2, u3} ι M R (AddMonoid.toZero.{u2} M _inst_3) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M _inst_3) (DistribMulAction.toDistribSMul.{u3, u2} R M _inst_2 _inst_3 _inst_4))))) r (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddMonoid.toZero.{u2} M _inst_3) (fun (m : M) => _inst_5 m) f))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.to_finsupp_smul Dfinsupp.toFinsupp_smulₓ'. -/
 @[simp]
 theorem toFinsupp_smul [Monoid R] [AddMonoid M] [DistribMulAction R M] [∀ m : M, Decidable (m ≠ 0)]
     (r : R) (f : Π₀ i : ι, M) : (toFinsupp (r • f) : ι →₀ M) = r • toFinsupp f :=
@@ -333,12 +243,6 @@ def finsuppEquivDfinsupp [DecidableEq ι] [Zero M] [∀ m : M, Decidable (m ≠
 #align finsupp_equiv_dfinsupp finsuppEquivDfinsupp
 -/
 
-/- warning: finsupp_add_equiv_dfinsupp -> finsuppAddEquivDfinsupp is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddZeroClass.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M _inst_2)))))], AddEquiv.{max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_2)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_2)) (Finsupp.add.{u1, u2} ι M _inst_2) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2))
-but is expected to have type
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddZeroClass.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddZeroClass.toZero.{u2} M _inst_2))))], AddEquiv.{max u2 u1, max u2 u1} (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_2)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) _inst_2)) (Finsupp.add.{u1, u2} ι M _inst_2) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2))
-Case conversion may be inaccurate. Consider using '#align finsupp_add_equiv_dfinsupp finsuppAddEquivDfinsuppₓ'. -/
 /-- The additive version of `finsupp.to_finsupp`. Note that this is `noncomputable` because
 `finsupp.has_add` is noncomputable. -/
 @[simps (config := { fullyApplied := false })]
@@ -352,12 +256,6 @@ def finsuppAddEquivDfinsupp [DecidableEq ι] [AddZeroClass M] [∀ m : M, Decida
 
 variable (R)
 
-/- warning: finsupp_lequiv_dfinsupp -> finsuppLequivDfinsupp is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} (R : Type.{u2}) {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : forall (m : M), Decidable (Ne.{succ u3} M m (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))))))] [_inst_5 : Module.{u2, u3} R M _inst_2 _inst_3], LinearEquiv.{u2, u2, max u1 u3, max u1 u3} R R _inst_2 _inst_2 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHomInvPair.ids.{u2} R _inst_2) (RingHomInvPair.ids.{u2} R _inst_2) (Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) (Finsupp.addCommMonoid.{u1, u3} ι M _inst_3) (Dfinsupp.addCommMonoid.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => _inst_3)) (Finsupp.module.{u1, u3, u2} ι M R _inst_2 _inst_3 _inst_5) (Dfinsupp.module.{u1, u3, u2} ι R (fun (i : ι) => M) _inst_2 (fun (i : ι) => _inst_3) (fun (i : ι) => _inst_5))
-but is expected to have type
-  forall {ι : Type.{u1}} (R : Type.{u2}) {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : forall (m : M), Decidable (Ne.{succ u3} M m (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))))] [_inst_5 : Module.{u2, u3} R M _inst_2 _inst_3], LinearEquiv.{u2, u2, max u3 u1, max u3 u1} R R _inst_2 _inst_2 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHomInvPair.ids.{u2} R _inst_2) (RingHomInvPair.ids.{u2} R _inst_2) (Finsupp.{u1, u3} ι M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (_i : ι) => M) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (_i : ι) => M) i) _inst_3))) (Finsupp.addCommMonoid.{u1, u3} ι M _inst_3) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => _inst_3)) (Finsupp.module.{u1, u3, u2} ι M R _inst_2 _inst_3 _inst_5) (Dfinsupp.module.{u1, u3, u2} ι R (fun (i : ι) => M) _inst_2 (fun (i : ι) => _inst_3) (fun (i : ι) => _inst_5))
-Case conversion may be inaccurate. Consider using '#align finsupp_lequiv_dfinsupp finsuppLequivDfinsuppₓ'. -/
 /-- The additive version of `finsupp.to_finsupp`. Note that this is `noncomputable` because
 `finsupp.has_add` is noncomputable. -/
 @[simps (config := { fullyApplied := false })]
@@ -405,36 +303,18 @@ def sigmaFinsuppEquivDfinsupp [Zero N] : ((Σi, η i) →₀ N) ≃ Π₀ i, η
 #align sigma_finsupp_equiv_dfinsupp sigmaFinsuppEquivDfinsupp
 -/
 
-/- warning: sigma_finsupp_equiv_dfinsupp_apply -> sigmaFinsuppEquivDfinsupp_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2), Eq.{max (succ u1) (succ u2) (succ u3)} ((fun (_x : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) => forall (i : ι), Finsupp.{u2, u3} (η i) N _inst_2) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2) f)) (coeFn.{succ (max u1 u2 u3), max (succ u1) (succ (max u2 u3))} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (fun (_x : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) => forall (i : ι), Finsupp.{u2, u3} (η i) N _inst_2) (Dfinsupp.hasCoeToFun.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2) f)) (Finsupp.split.{u1, u3, u2} ι N (fun (i : ι) => η i) _inst_2 f)
-but is expected to have type
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2), Eq.{max (max (succ u1) (succ u2)) (succ u3)} (forall (a : ι), (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) a) (FunLike.coe.{max (succ u1) (succ (max u2 u3)), succ u1, succ (max u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) _x) (Dfinsupp.funLike.{u1, max u2 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2) i)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2) f)) (Finsupp.split.{u1, u3, u2} ι N (fun (i : ι) => η i) _inst_2 f)
-Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_apply sigmaFinsuppEquivDfinsupp_applyₓ'. -/
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_apply [Zero N] (f : (Σi, η i) →₀ N) :
     (sigmaFinsuppEquivDfinsupp f : ∀ i, η i →₀ N) = Finsupp.split f :=
   rfl
 #align sigma_finsupp_equiv_dfinsupp_apply sigmaFinsuppEquivDfinsupp_apply
 
-/- warning: sigma_finsupp_equiv_dfinsupp_symm_apply -> sigmaFinsuppEquivDfinsupp_symm_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (s : Sigma.{u1, u2} ι (fun (i : ι) => η i)), Eq.{succ u3} N (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (fun (_x : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) => (Sigma.{u1, u2} ι (fun (i : ι) => η i)) -> N) (Finsupp.coeFun.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (coeFn.{max 1 (max (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3)), max (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{succ (max u1 u2 u3), max (succ (max u1 u2)) (succ u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) (fun (_x : Equiv.{succ (max u1 u2 u3), max (succ (max u1 u2)) (succ u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) => (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) -> (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) (Equiv.hasCoeToFun.{succ (max u1 u2 u3), max (succ (max u1 u2)) (succ u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) (Equiv.symm.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2)) f) s) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (Finsupp.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) N _inst_2) (fun (_x : Finsupp.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) N _inst_2) => (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) -> N) (Finsupp.coeFun.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) N _inst_2) (coeFn.{succ (max u1 u2 u3), max (succ u1) (succ (max u2 u3))} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (fun (_x : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) => forall (i : ι), Finsupp.{u2, u3} (η i) N _inst_2) (Dfinsupp.hasCoeToFun.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) f (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) (Sigma.snd.{u1, u2} ι (fun (i : ι) => η i) s))
-but is expected to have type
-  forall {ι : Type.{u2}} {η : ι -> Type.{u1}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (s : Sigma.{u2, u1} ι (fun (i : ι) => η i)), Eq.{succ u3} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : Sigma.{u2, u1} ι (fun (i : ι) => η i)) => N) s) (FunLike.coe.{max (succ (max u2 u1)) (succ u3), succ (max u2 u1), succ u3} (Finsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) (Sigma.{u2, u1} ι (fun (i : ι) => η i)) (fun (_x : Sigma.{u2, u1} ι (fun (i : ι) => η i)) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : Sigma.{u2, u1} ι (fun (i : ι) => η i)) => N) _x) (Finsupp.funLike.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Equiv.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2)) (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (fun (_x : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) => Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2)) (Equiv.symm.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (sigmaFinsuppEquivDfinsupp.{u2, u1, u3} ι (fun (i : ι) => η i) N _inst_2)) f) s) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Finsupp.{u1, u3} (η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) N _inst_2) (η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) (fun (_x : η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) => N) _x) (Finsupp.funLike.{u1, u3} (η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) N _inst_2) (FunLike.coe.{max (succ u2) (succ (max u1 u3)), succ u2, succ (max u1 u3)} (Dfinsupp.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) i) _x) (Dfinsupp.funLike.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2) i)) f (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) (Sigma.snd.{u2, u1} ι (fun (i : ι) => η i) s))
-Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_symm_apply sigmaFinsuppEquivDfinsupp_symm_applyₓ'. -/
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_symm_apply [Zero N] (f : Π₀ i, η i →₀ N) (s : Σi, η i) :
     (sigmaFinsuppEquivDfinsupp.symm f : (Σi, η i) →₀ N) s = f s.1 s.2 :=
   rfl
 #align sigma_finsupp_equiv_dfinsupp_symm_apply sigmaFinsuppEquivDfinsupp_symm_apply
 
-/- warning: sigma_finsupp_equiv_dfinsupp_support -> sigmaFinsuppEquivDfinsupp_support is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : Zero.{u3} N] [_inst_4 : forall (i : ι) (x : Finsupp.{u2, u3} (η i) N _inst_3), Decidable (Ne.{max (succ u2) (succ u3)} (Finsupp.{u2, u3} (η i) N _inst_3) x (OfNat.ofNat.{max u2 u3} (Finsupp.{u2, u3} (η i) N _inst_3) 0 (OfNat.mk.{max u2 u3} (Finsupp.{u2, u3} (η i) N _inst_3) 0 (Zero.zero.{max u2 u3} (Finsupp.{u2, u3} (η i) N _inst_3) (Finsupp.zero.{u2, u3} (η i) N _inst_3)))))] (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3), Eq.{succ u1} (Finset.{u1} ι) (Dfinsupp.support.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3) (fun (i : ι) (x : Finsupp.{u2, u3} (η i) N _inst_3) => _inst_4 i x) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_3) f)) (Finsupp.splitSupport.{u1, u3, u2} ι N (fun (i : ι) => η i) _inst_3 f)
-but is expected to have type
-  forall {ι : Type.{u3}} {η : ι -> Type.{u1}} {N : Type.{u2}} [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : Zero.{u2} N] [_inst_4 : forall (i : ι) (x : Finsupp.{u1, u2} (η i) N _inst_3), Decidable (Ne.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} (η i) N _inst_3) x (OfNat.ofNat.{max u1 u2} (Finsupp.{u1, u2} (η i) N _inst_3) 0 (Zero.toOfNat0.{max u1 u2} (Finsupp.{u1, u2} (η i) N _inst_3) (Finsupp.zero.{u1, u2} (η i) N _inst_3))))] (f : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3), Eq.{succ u3} (Finset.{u3} ι) (Dfinsupp.support.{u3, max u1 u2} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3) (fun (i : ι) (x : Finsupp.{u1, u2} (η i) N _inst_3) => _inst_4 i x) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Equiv.{max (succ u2) (succ (max u1 u3)), max (succ (max u2 u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (fun (_x : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u3, u1, u2} ι (fun (i : ι) => η i) N _inst_3) f)) (Finsupp.splitSupport.{u3, u2, u1} ι N (fun (i : ι) => η i) _inst_3 f)
-Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_support sigmaFinsuppEquivDfinsupp_supportₓ'. -/
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_support [DecidableEq ι] [Zero N]
     [∀ (i : ι) (x : η i →₀ N), Decidable (x ≠ 0)] (f : (Σi, η i) →₀ N) :
@@ -445,12 +325,6 @@ theorem sigmaFinsuppEquivDfinsupp_support [DecidableEq ι] [Zero N]
   exact (Finsupp.mem_splitSupport_iff_nonzero _ _).symm
 #align sigma_finsupp_equiv_dfinsupp_support sigmaFinsuppEquivDfinsupp_support
 
-/- warning: sigma_finsupp_equiv_dfinsupp_single -> sigmaFinsuppEquivDfinsupp_single is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : Zero.{u3} N] (a : Sigma.{u1, u2} ι (fun (i : ι) => η i)) (n : N), Eq.{succ (max u1 u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3)) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_3) (Finsupp.single.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3 a n)) (Dfinsupp.single.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3) (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) a) (Finsupp.single.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) a)) N _inst_3 (Sigma.snd.{u1, u2} ι (fun (i : ι) => η i) a) n))
-but is expected to have type
-  forall {ι : Type.{u3}} {η : ι -> Type.{u1}} {N : Type.{u2}} [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : Zero.{u2} N] (a : Sigma.{u3, u1} ι (fun (i : ι) => η i)) (n : N), Eq.{max (max (succ u3) (succ u1)) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3)) (Finsupp.single.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3 a n)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Equiv.{max (succ u2) (succ (max u1 u3)), max (succ (max u2 u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (fun (_x : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u3, u1, u2} ι (fun (i : ι) => η i) N _inst_3) (Finsupp.single.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3 a n)) (Dfinsupp.single.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3) (Sigma.fst.{u3, u1} ι (fun (i : ι) => η i) a) (Finsupp.single.{u1, u2} (η (Sigma.fst.{u3, u1} ι (fun (i : ι) => η i) a)) N _inst_3 (Sigma.snd.{u3, u1} ι (fun (i : ι) => η i) a) n))
-Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_single sigmaFinsuppEquivDfinsupp_singleₓ'. -/
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_single [DecidableEq ι] [Zero N] (a : Σi, η i) (n : N) :
     sigmaFinsuppEquivDfinsupp (Finsupp.single a n) =
@@ -469,9 +343,6 @@ theorem sigmaFinsuppEquivDfinsupp_single [DecidableEq ι] [Zero N] (a : Σi, η
 -- Without this Lean fails to find the `add_zero_class` instance on `Π₀ i, (η i →₀ N)`.
 attribute [-instance] Finsupp.zero
 
-/- warning: sigma_finsupp_equiv_dfinsupp_add -> sigmaFinsuppEquivDfinsupp_add is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_add sigmaFinsuppEquivDfinsupp_addₓ'. -/
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_add [AddZeroClass N] (f g : (Σi, η i) →₀ N) :
     sigmaFinsuppEquivDfinsupp (f + g) =
@@ -479,12 +350,6 @@ theorem sigmaFinsuppEquivDfinsupp_add [AddZeroClass N] (f g : (Σi, η i) →₀
   by ext; rfl
 #align sigma_finsupp_equiv_dfinsupp_add sigmaFinsuppEquivDfinsupp_add
 
-/- warning: sigma_finsupp_add_equiv_dfinsupp -> sigmaFinsuppAddEquivDfinsupp is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : AddZeroClass.{u3} N], AddEquiv.{max (max u1 u2) u3, max u1 u2 u3} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.hasAdd.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))
-but is expected to have type
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : AddZeroClass.{u3} N], AddEquiv.{max u3 u2 u1, max (max u3 u2) u1} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.instAddDfinsuppToZero.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))
-Case conversion may be inaccurate. Consider using '#align sigma_finsupp_add_equiv_dfinsupp sigmaFinsuppAddEquivDfinsuppₓ'. -/
 /-- `finsupp.split` is an additive equivalence between `(Σ i, η i) →₀ N` and `Π₀ i, (η i →₀ N)`. -/
 @[simps]
 def sigmaFinsuppAddEquivDfinsupp [AddZeroClass N] : ((Σi, η i) →₀ N) ≃+ Π₀ i, η i →₀ N :=
@@ -496,9 +361,6 @@ def sigmaFinsuppAddEquivDfinsupp [AddZeroClass N] : ((Σi, η i) →₀ N) ≃+
 
 attribute [-instance] Finsupp.addZeroClass
 
-/- warning: sigma_finsupp_equiv_dfinsupp_smul -> sigmaFinsuppEquivDfinsupp_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_smul sigmaFinsuppEquivDfinsupp_smulₓ'. -/
 --tofix: r • (sigma_finsupp_equiv_dfinsupp f) doesn't work.
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_smul {R} [Monoid R] [AddMonoid N] [DistribMulAction R N] (r : R)
@@ -510,12 +372,6 @@ theorem sigmaFinsuppEquivDfinsupp_smul {R} [Monoid R] [AddMonoid N] [DistribMulA
 
 attribute [-instance] Finsupp.addMonoid
 
-/- warning: sigma_finsupp_lequiv_dfinsupp -> sigmaFinsuppLequivDfinsupp is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} (R : Type.{u2}) {η : ι -> Type.{u3}} {N : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u4} N] [_inst_3 : Module.{u2, u4} R N _inst_1 _inst_2], LinearEquiv.{u2, u2, max (max u1 u3) u4, max u1 u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHomInvPair.ids.{u2} R _inst_1) (RingHomInvPair.ids.{u2} R _inst_1) (Finsupp.{max u1 u3, u4} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) (Dfinsupp.{u1, max u3 u4} ι (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) (fun (i : ι) => AddZeroClass.toHasZero.{max u3 u4} (Finsupp.{u3, u4} (η i) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) (AddMonoid.toAddZeroClass.{max u3 u4} (Finsupp.{u3, u4} (η i) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) (AddCommMonoid.toAddMonoid.{max u3 u4} (Finsupp.{u3, u4} (η i) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) (Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2))))) (Finsupp.addCommMonoid.{max u1 u3, u4} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.addCommMonoid.{u1, max u3 u4} ι (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) (fun (i : ι) => Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2)) (Finsupp.module.{max u1 u3, u4, u2} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N R _inst_1 _inst_2 _inst_3) (Dfinsupp.module.{u1, max u3 u4, u2} ι R (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) _inst_1 (fun (i : ι) => Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2) (fun (i : ι) => Finsupp.module.{u3, u4, u2} (η i) N R _inst_1 _inst_2 _inst_3))
-but is expected to have type
-  forall {ι : Type.{u1}} (R : Type.{u2}) {η : ι -> Type.{u3}} {N : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u4} N] [_inst_3 : Module.{u2, u4} R N _inst_1 _inst_2], LinearEquiv.{u2, u2, max u4 u3 u1, max (max u4 u3) u1} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHomInvPair.ids.{u2} R _inst_1) (RingHomInvPair.ids.{u2} R _inst_1) (Finsupp.{max u3 u1, u4} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) (Dfinsupp.{u1, max u4 u3} ι (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) (fun (i : ι) => AddMonoid.toZero.{max u3 u4} ((fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) i) (AddCommMonoid.toAddMonoid.{max u3 u4} ((fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) i) (Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2)))) (Finsupp.addCommMonoid.{max u1 u3, u4} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, max u3 u4} ι (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) (fun (i : ι) => Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2)) (Finsupp.module.{max u1 u3, u4, u2} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N R _inst_1 _inst_2 _inst_3) (Dfinsupp.module.{u1, max u3 u4, u2} ι R (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) _inst_1 (fun (i : ι) => Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2) (fun (i : ι) => Finsupp.module.{u3, u4, u2} (η i) N R _inst_1 _inst_2 _inst_3))
-Case conversion may be inaccurate. Consider using '#align sigma_finsupp_lequiv_dfinsupp sigmaFinsuppLequivDfinsuppₓ'. -/
 /-- `finsupp.split` is a linear equivalence between `(Σ i, η i) →₀ N` and `Π₀ i, (η i →₀ N)`. -/
 @[simps]
 def sigmaFinsuppLequivDfinsupp [AddCommMonoid N] [Module R N] :
Diff
@@ -103,9 +103,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align finsupp.to_dfinsupp_single Finsupp.toDfinsupp_singleₓ'. -/
 @[simp]
 theorem Finsupp.toDfinsupp_single (i : ι) (m : M) :
-    (Finsupp.single i m).toDfinsupp = Dfinsupp.single i m :=
-  by
-  ext
+    (Finsupp.single i m).toDfinsupp = Dfinsupp.single i m := by ext;
   simp [Finsupp.single_apply, Dfinsupp.single_apply]
 #align finsupp.to_dfinsupp_single Finsupp.toDfinsupp_single
 
@@ -118,10 +116,7 @@ but is expected to have type
   forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : Zero.{u1} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u1} M m (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M _inst_2)))] (f : Finsupp.{u2, u1} ι M _inst_2), Eq.{succ u2} (Finset.{u2} ι) (Dfinsupp.support.{u2, u1} ι (fun (i : ι) => M) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2) (fun (i : ι) (x : M) => _inst_3 x) (Finsupp.toDfinsupp.{u2, u1} ι M _inst_2 f)) (Finsupp.support.{u2, u1} ι M _inst_2 f)
 Case conversion may be inaccurate. Consider using '#align to_dfinsupp_support toDfinsupp_supportₓ'. -/
 @[simp]
-theorem toDfinsupp_support (f : ι →₀ M) : f.toDfinsupp.support = f.support :=
-  by
-  ext
-  simp
+theorem toDfinsupp_support (f : ι →₀ M) : f.toDfinsupp.support = f.support := by ext; simp
 #align to_dfinsupp_support toDfinsupp_support
 
 #print Dfinsupp.toFinsupp /-
@@ -153,9 +148,7 @@ but is expected to have type
   forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : Zero.{u1} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u1} M m (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M _inst_2)))] (f : Dfinsupp.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)), Eq.{succ u2} (Finset.{u2} ι) (Finsupp.support.{u2, u1} ι M _inst_2 (Dfinsupp.toFinsupp.{u2, u1} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) f)) (Dfinsupp.support.{u2, u1} ι (fun (i : ι) => M) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2) (fun (i : ι) (x : M) => _inst_3 x) f)
 Case conversion may be inaccurate. Consider using '#align dfinsupp.to_finsupp_support Dfinsupp.toFinsupp_supportₓ'. -/
 @[simp]
-theorem Dfinsupp.toFinsupp_support (f : Π₀ i : ι, M) : f.toFinsupp.support = f.support :=
-  by
-  ext
+theorem Dfinsupp.toFinsupp_support (f : Π₀ i : ι, M) : f.toFinsupp.support = f.support := by ext;
   simp
 #align dfinsupp.to_finsupp_support Dfinsupp.toFinsupp_support
 
@@ -167,9 +160,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align dfinsupp.to_finsupp_single Dfinsupp.toFinsupp_singleₓ'. -/
 @[simp]
 theorem Dfinsupp.toFinsupp_single (i : ι) (m : M) :
-    (Dfinsupp.single i m : Π₀ i : ι, M).toFinsupp = Finsupp.single i m :=
-  by
-  ext
+    (Dfinsupp.single i m : Π₀ i : ι, M).toFinsupp = Finsupp.single i m := by ext;
   simp [Finsupp.single_apply, Dfinsupp.single_apply]
 #align dfinsupp.to_finsupp_single Dfinsupp.toFinsupp_single
 
@@ -409,12 +400,8 @@ def sigmaFinsuppEquivDfinsupp [Zero N] : ((Σi, η i) →₀ N) ≃ Π₀ i, η
     intro h
     rw [h] at hg
     simpa using hg
-  left_inv f := by
-    ext
-    simp [split]
-  right_inv f := by
-    ext
-    simp [split]
+  left_inv f := by ext; simp [split]
+  right_inv f := by ext; simp [split]
 #align sigma_finsupp_equiv_dfinsupp sigmaFinsuppEquivDfinsupp
 -/
 
@@ -489,9 +476,7 @@ Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_df
 theorem sigmaFinsuppEquivDfinsupp_add [AddZeroClass N] (f g : (Σi, η i) →₀ N) :
     sigmaFinsuppEquivDfinsupp (f + g) =
       (sigmaFinsuppEquivDfinsupp f + sigmaFinsuppEquivDfinsupp g : Π₀ i : ι, η i →₀ N) :=
-  by
-  ext
-  rfl
+  by ext; rfl
 #align sigma_finsupp_equiv_dfinsupp_add sigmaFinsuppEquivDfinsupp_add
 
 /- warning: sigma_finsupp_add_equiv_dfinsupp -> sigmaFinsuppAddEquivDfinsupp is a dubious translation:
@@ -520,9 +505,7 @@ theorem sigmaFinsuppEquivDfinsupp_smul {R} [Monoid R] [AddMonoid N] [DistribMulA
     (f : (Σi, η i) →₀ N) :
     sigmaFinsuppEquivDfinsupp (r • f) =
       @SMul.smul R (Π₀ i, η i →₀ N) MulAction.toHasSmul r (sigmaFinsuppEquivDfinsupp f) :=
-  by
-  ext
-  rfl
+  by ext; rfl
 #align sigma_finsupp_equiv_dfinsupp_smul sigmaFinsuppEquivDfinsupp_smul
 
 attribute [-instance] Finsupp.addMonoid
Diff
@@ -483,10 +483,7 @@ theorem sigmaFinsuppEquivDfinsupp_single [DecidableEq ι] [Zero N] (a : Σi, η
 attribute [-instance] Finsupp.zero
 
 /- warning: sigma_finsupp_equiv_dfinsupp_add -> sigmaFinsuppEquivDfinsupp_add is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : AddZeroClass.{u3} N] (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (g : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)), Eq.{succ (max u1 u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (instHAdd.{max (max u1 u2) u3} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) f g)) (HAdd.hAdd.{max u1 u2 u3, max u1 u2 u3, max u1 u2 u3} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (instHAdd.{max u1 u2 u3} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Dfinsupp.hasAdd.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) f) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) g))
-but is expected to have type
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : AddZeroClass.{u3} N] (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (g : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (instHAdd.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) f g)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (instHAdd.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) f g)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) f) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) g) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) f) (instHAdd.{max (max u1 u2) u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) f) (Dfinsupp.instAddDfinsuppToZero.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toZero.{u3} N _inst_2)) f) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toZero.{u3} N _inst_2)) g))
+<too large>
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_add sigmaFinsuppEquivDfinsupp_addₓ'. -/
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_add [AddZeroClass N] (f g : (Σi, η i) →₀ N) :
@@ -515,10 +512,7 @@ def sigmaFinsuppAddEquivDfinsupp [AddZeroClass N] : ((Σi, η i) →₀ N) ≃+
 attribute [-instance] Finsupp.addZeroClass
 
 /- warning: sigma_finsupp_equiv_dfinsupp_smul -> sigmaFinsuppEquivDfinsupp_smul is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} {R : Type.{u4}} [_inst_2 : Monoid.{u4} R] [_inst_3 : AddMonoid.{u3} N] [_inst_4 : DistribMulAction.{u4, u3} R N _inst_2 _inst_3] (r : R) (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))), Eq.{succ (max u1 u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3)))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (SMul.smul.{u4, max (max u1 u2) u3} R (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (SMulZeroClass.toHasSmul.{u4, max (max u1 u2) u3} R (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.zero.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.smulZeroClass.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3)) (DistribSMul.toSmulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4)))) r f)) (SMul.smul.{u4, max u1 u2 u3} R (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)))) (MulAction.toHasSmul.{u4, max u1 u2 u3} R (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)))) _inst_2 (DistribMulAction.toMulAction.{u4, max u1 u2 u3} R (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)))) _inst_2 (Dfinsupp.addMonoid.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)) (Dfinsupp.distribMulAction.{u1, max u2 u3, u4} ι R (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) _inst_2 (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.distribMulAction.{u2, u3, u4} (η i) N R _inst_2 _inst_3 _inst_4)))) r (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) f))
-but is expected to have type
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} {R : Type.{u4}} [_inst_2 : Monoid.{u4} R] [_inst_3 : AddMonoid.{u3} N] [_inst_4 : DistribMulAction.{u4, u3} R N _inst_2 _inst_3] (r : R) (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) (HSMul.hSMul.{u4, max (max u1 u2) u3, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (instHSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (SMulZeroClass.toSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (AddMonoid.toZero.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.addMonoid.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3)) (Finsupp.smulZeroClass.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddMonoid.toZero.{u3} N _inst_3) (DistribSMul.toSMulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4))))) r f)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddMonoid.toZero.{u3} N _inst_3)) (HSMul.hSMul.{u4, max (max u1 u2) u3, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (instHSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (SMulZeroClass.toSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (AddMonoid.toZero.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.addMonoid.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3)) (Finsupp.smulZeroClass.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddMonoid.toZero.{u3} N _inst_3) (DistribSMul.toSMulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4))))) r f)) (SMul.smul.{u4, max (max u3 u2) u1} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) (MulAction.toSMul.{u4, max (max u1 u2) u3} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) _inst_2 (DistribMulAction.toMulAction.{u4, max (max u1 u2) u3} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) _inst_2 (Dfinsupp.instAddMonoidDfinsuppToZero.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)) (Dfinsupp.distribMulAction.{u1, max u2 u3, u4} ι R (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) _inst_2 (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.distribMulAction.{u2, u3, u4} (η i) N R _inst_2 _inst_3 _inst_4)))) r (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddMonoid.toZero.{u3} N _inst_3)) f))
+<too large>
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_smul sigmaFinsuppEquivDfinsupp_smulₓ'. -/
 --tofix: r • (sigma_finsupp_equiv_dfinsupp f) doesn't work.
 @[simp]
Diff
@@ -422,7 +422,7 @@ def sigmaFinsuppEquivDfinsupp [Zero N] : ((Σi, η i) →₀ N) ≃ Π₀ i, η
 lean 3 declaration is
   forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2), Eq.{max (succ u1) (succ u2) (succ u3)} ((fun (_x : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) => forall (i : ι), Finsupp.{u2, u3} (η i) N _inst_2) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2) f)) (coeFn.{succ (max u1 u2 u3), max (succ u1) (succ (max u2 u3))} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (fun (_x : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) => forall (i : ι), Finsupp.{u2, u3} (η i) N _inst_2) (Dfinsupp.hasCoeToFun.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2) f)) (Finsupp.split.{u1, u3, u2} ι N (fun (i : ι) => η i) _inst_2 f)
 but is expected to have type
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2), Eq.{max (max (succ u1) (succ u2)) (succ u3)} (forall (a : ι), (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) a) (FunLike.coe.{max (succ u1) (succ (max u2 u3)), succ u1, succ (max u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) _x) (Dfinsupp.funLike.{u1, max u2 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2) i)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2) f)) (Finsupp.split.{u1, u3, u2} ι N (fun (i : ι) => η i) _inst_2 f)
+  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2), Eq.{max (max (succ u1) (succ u2)) (succ u3)} (forall (a : ι), (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) a) (FunLike.coe.{max (succ u1) (succ (max u2 u3)), succ u1, succ (max u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) _x) (Dfinsupp.funLike.{u1, max u2 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2) i)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2) f)) (Finsupp.split.{u1, u3, u2} ι N (fun (i : ι) => η i) _inst_2 f)
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_apply sigmaFinsuppEquivDfinsupp_applyₓ'. -/
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_apply [Zero N] (f : (Σi, η i) →₀ N) :
@@ -434,7 +434,7 @@ theorem sigmaFinsuppEquivDfinsupp_apply [Zero N] (f : (Σi, η i) →₀ N) :
 lean 3 declaration is
   forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (s : Sigma.{u1, u2} ι (fun (i : ι) => η i)), Eq.{succ u3} N (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (fun (_x : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) => (Sigma.{u1, u2} ι (fun (i : ι) => η i)) -> N) (Finsupp.coeFun.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (coeFn.{max 1 (max (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3)), max (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{succ (max u1 u2 u3), max (succ (max u1 u2)) (succ u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) (fun (_x : Equiv.{succ (max u1 u2 u3), max (succ (max u1 u2)) (succ u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) => (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) -> (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) (Equiv.hasCoeToFun.{succ (max u1 u2 u3), max (succ (max u1 u2)) (succ u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) (Equiv.symm.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2)) f) s) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (Finsupp.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) N _inst_2) (fun (_x : Finsupp.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) N _inst_2) => (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) -> N) (Finsupp.coeFun.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) N _inst_2) (coeFn.{succ (max u1 u2 u3), max (succ u1) (succ (max u2 u3))} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (fun (_x : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) => forall (i : ι), Finsupp.{u2, u3} (η i) N _inst_2) (Dfinsupp.hasCoeToFun.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) f (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) (Sigma.snd.{u1, u2} ι (fun (i : ι) => η i) s))
 but is expected to have type
-  forall {ι : Type.{u2}} {η : ι -> Type.{u1}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (s : Sigma.{u2, u1} ι (fun (i : ι) => η i)), Eq.{succ u3} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : Sigma.{u2, u1} ι (fun (i : ι) => η i)) => N) s) (FunLike.coe.{max (succ (max u2 u1)) (succ u3), succ (max u2 u1), succ u3} (Finsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) (Sigma.{u2, u1} ι (fun (i : ι) => η i)) (fun (_x : Sigma.{u2, u1} ι (fun (i : ι) => η i)) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : Sigma.{u2, u1} ι (fun (i : ι) => η i)) => N) _x) (Finsupp.funLike.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Equiv.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2)) (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (fun (_x : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) => Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2)) (Equiv.symm.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (sigmaFinsuppEquivDfinsupp.{u2, u1, u3} ι (fun (i : ι) => η i) N _inst_2)) f) s) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Finsupp.{u1, u3} (η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) N _inst_2) (η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) (fun (_x : η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) => N) _x) (Finsupp.funLike.{u1, u3} (η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) N _inst_2) (FunLike.coe.{max (succ u2) (succ (max u1 u3)), succ u2, succ (max u1 u3)} (Dfinsupp.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) i) _x) (Dfinsupp.funLike.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2) i)) f (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) (Sigma.snd.{u2, u1} ι (fun (i : ι) => η i) s))
+  forall {ι : Type.{u2}} {η : ι -> Type.{u1}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (s : Sigma.{u2, u1} ι (fun (i : ι) => η i)), Eq.{succ u3} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : Sigma.{u2, u1} ι (fun (i : ι) => η i)) => N) s) (FunLike.coe.{max (succ (max u2 u1)) (succ u3), succ (max u2 u1), succ u3} (Finsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) (Sigma.{u2, u1} ι (fun (i : ι) => η i)) (fun (_x : Sigma.{u2, u1} ι (fun (i : ι) => η i)) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : Sigma.{u2, u1} ι (fun (i : ι) => η i)) => N) _x) (Finsupp.funLike.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Equiv.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2)) (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (fun (_x : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) => Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2)) (Equiv.symm.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (sigmaFinsuppEquivDfinsupp.{u2, u1, u3} ι (fun (i : ι) => η i) N _inst_2)) f) s) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Finsupp.{u1, u3} (η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) N _inst_2) (η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) (fun (_x : η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) => N) _x) (Finsupp.funLike.{u1, u3} (η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) N _inst_2) (FunLike.coe.{max (succ u2) (succ (max u1 u3)), succ u2, succ (max u1 u3)} (Dfinsupp.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) i) _x) (Dfinsupp.funLike.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2) i)) f (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) (Sigma.snd.{u2, u1} ι (fun (i : ι) => η i) s))
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_symm_apply sigmaFinsuppEquivDfinsupp_symm_applyₓ'. -/
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_symm_apply [Zero N] (f : Π₀ i, η i →₀ N) (s : Σi, η i) :
@@ -446,7 +446,7 @@ theorem sigmaFinsuppEquivDfinsupp_symm_apply [Zero N] (f : Π₀ i, η i →₀
 lean 3 declaration is
   forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : Zero.{u3} N] [_inst_4 : forall (i : ι) (x : Finsupp.{u2, u3} (η i) N _inst_3), Decidable (Ne.{max (succ u2) (succ u3)} (Finsupp.{u2, u3} (η i) N _inst_3) x (OfNat.ofNat.{max u2 u3} (Finsupp.{u2, u3} (η i) N _inst_3) 0 (OfNat.mk.{max u2 u3} (Finsupp.{u2, u3} (η i) N _inst_3) 0 (Zero.zero.{max u2 u3} (Finsupp.{u2, u3} (η i) N _inst_3) (Finsupp.zero.{u2, u3} (η i) N _inst_3)))))] (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3), Eq.{succ u1} (Finset.{u1} ι) (Dfinsupp.support.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3) (fun (i : ι) (x : Finsupp.{u2, u3} (η i) N _inst_3) => _inst_4 i x) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_3) f)) (Finsupp.splitSupport.{u1, u3, u2} ι N (fun (i : ι) => η i) _inst_3 f)
 but is expected to have type
-  forall {ι : Type.{u3}} {η : ι -> Type.{u1}} {N : Type.{u2}} [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : Zero.{u2} N] [_inst_4 : forall (i : ι) (x : Finsupp.{u1, u2} (η i) N _inst_3), Decidable (Ne.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} (η i) N _inst_3) x (OfNat.ofNat.{max u1 u2} (Finsupp.{u1, u2} (η i) N _inst_3) 0 (Zero.toOfNat0.{max u1 u2} (Finsupp.{u1, u2} (η i) N _inst_3) (Finsupp.zero.{u1, u2} (η i) N _inst_3))))] (f : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3), Eq.{succ u3} (Finset.{u3} ι) (Dfinsupp.support.{u3, max u1 u2} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3) (fun (i : ι) (x : Finsupp.{u1, u2} (η i) N _inst_3) => _inst_4 i x) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Equiv.{max (succ u2) (succ (max u1 u3)), max (succ (max u2 u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (fun (_x : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u3, u1, u2} ι (fun (i : ι) => η i) N _inst_3) f)) (Finsupp.splitSupport.{u3, u2, u1} ι N (fun (i : ι) => η i) _inst_3 f)
+  forall {ι : Type.{u3}} {η : ι -> Type.{u1}} {N : Type.{u2}} [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : Zero.{u2} N] [_inst_4 : forall (i : ι) (x : Finsupp.{u1, u2} (η i) N _inst_3), Decidable (Ne.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} (η i) N _inst_3) x (OfNat.ofNat.{max u1 u2} (Finsupp.{u1, u2} (η i) N _inst_3) 0 (Zero.toOfNat0.{max u1 u2} (Finsupp.{u1, u2} (η i) N _inst_3) (Finsupp.zero.{u1, u2} (η i) N _inst_3))))] (f : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3), Eq.{succ u3} (Finset.{u3} ι) (Dfinsupp.support.{u3, max u1 u2} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3) (fun (i : ι) (x : Finsupp.{u1, u2} (η i) N _inst_3) => _inst_4 i x) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Equiv.{max (succ u2) (succ (max u1 u3)), max (succ (max u2 u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (fun (_x : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u3, u1, u2} ι (fun (i : ι) => η i) N _inst_3) f)) (Finsupp.splitSupport.{u3, u2, u1} ι N (fun (i : ι) => η i) _inst_3 f)
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_support sigmaFinsuppEquivDfinsupp_supportₓ'. -/
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_support [DecidableEq ι] [Zero N]
@@ -462,7 +462,7 @@ theorem sigmaFinsuppEquivDfinsupp_support [DecidableEq ι] [Zero N]
 lean 3 declaration is
   forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : Zero.{u3} N] (a : Sigma.{u1, u2} ι (fun (i : ι) => η i)) (n : N), Eq.{succ (max u1 u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3)) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_3) (Finsupp.single.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3 a n)) (Dfinsupp.single.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3) (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) a) (Finsupp.single.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) a)) N _inst_3 (Sigma.snd.{u1, u2} ι (fun (i : ι) => η i) a) n))
 but is expected to have type
-  forall {ι : Type.{u3}} {η : ι -> Type.{u1}} {N : Type.{u2}} [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : Zero.{u2} N] (a : Sigma.{u3, u1} ι (fun (i : ι) => η i)) (n : N), Eq.{max (max (succ u3) (succ u1)) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3)) (Finsupp.single.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3 a n)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Equiv.{max (succ u2) (succ (max u1 u3)), max (succ (max u2 u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (fun (_x : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u3, u1, u2} ι (fun (i : ι) => η i) N _inst_3) (Finsupp.single.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3 a n)) (Dfinsupp.single.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3) (Sigma.fst.{u3, u1} ι (fun (i : ι) => η i) a) (Finsupp.single.{u1, u2} (η (Sigma.fst.{u3, u1} ι (fun (i : ι) => η i) a)) N _inst_3 (Sigma.snd.{u3, u1} ι (fun (i : ι) => η i) a) n))
+  forall {ι : Type.{u3}} {η : ι -> Type.{u1}} {N : Type.{u2}} [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : Zero.{u2} N] (a : Sigma.{u3, u1} ι (fun (i : ι) => η i)) (n : N), Eq.{max (max (succ u3) (succ u1)) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3)) (Finsupp.single.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3 a n)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Equiv.{max (succ u2) (succ (max u1 u3)), max (succ (max u2 u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (fun (_x : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u3, u1, u2} ι (fun (i : ι) => η i) N _inst_3) (Finsupp.single.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3 a n)) (Dfinsupp.single.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3) (Sigma.fst.{u3, u1} ι (fun (i : ι) => η i) a) (Finsupp.single.{u1, u2} (η (Sigma.fst.{u3, u1} ι (fun (i : ι) => η i) a)) N _inst_3 (Sigma.snd.{u3, u1} ι (fun (i : ι) => η i) a) n))
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_single sigmaFinsuppEquivDfinsupp_singleₓ'. -/
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_single [DecidableEq ι] [Zero N] (a : Σi, η i) (n : N) :
@@ -486,7 +486,7 @@ attribute [-instance] Finsupp.zero
 lean 3 declaration is
   forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : AddZeroClass.{u3} N] (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (g : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)), Eq.{succ (max u1 u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (instHAdd.{max (max u1 u2) u3} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) f g)) (HAdd.hAdd.{max u1 u2 u3, max u1 u2 u3, max u1 u2 u3} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (instHAdd.{max u1 u2 u3} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Dfinsupp.hasAdd.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) f) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) g))
 but is expected to have type
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : AddZeroClass.{u3} N] (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (g : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (instHAdd.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) f g)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (instHAdd.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) f g)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) f) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) g) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) f) (instHAdd.{max (max u1 u2) u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) f) (Dfinsupp.instAddDfinsuppToZero.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toZero.{u3} N _inst_2)) f) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toZero.{u3} N _inst_2)) g))
+  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : AddZeroClass.{u3} N] (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (g : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (instHAdd.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) f g)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (instHAdd.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) f g)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) f) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) g) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) f) (instHAdd.{max (max u1 u2) u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) f) (Dfinsupp.instAddDfinsuppToZero.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toZero.{u3} N _inst_2)) f) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toZero.{u3} N _inst_2)) g))
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_add sigmaFinsuppEquivDfinsupp_addₓ'. -/
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_add [AddZeroClass N] (f g : (Σi, η i) →₀ N) :
@@ -518,7 +518,7 @@ attribute [-instance] Finsupp.addZeroClass
 lean 3 declaration is
   forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} {R : Type.{u4}} [_inst_2 : Monoid.{u4} R] [_inst_3 : AddMonoid.{u3} N] [_inst_4 : DistribMulAction.{u4, u3} R N _inst_2 _inst_3] (r : R) (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))), Eq.{succ (max u1 u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3)))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (SMul.smul.{u4, max (max u1 u2) u3} R (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (SMulZeroClass.toHasSmul.{u4, max (max u1 u2) u3} R (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.zero.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.smulZeroClass.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3)) (DistribSMul.toSmulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4)))) r f)) (SMul.smul.{u4, max u1 u2 u3} R (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)))) (MulAction.toHasSmul.{u4, max u1 u2 u3} R (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)))) _inst_2 (DistribMulAction.toMulAction.{u4, max u1 u2 u3} R (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)))) _inst_2 (Dfinsupp.addMonoid.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)) (Dfinsupp.distribMulAction.{u1, max u2 u3, u4} ι R (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) _inst_2 (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.distribMulAction.{u2, u3, u4} (η i) N R _inst_2 _inst_3 _inst_4)))) r (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) f))
 but is expected to have type
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} {R : Type.{u4}} [_inst_2 : Monoid.{u4} R] [_inst_3 : AddMonoid.{u3} N] [_inst_4 : DistribMulAction.{u4, u3} R N _inst_2 _inst_3] (r : R) (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) (HSMul.hSMul.{u4, max (max u1 u2) u3, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (instHSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (SMulZeroClass.toSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (AddMonoid.toZero.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.addMonoid.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3)) (Finsupp.smulZeroClass.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddMonoid.toZero.{u3} N _inst_3) (DistribSMul.toSMulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4))))) r f)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddMonoid.toZero.{u3} N _inst_3)) (HSMul.hSMul.{u4, max (max u1 u2) u3, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (instHSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (SMulZeroClass.toSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (AddMonoid.toZero.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.addMonoid.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3)) (Finsupp.smulZeroClass.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddMonoid.toZero.{u3} N _inst_3) (DistribSMul.toSMulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4))))) r f)) (SMul.smul.{u4, max (max u3 u2) u1} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) (MulAction.toSMul.{u4, max (max u1 u2) u3} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) _inst_2 (DistribMulAction.toMulAction.{u4, max (max u1 u2) u3} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) _inst_2 (Dfinsupp.instAddMonoidDfinsuppToZero.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)) (Dfinsupp.distribMulAction.{u1, max u2 u3, u4} ι R (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) _inst_2 (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.distribMulAction.{u2, u3, u4} (η i) N R _inst_2 _inst_3 _inst_4)))) r (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddMonoid.toZero.{u3} N _inst_3)) f))
+  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} {R : Type.{u4}} [_inst_2 : Monoid.{u4} R] [_inst_3 : AddMonoid.{u3} N] [_inst_4 : DistribMulAction.{u4, u3} R N _inst_2 _inst_3] (r : R) (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) (HSMul.hSMul.{u4, max (max u1 u2) u3, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (instHSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (SMulZeroClass.toSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (AddMonoid.toZero.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.addMonoid.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3)) (Finsupp.smulZeroClass.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddMonoid.toZero.{u3} N _inst_3) (DistribSMul.toSMulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4))))) r f)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddMonoid.toZero.{u3} N _inst_3)) (HSMul.hSMul.{u4, max (max u1 u2) u3, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (instHSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (SMulZeroClass.toSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (AddMonoid.toZero.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.addMonoid.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3)) (Finsupp.smulZeroClass.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddMonoid.toZero.{u3} N _inst_3) (DistribSMul.toSMulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4))))) r f)) (SMul.smul.{u4, max (max u3 u2) u1} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) (MulAction.toSMul.{u4, max (max u1 u2) u3} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) _inst_2 (DistribMulAction.toMulAction.{u4, max (max u1 u2) u3} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) _inst_2 (Dfinsupp.instAddMonoidDfinsuppToZero.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)) (Dfinsupp.distribMulAction.{u1, max u2 u3, u4} ι R (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) _inst_2 (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.distribMulAction.{u2, u3, u4} (η i) N R _inst_2 _inst_3 _inst_4)))) r (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddMonoid.toZero.{u3} N _inst_3)) f))
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_smul sigmaFinsuppEquivDfinsupp_smulₓ'. -/
 --tofix: r • (sigma_finsupp_equiv_dfinsupp f) doesn't work.
 @[simp]
Diff
@@ -422,7 +422,7 @@ def sigmaFinsuppEquivDfinsupp [Zero N] : ((Σi, η i) →₀ N) ≃ Π₀ i, η
 lean 3 declaration is
   forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2), Eq.{max (succ u1) (succ u2) (succ u3)} ((fun (_x : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) => forall (i : ι), Finsupp.{u2, u3} (η i) N _inst_2) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2) f)) (coeFn.{succ (max u1 u2 u3), max (succ u1) (succ (max u2 u3))} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (fun (_x : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) => forall (i : ι), Finsupp.{u2, u3} (η i) N _inst_2) (Dfinsupp.hasCoeToFun.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2) f)) (Finsupp.split.{u1, u3, u2} ι N (fun (i : ι) => η i) _inst_2 f)
 but is expected to have type
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2), Eq.{max (max (succ u1) (succ u2)) (succ u3)} (forall (a : ι), (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) a) (FunLike.coe.{max (succ u1) (succ (max u2 u3)), succ u1, succ (max u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) _x) (Dfinsupp.funLike.{u1, max u2 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2) i)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2) f)) (Finsupp.split.{u1, u3, u2} ι N (fun (i : ι) => η i) _inst_2 f)
+  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2), Eq.{max (max (succ u1) (succ u2)) (succ u3)} (forall (a : ι), (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) a) (FunLike.coe.{max (succ u1) (succ (max u2 u3)), succ u1, succ (max u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) _x) (Dfinsupp.funLike.{u1, max u2 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2) i)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2) f)) (Finsupp.split.{u1, u3, u2} ι N (fun (i : ι) => η i) _inst_2 f)
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_apply sigmaFinsuppEquivDfinsupp_applyₓ'. -/
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_apply [Zero N] (f : (Σi, η i) →₀ N) :
@@ -434,7 +434,7 @@ theorem sigmaFinsuppEquivDfinsupp_apply [Zero N] (f : (Σi, η i) →₀ N) :
 lean 3 declaration is
   forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (s : Sigma.{u1, u2} ι (fun (i : ι) => η i)), Eq.{succ u3} N (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (fun (_x : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) => (Sigma.{u1, u2} ι (fun (i : ι) => η i)) -> N) (Finsupp.coeFun.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (coeFn.{max 1 (max (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3)), max (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{succ (max u1 u2 u3), max (succ (max u1 u2)) (succ u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) (fun (_x : Equiv.{succ (max u1 u2 u3), max (succ (max u1 u2)) (succ u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) => (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) -> (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) (Equiv.hasCoeToFun.{succ (max u1 u2 u3), max (succ (max u1 u2)) (succ u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) (Equiv.symm.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2)) f) s) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (Finsupp.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) N _inst_2) (fun (_x : Finsupp.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) N _inst_2) => (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) -> N) (Finsupp.coeFun.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) N _inst_2) (coeFn.{succ (max u1 u2 u3), max (succ u1) (succ (max u2 u3))} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (fun (_x : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) => forall (i : ι), Finsupp.{u2, u3} (η i) N _inst_2) (Dfinsupp.hasCoeToFun.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) f (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) (Sigma.snd.{u1, u2} ι (fun (i : ι) => η i) s))
 but is expected to have type
-  forall {ι : Type.{u2}} {η : ι -> Type.{u1}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (s : Sigma.{u2, u1} ι (fun (i : ι) => η i)), Eq.{succ u3} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : Sigma.{u2, u1} ι (fun (i : ι) => η i)) => N) s) (FunLike.coe.{max (succ (max u2 u1)) (succ u3), succ (max u2 u1), succ u3} (Finsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) (Sigma.{u2, u1} ι (fun (i : ι) => η i)) (fun (_x : Sigma.{u2, u1} ι (fun (i : ι) => η i)) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : Sigma.{u2, u1} ι (fun (i : ι) => η i)) => N) _x) (Finsupp.funLike.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Equiv.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2)) (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (fun (_x : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) => Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2)) (Equiv.symm.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (sigmaFinsuppEquivDfinsupp.{u2, u1, u3} ι (fun (i : ι) => η i) N _inst_2)) f) s) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Finsupp.{u1, u3} (η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) N _inst_2) (η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) (fun (_x : η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) => N) _x) (Finsupp.funLike.{u1, u3} (η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) N _inst_2) (FunLike.coe.{max (succ u2) (succ (max u1 u3)), succ u2, succ (max u1 u3)} (Dfinsupp.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) i) _x) (Dfinsupp.funLike.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2) i)) f (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) (Sigma.snd.{u2, u1} ι (fun (i : ι) => η i) s))
+  forall {ι : Type.{u2}} {η : ι -> Type.{u1}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (s : Sigma.{u2, u1} ι (fun (i : ι) => η i)), Eq.{succ u3} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : Sigma.{u2, u1} ι (fun (i : ι) => η i)) => N) s) (FunLike.coe.{max (succ (max u2 u1)) (succ u3), succ (max u2 u1), succ u3} (Finsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) (Sigma.{u2, u1} ι (fun (i : ι) => η i)) (fun (_x : Sigma.{u2, u1} ι (fun (i : ι) => η i)) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : Sigma.{u2, u1} ι (fun (i : ι) => η i)) => N) _x) (Finsupp.funLike.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Equiv.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2)) (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (fun (_x : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) => Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2)) (Equiv.symm.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (sigmaFinsuppEquivDfinsupp.{u2, u1, u3} ι (fun (i : ι) => η i) N _inst_2)) f) s) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Finsupp.{u1, u3} (η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) N _inst_2) (η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) (fun (_x : η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) => N) _x) (Finsupp.funLike.{u1, u3} (η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) N _inst_2) (FunLike.coe.{max (succ u2) (succ (max u1 u3)), succ u2, succ (max u1 u3)} (Dfinsupp.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) i) _x) (Dfinsupp.funLike.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2) i)) f (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) (Sigma.snd.{u2, u1} ι (fun (i : ι) => η i) s))
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_symm_apply sigmaFinsuppEquivDfinsupp_symm_applyₓ'. -/
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_symm_apply [Zero N] (f : Π₀ i, η i →₀ N) (s : Σi, η i) :
@@ -446,7 +446,7 @@ theorem sigmaFinsuppEquivDfinsupp_symm_apply [Zero N] (f : Π₀ i, η i →₀
 lean 3 declaration is
   forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : Zero.{u3} N] [_inst_4 : forall (i : ι) (x : Finsupp.{u2, u3} (η i) N _inst_3), Decidable (Ne.{max (succ u2) (succ u3)} (Finsupp.{u2, u3} (η i) N _inst_3) x (OfNat.ofNat.{max u2 u3} (Finsupp.{u2, u3} (η i) N _inst_3) 0 (OfNat.mk.{max u2 u3} (Finsupp.{u2, u3} (η i) N _inst_3) 0 (Zero.zero.{max u2 u3} (Finsupp.{u2, u3} (η i) N _inst_3) (Finsupp.zero.{u2, u3} (η i) N _inst_3)))))] (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3), Eq.{succ u1} (Finset.{u1} ι) (Dfinsupp.support.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3) (fun (i : ι) (x : Finsupp.{u2, u3} (η i) N _inst_3) => _inst_4 i x) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_3) f)) (Finsupp.splitSupport.{u1, u3, u2} ι N (fun (i : ι) => η i) _inst_3 f)
 but is expected to have type
-  forall {ι : Type.{u3}} {η : ι -> Type.{u1}} {N : Type.{u2}} [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : Zero.{u2} N] [_inst_4 : forall (i : ι) (x : Finsupp.{u1, u2} (η i) N _inst_3), Decidable (Ne.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} (η i) N _inst_3) x (OfNat.ofNat.{max u1 u2} (Finsupp.{u1, u2} (η i) N _inst_3) 0 (Zero.toOfNat0.{max u1 u2} (Finsupp.{u1, u2} (η i) N _inst_3) (Finsupp.zero.{u1, u2} (η i) N _inst_3))))] (f : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3), Eq.{succ u3} (Finset.{u3} ι) (Dfinsupp.support.{u3, max u1 u2} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3) (fun (i : ι) (x : Finsupp.{u1, u2} (η i) N _inst_3) => _inst_4 i x) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Equiv.{max (succ u2) (succ (max u1 u3)), max (succ (max u2 u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (fun (_x : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u3, u1, u2} ι (fun (i : ι) => η i) N _inst_3) f)) (Finsupp.splitSupport.{u3, u2, u1} ι N (fun (i : ι) => η i) _inst_3 f)
+  forall {ι : Type.{u3}} {η : ι -> Type.{u1}} {N : Type.{u2}} [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : Zero.{u2} N] [_inst_4 : forall (i : ι) (x : Finsupp.{u1, u2} (η i) N _inst_3), Decidable (Ne.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} (η i) N _inst_3) x (OfNat.ofNat.{max u1 u2} (Finsupp.{u1, u2} (η i) N _inst_3) 0 (Zero.toOfNat0.{max u1 u2} (Finsupp.{u1, u2} (η i) N _inst_3) (Finsupp.zero.{u1, u2} (η i) N _inst_3))))] (f : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3), Eq.{succ u3} (Finset.{u3} ι) (Dfinsupp.support.{u3, max u1 u2} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3) (fun (i : ι) (x : Finsupp.{u1, u2} (η i) N _inst_3) => _inst_4 i x) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Equiv.{max (succ u2) (succ (max u1 u3)), max (succ (max u2 u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (fun (_x : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u3, u1, u2} ι (fun (i : ι) => η i) N _inst_3) f)) (Finsupp.splitSupport.{u3, u2, u1} ι N (fun (i : ι) => η i) _inst_3 f)
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_support sigmaFinsuppEquivDfinsupp_supportₓ'. -/
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_support [DecidableEq ι] [Zero N]
@@ -462,7 +462,7 @@ theorem sigmaFinsuppEquivDfinsupp_support [DecidableEq ι] [Zero N]
 lean 3 declaration is
   forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : Zero.{u3} N] (a : Sigma.{u1, u2} ι (fun (i : ι) => η i)) (n : N), Eq.{succ (max u1 u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3)) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_3) (Finsupp.single.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3 a n)) (Dfinsupp.single.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3) (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) a) (Finsupp.single.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) a)) N _inst_3 (Sigma.snd.{u1, u2} ι (fun (i : ι) => η i) a) n))
 but is expected to have type
-  forall {ι : Type.{u3}} {η : ι -> Type.{u1}} {N : Type.{u2}} [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : Zero.{u2} N] (a : Sigma.{u3, u1} ι (fun (i : ι) => η i)) (n : N), Eq.{max (max (succ u3) (succ u1)) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3)) (Finsupp.single.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3 a n)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Equiv.{max (succ u2) (succ (max u1 u3)), max (succ (max u2 u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (fun (_x : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u3, u1, u2} ι (fun (i : ι) => η i) N _inst_3) (Finsupp.single.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3 a n)) (Dfinsupp.single.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3) (Sigma.fst.{u3, u1} ι (fun (i : ι) => η i) a) (Finsupp.single.{u1, u2} (η (Sigma.fst.{u3, u1} ι (fun (i : ι) => η i) a)) N _inst_3 (Sigma.snd.{u3, u1} ι (fun (i : ι) => η i) a) n))
+  forall {ι : Type.{u3}} {η : ι -> Type.{u1}} {N : Type.{u2}} [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : Zero.{u2} N] (a : Sigma.{u3, u1} ι (fun (i : ι) => η i)) (n : N), Eq.{max (max (succ u3) (succ u1)) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3)) (Finsupp.single.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3 a n)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Equiv.{max (succ u2) (succ (max u1 u3)), max (succ (max u2 u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (fun (_x : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u3, u1, u2} ι (fun (i : ι) => η i) N _inst_3) (Finsupp.single.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3 a n)) (Dfinsupp.single.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3) (Sigma.fst.{u3, u1} ι (fun (i : ι) => η i) a) (Finsupp.single.{u1, u2} (η (Sigma.fst.{u3, u1} ι (fun (i : ι) => η i) a)) N _inst_3 (Sigma.snd.{u3, u1} ι (fun (i : ι) => η i) a) n))
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_single sigmaFinsuppEquivDfinsupp_singleₓ'. -/
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_single [DecidableEq ι] [Zero N] (a : Σi, η i) (n : N) :
@@ -486,7 +486,7 @@ attribute [-instance] Finsupp.zero
 lean 3 declaration is
   forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : AddZeroClass.{u3} N] (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (g : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)), Eq.{succ (max u1 u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (instHAdd.{max (max u1 u2) u3} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) f g)) (HAdd.hAdd.{max u1 u2 u3, max u1 u2 u3, max u1 u2 u3} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (instHAdd.{max u1 u2 u3} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Dfinsupp.hasAdd.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) f) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) g))
 but is expected to have type
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : AddZeroClass.{u3} N] (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (g : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (instHAdd.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) f g)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (instHAdd.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) f g)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) f) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) g) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) f) (instHAdd.{max (max u1 u2) u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) f) (Dfinsupp.instAddDfinsuppToZero.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toZero.{u3} N _inst_2)) f) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toZero.{u3} N _inst_2)) g))
+  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : AddZeroClass.{u3} N] (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (g : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (instHAdd.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) f g)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (instHAdd.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) f g)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) f) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) g) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) f) (instHAdd.{max (max u1 u2) u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) f) (Dfinsupp.instAddDfinsuppToZero.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toZero.{u3} N _inst_2)) f) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toZero.{u3} N _inst_2)) g))
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_add sigmaFinsuppEquivDfinsupp_addₓ'. -/
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_add [AddZeroClass N] (f g : (Σi, η i) →₀ N) :
@@ -518,7 +518,7 @@ attribute [-instance] Finsupp.addZeroClass
 lean 3 declaration is
   forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} {R : Type.{u4}} [_inst_2 : Monoid.{u4} R] [_inst_3 : AddMonoid.{u3} N] [_inst_4 : DistribMulAction.{u4, u3} R N _inst_2 _inst_3] (r : R) (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))), Eq.{succ (max u1 u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3)))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (SMul.smul.{u4, max (max u1 u2) u3} R (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (SMulZeroClass.toHasSmul.{u4, max (max u1 u2) u3} R (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.zero.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.smulZeroClass.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3)) (DistribSMul.toSmulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4)))) r f)) (SMul.smul.{u4, max u1 u2 u3} R (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)))) (MulAction.toHasSmul.{u4, max u1 u2 u3} R (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)))) _inst_2 (DistribMulAction.toMulAction.{u4, max u1 u2 u3} R (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)))) _inst_2 (Dfinsupp.addMonoid.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)) (Dfinsupp.distribMulAction.{u1, max u2 u3, u4} ι R (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) _inst_2 (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.distribMulAction.{u2, u3, u4} (η i) N R _inst_2 _inst_3 _inst_4)))) r (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) f))
 but is expected to have type
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} {R : Type.{u4}} [_inst_2 : Monoid.{u4} R] [_inst_3 : AddMonoid.{u3} N] [_inst_4 : DistribMulAction.{u4, u3} R N _inst_2 _inst_3] (r : R) (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) (HSMul.hSMul.{u4, max (max u1 u2) u3, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (instHSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (SMulZeroClass.toSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (AddMonoid.toZero.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.addMonoid.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3)) (Finsupp.smulZeroClass.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddMonoid.toZero.{u3} N _inst_3) (DistribSMul.toSMulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4))))) r f)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddMonoid.toZero.{u3} N _inst_3)) (HSMul.hSMul.{u4, max (max u1 u2) u3, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (instHSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (SMulZeroClass.toSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (AddMonoid.toZero.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.addMonoid.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3)) (Finsupp.smulZeroClass.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddMonoid.toZero.{u3} N _inst_3) (DistribSMul.toSMulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4))))) r f)) (SMul.smul.{u4, max (max u3 u2) u1} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) (MulAction.toSMul.{u4, max (max u1 u2) u3} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) _inst_2 (DistribMulAction.toMulAction.{u4, max (max u1 u2) u3} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) _inst_2 (Dfinsupp.instAddMonoidDfinsuppToZero.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)) (Dfinsupp.distribMulAction.{u1, max u2 u3, u4} ι R (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) _inst_2 (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.distribMulAction.{u2, u3, u4} (η i) N R _inst_2 _inst_3 _inst_4)))) r (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddMonoid.toZero.{u3} N _inst_3)) f))
+  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} {R : Type.{u4}} [_inst_2 : Monoid.{u4} R] [_inst_3 : AddMonoid.{u3} N] [_inst_4 : DistribMulAction.{u4, u3} R N _inst_2 _inst_3] (r : R) (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) (HSMul.hSMul.{u4, max (max u1 u2) u3, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (instHSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (SMulZeroClass.toSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (AddMonoid.toZero.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.addMonoid.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3)) (Finsupp.smulZeroClass.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddMonoid.toZero.{u3} N _inst_3) (DistribSMul.toSMulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4))))) r f)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddMonoid.toZero.{u3} N _inst_3)) (HSMul.hSMul.{u4, max (max u1 u2) u3, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (instHSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (SMulZeroClass.toSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (AddMonoid.toZero.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.addMonoid.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3)) (Finsupp.smulZeroClass.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddMonoid.toZero.{u3} N _inst_3) (DistribSMul.toSMulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4))))) r f)) (SMul.smul.{u4, max (max u3 u2) u1} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) (MulAction.toSMul.{u4, max (max u1 u2) u3} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) _inst_2 (DistribMulAction.toMulAction.{u4, max (max u1 u2) u3} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) _inst_2 (Dfinsupp.instAddMonoidDfinsuppToZero.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)) (Dfinsupp.distribMulAction.{u1, max u2 u3, u4} ι R (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) _inst_2 (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.distribMulAction.{u2, u3, u4} (η i) N R _inst_2 _inst_3 _inst_4)))) r (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddMonoid.toZero.{u3} N _inst_3)) f))
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_smul sigmaFinsuppEquivDfinsupp_smulₓ'. -/
 --tofix: r • (sigma_finsupp_equiv_dfinsupp f) doesn't work.
 @[simp]
Diff
@@ -137,7 +137,7 @@ def Dfinsupp.toFinsupp (f : Π₀ i : ι, M) : ι →₀ M :=
 
 /- warning: dfinsupp.to_finsupp_coe -> Dfinsupp.toFinsupp_coe is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Zero.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M _inst_2))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)), Eq.{max (succ u1) (succ u2)} (ι -> M) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M _inst_2) (fun (_x : Finsupp.{u1, u2} ι M _inst_2) => ι -> M) (Finsupp.hasCoeToFun.{u1, u2} ι M _inst_2) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) f)) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) => ι -> M) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) f)
+  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Zero.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M _inst_2))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)), Eq.{max (succ u1) (succ u2)} (ι -> M) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M _inst_2) (fun (_x : Finsupp.{u1, u2} ι M _inst_2) => ι -> M) (Finsupp.coeFun.{u1, u2} ι M _inst_2) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) f)) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) => ι -> M) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) f)
 but is expected to have type
   forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : Zero.{u1} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u1} M m (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M _inst_2)))] (f : Dfinsupp.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : ι), (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : ι) => M) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Finsupp.{u2, u1} ι M _inst_2) ι (fun (_x : ι) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : ι) => M) _x) (Finsupp.funLike.{u2, u1} ι M _inst_2) (Dfinsupp.toFinsupp.{u2, u1} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Dfinsupp.{u2, u1} ι (fun (i : ι) => (fun (_i : ι) => M) i) (fun (i : ι) => (fun (i : ι) => _inst_2) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (_i : ι) => M) i) _x) (Dfinsupp.funLike.{u2, u1} ι (fun (i : ι) => (fun (_i : ι) => M) i) (fun (i : ι) => (fun (i : ι) => _inst_2) i)) f)
 Case conversion may be inaccurate. Consider using '#align dfinsupp.to_finsupp_coe Dfinsupp.toFinsupp_coeₓ'. -/
@@ -215,7 +215,7 @@ theorem toDfinsupp_zero [Zero M] : (0 : ι →₀ M).toDfinsupp = 0 :=
 
 /- warning: finsupp.to_dfinsupp_add -> Finsupp.toDfinsupp_add is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddZeroClass.{u2} M] (f : Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1)) (g : Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1)), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_1)) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1)) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1)) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1)) (instHAdd.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1)) (Finsupp.hasAdd.{u1, u2} ι M _inst_1)) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_1)) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_1)) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_1))) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1) f) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1) g))
+  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddZeroClass.{u2} M] (f : Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1)) (g : Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1)), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_1)) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1)) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1)) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1)) (instHAdd.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1)) (Finsupp.add.{u1, u2} ι M _inst_1)) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_1)) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_1)) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_1))) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1) f) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_1) g))
 but is expected to have type
   forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddZeroClass.{u2} M] (f : Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_1)) (g : Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_1)), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} M _inst_1)) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_1) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_1)) (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_1)) (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_1)) (instHAdd.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_1)) (Finsupp.add.{u1, u2} ι M _inst_1)) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} M _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} M _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} M _inst_1)) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} M _inst_1)) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_1))) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_1) f) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_1) g))
 Case conversion may be inaccurate. Consider using '#align finsupp.to_dfinsupp_add Finsupp.toDfinsupp_addₓ'. -/
@@ -227,9 +227,9 @@ theorem toDfinsupp_add [AddZeroClass M] (f g : ι →₀ M) :
 
 /- warning: finsupp.to_dfinsupp_neg -> Finsupp.toDfinsupp_neg is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddGroup.{u2} M] (f : Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1)))) (Neg.neg.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Finsupp.hasNeg.{u1, u2} ι M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) f)) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Dfinsupp.hasNeg.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_1)) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1)))) f))
+  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddGroup.{u2} M] (f : Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1)))) (Neg.neg.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Finsupp.neg.{u1, u2} ι M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) f)) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Dfinsupp.hasNeg.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_1)) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1)))) f))
 but is expected to have type
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddGroup.{u2} M] (f : Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Finsupp.toDfinsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) (Neg.neg.{max u1 u2} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Finsupp.instNegFinsuppToZero.{u1, u2} ι M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) f)) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Dfinsupp.instNegDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_1)) (Finsupp.toDfinsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) f))
+  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddGroup.{u2} M] (f : Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Finsupp.toDfinsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) (Neg.neg.{max u1 u2} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Finsupp.neg.{u1, u2} ι M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) f)) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Dfinsupp.instNegDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_1)) (Finsupp.toDfinsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) f))
 Case conversion may be inaccurate. Consider using '#align finsupp.to_dfinsupp_neg Finsupp.toDfinsupp_negₓ'. -/
 @[simp]
 theorem toDfinsupp_neg [AddGroup M] (f : ι →₀ M) : (-f).toDfinsupp = -f.toDfinsupp :=
@@ -238,9 +238,9 @@ theorem toDfinsupp_neg [AddGroup M] (f : ι →₀ M) : (-f).toDfinsupp = -f.toD
 
 /- warning: finsupp.to_dfinsupp_sub -> Finsupp.toDfinsupp_sub is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddGroup.{u2} M] (f : Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (g : Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1)))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (instHSub.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Finsupp.hasSub.{u1, u2} ι M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) f g)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Dfinsupp.hasSub.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_1))) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1)))) f) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1)))) g))
+  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddGroup.{u2} M] (f : Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (g : Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1)))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (instHSub.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Finsupp.sub.{u1, u2} ι M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) f g)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1))))) (Dfinsupp.hasSub.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_1))) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1)))) f) (Finsupp.toDfinsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_1)))) g))
 but is expected to have type
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddGroup.{u2} M] (f : Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (g : Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Finsupp.toDfinsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (instHSub.{max u1 u2} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Finsupp.instSubFinsuppToZeroToNegZeroClass.{u1, u2} ι M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) f g)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_1))) (Finsupp.toDfinsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) f) (Finsupp.toDfinsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) g))
+  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : AddGroup.{u2} M] (f : Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (g : Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Finsupp.toDfinsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (instHSub.{max u1 u2} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Finsupp.sub.{u1, u2} ι M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) f g)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_1))) (Finsupp.toDfinsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) f) (Finsupp.toDfinsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_1)))) g))
 Case conversion may be inaccurate. Consider using '#align finsupp.to_dfinsupp_sub Finsupp.toDfinsupp_subₓ'. -/
 @[simp]
 theorem toDfinsupp_sub [AddGroup M] (f g : ι →₀ M) :
@@ -250,9 +250,9 @@ theorem toDfinsupp_sub [AddGroup M] (f g : ι →₀ M) :
 
 /- warning: finsupp.to_dfinsupp_smul -> Finsupp.toDfinsupp_smul is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Monoid.{u2} R] [_inst_2 : AddMonoid.{u3} M] [_inst_3 : DistribMulAction.{u2, u3} R M _inst_1 _inst_2] (r : R) (f : Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2))), Eq.{succ (max u1 u3)} (Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2))) (Finsupp.toDfinsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2)) (SMul.smul.{u2, max u1 u3} R (Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2))) (SMulZeroClass.toHasSmul.{u2, max u1 u3} R (Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2))) (Finsupp.hasZero.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2))) (Finsupp.smulZeroClass.{u1, u3, u2} ι M R (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2)) (DistribSMul.toSmulZeroClass.{u2, u3} R M (AddMonoid.toAddZeroClass.{u3} M _inst_2) (DistribMulAction.toDistribSMul.{u2, u3} R M _inst_1 _inst_2 _inst_3)))) r f)) (SMul.smul.{u2, max u1 u3} R (Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2))) (Dfinsupp.hasSmul.{u1, u3, u2} ι R (fun (i : ι) => M) _inst_1 (fun (i : ι) => _inst_2) (fun (i : ι) => _inst_3)) r (Finsupp.toDfinsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2)) f))
+  forall {ι : Type.{u1}} {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Monoid.{u2} R] [_inst_2 : AddMonoid.{u3} M] [_inst_3 : DistribMulAction.{u2, u3} R M _inst_1 _inst_2] (r : R) (f : Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2))), Eq.{succ (max u1 u3)} (Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2))) (Finsupp.toDfinsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2)) (SMul.smul.{u2, max u1 u3} R (Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2))) (SMulZeroClass.toHasSmul.{u2, max u1 u3} R (Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2))) (Finsupp.zero.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2))) (Finsupp.smulZeroClass.{u1, u3, u2} ι M R (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2)) (DistribSMul.toSmulZeroClass.{u2, u3} R M (AddMonoid.toAddZeroClass.{u3} M _inst_2) (DistribMulAction.toDistribSMul.{u2, u3} R M _inst_1 _inst_2 _inst_3)))) r f)) (SMul.smul.{u2, max u1 u3} R (Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2))) (Dfinsupp.hasSmul.{u1, u3, u2} ι R (fun (i : ι) => M) _inst_1 (fun (i : ι) => _inst_2) (fun (i : ι) => _inst_3)) r (Finsupp.toDfinsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_2)) f))
 but is expected to have type
-  forall {ι : Type.{u1}} {R : Type.{u3}} {M : Type.{u2}} [_inst_1 : Monoid.{u3} R] [_inst_2 : AddMonoid.{u2} M] [_inst_3 : DistribMulAction.{u3, u2} R M _inst_1 _inst_2] (r : R) (f : Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2)), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} M _inst_2)) (Finsupp.toDfinsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} R (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2)) (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2)) (instHSMul.{u3, max u1 u2} R (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2)) (SMulZeroClass.toSMul.{u3, max u1 u2} R (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2)) (Finsupp.zero.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2)) (Finsupp.instSMulZeroClassFinsuppZero.{u1, u2, u3} ι M R (AddMonoid.toZero.{u2} M _inst_2) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M _inst_2) (DistribMulAction.toDistribSMul.{u3, u2} R M _inst_1 _inst_2 _inst_3))))) r f)) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} R (Dfinsupp.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} M _inst_2)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} M _inst_2)) (instHSMul.{u3, max u1 u2} R (Dfinsupp.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} M _inst_2)) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι R (fun (_i : ι) => M) _inst_1 (fun (i : ι) => _inst_2) (fun (i : ι) => _inst_3))) r (Finsupp.toDfinsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2) f))
+  forall {ι : Type.{u1}} {R : Type.{u3}} {M : Type.{u2}} [_inst_1 : Monoid.{u3} R] [_inst_2 : AddMonoid.{u2} M] [_inst_3 : DistribMulAction.{u3, u2} R M _inst_1 _inst_2] (r : R) (f : Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2)), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} M _inst_2)) (Finsupp.toDfinsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} R (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2)) (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2)) (instHSMul.{u3, max u1 u2} R (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2)) (SMulZeroClass.toSMul.{u3, max u1 u2} R (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2)) (Finsupp.zero.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2)) (Finsupp.smulZeroClass.{u1, u2, u3} ι M R (AddMonoid.toZero.{u2} M _inst_2) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M _inst_2) (DistribMulAction.toDistribSMul.{u3, u2} R M _inst_1 _inst_2 _inst_3))))) r f)) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} R (Dfinsupp.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} M _inst_2)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} M _inst_2)) (instHSMul.{u3, max u1 u2} R (Dfinsupp.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} M _inst_2)) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι R (fun (_i : ι) => M) _inst_1 (fun (i : ι) => _inst_2) (fun (i : ι) => _inst_3))) r (Finsupp.toDfinsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_2) f))
 Case conversion may be inaccurate. Consider using '#align finsupp.to_dfinsupp_smul Finsupp.toDfinsupp_smulₓ'. -/
 @[simp]
 theorem toDfinsupp_smul [Monoid R] [AddMonoid M] [DistribMulAction R M] (r : R) (f : ι →₀ M) :
@@ -275,7 +275,7 @@ theorem toFinsupp_zero [Zero M] [∀ m : M, Decidable (m ≠ 0)] : toFinsupp 0 =
 
 /- warning: dfinsupp.to_finsupp_add -> Dfinsupp.toFinsupp_add is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddZeroClass.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M _inst_2)))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => M) i) _inst_2)) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => M) i) _inst_2)), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_2)) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M _inst_2) (fun (m : M) => _inst_3 m) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_2)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_2)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_2)) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_2)) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_2)) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_2)) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_2)) (instHAdd.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_2)) (Finsupp.hasAdd.{u1, u2} ι M _inst_2)) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M _inst_2) (fun (m : M) => _inst_3 m) f) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M _inst_2) (fun (m : M) => _inst_3 m) g))
+  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddZeroClass.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M _inst_2)))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => M) i) _inst_2)) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => M) i) _inst_2)), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_2)) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M _inst_2) (fun (m : M) => _inst_3 m) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_2)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_2)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_2)) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_2)) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_2)) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_2)) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_2)) (instHAdd.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_2)) (Finsupp.add.{u1, u2} ι M _inst_2)) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M _inst_2) (fun (m : M) => _inst_3 m) f) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M _inst_2) (fun (m : M) => _inst_3 m) g))
 but is expected to have type
   forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddZeroClass.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddZeroClass.toZero.{u2} M _inst_2))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => M) i) _inst_2)) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => M) i) _inst_2)), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_2)) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toZero.{u2} M _inst_2) (fun (m : M) => _inst_3 m) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) _inst_2)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) _inst_2)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) _inst_2)) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) _inst_2)) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_2)) (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_2)) (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_2)) (instHAdd.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_2)) (Finsupp.add.{u1, u2} ι M _inst_2)) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toZero.{u2} M _inst_2) (fun (m : M) => _inst_3 m) f) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toZero.{u2} M _inst_2) (fun (m : M) => _inst_3 m) g))
 Case conversion may be inaccurate. Consider using '#align dfinsupp.to_finsupp_add Dfinsupp.toFinsupp_addₓ'. -/
@@ -287,9 +287,9 @@ theorem toFinsupp_add [AddZeroClass M] [∀ m : M, Decidable (m ≠ 0)] (f g : 
 
 /- warning: dfinsupp.to_finsupp_neg -> Dfinsupp.toFinsupp_neg is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddGroup.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => M) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => M) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => M) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => M) i) _inst_2))))), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Dfinsupp.hasNeg.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) f)) (Neg.neg.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Finsupp.hasNeg.{u1, u2} ι M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) f))
+  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddGroup.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => M) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => M) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => M) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => M) i) _inst_2))))), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Dfinsupp.hasNeg.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) f)) (Neg.neg.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Finsupp.neg.{u1, u2} ι M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) f))
 but is expected to have type
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddGroup.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => M) i) _inst_2))))), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (_i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (_i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (_i : ι) => M) i) _inst_2))))) (Dfinsupp.instNegDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) f)) (Neg.neg.{max u1 u2} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (Finsupp.instNegFinsuppToZero.{u1, u2} ι M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) f))
+  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddGroup.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => M) i) _inst_2))))), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (_i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (_i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (_i : ι) => M) i) _inst_2))))) (Dfinsupp.instNegDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2)) f)) (Neg.neg.{max u1 u2} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (Finsupp.neg.{u1, u2} ι M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) f))
 Case conversion may be inaccurate. Consider using '#align dfinsupp.to_finsupp_neg Dfinsupp.toFinsupp_negₓ'. -/
 @[simp]
 theorem toFinsupp_neg [AddGroup M] [∀ m : M, Decidable (m ≠ 0)] (f : Π₀ i : ι, M) :
@@ -299,9 +299,9 @@ theorem toFinsupp_neg [AddGroup M] [∀ m : M, Decidable (m ≠ 0)] (f : Π₀ i
 
 /- warning: dfinsupp.to_finsupp_sub -> Dfinsupp.toFinsupp_sub is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddGroup.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => M) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => M) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => M) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => M) i) _inst_2))))) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => M) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => M) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => M) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => M) i) _inst_2))))), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Dfinsupp.hasSub.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2))) f g)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (instHSub.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Finsupp.hasSub.{u1, u2} ι M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) f) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) g))
+  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddGroup.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => M) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => M) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => M) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => M) i) _inst_2))))) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => M) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => M) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => M) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => M) i) _inst_2))))), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Dfinsupp.hasSub.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2))) f g)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (instHSub.{max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2))))) (Finsupp.sub.{u1, u2} ι M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) f) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) g))
 but is expected to have type
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddGroup.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => M) i) _inst_2))))) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => M) i) _inst_2))))), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (_i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (_i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (_i : ι) => M) i) _inst_2))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (_i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (_i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (_i : ι) => M) i) _inst_2))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (_i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (_i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (_i : ι) => M) i) _inst_2))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (_i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (_i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (_i : ι) => M) i) _inst_2))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2))) f g)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (instHSub.{max u1 u2} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (Finsupp.instSubFinsuppToZeroToNegZeroClass.{u1, u2} ι M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) f) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) g))
+  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddGroup.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))))))] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => M) i) _inst_2))))) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => M) i) _inst_2))))), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (_i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (_i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (_i : ι) => M) i) _inst_2))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (_i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (_i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (_i : ι) => M) i) _inst_2))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (_i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (_i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (_i : ι) => M) i) _inst_2))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (_i : ι) => M) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (_i : ι) => M) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (_i : ι) => M) i) _inst_2))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2))) f g)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (instHSub.{max u1 u2} (Finsupp.{u1, u2} ι M (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2))))) (Finsupp.sub.{u1, u2} ι M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) f) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (NegZeroClass.toZero.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (AddGroup.toSubtractionMonoid.{u2} M _inst_2)))) (fun (m : M) => _inst_3 m) g))
 Case conversion may be inaccurate. Consider using '#align dfinsupp.to_finsupp_sub Dfinsupp.toFinsupp_subₓ'. -/
 @[simp]
 theorem toFinsupp_sub [AddGroup M] [∀ m : M, Decidable (m ≠ 0)] (f g : Π₀ i : ι, M) :
@@ -311,9 +311,9 @@ theorem toFinsupp_sub [AddGroup M] [∀ m : M, Decidable (m ≠ 0)] (f g : Π₀
 
 /- warning: dfinsupp.to_finsupp_smul -> Dfinsupp.toFinsupp_smul is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Monoid.{u2} R] [_inst_3 : AddMonoid.{u3} M] [_inst_4 : DistribMulAction.{u2, u3} R M _inst_2 _inst_3] [_inst_5 : forall (m : M), Decidable (Ne.{succ u3} M m (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3))))))] (r : R) (f : Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => M) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => M) i) _inst_3))), Eq.{max (succ u1) (succ u3)} (Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3))) (Dfinsupp.toFinsupp.{u1, u3} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3)) (fun (m : M) => _inst_5 m) (SMul.smul.{u2, max u1 u3} R (Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3))) (Dfinsupp.hasSmul.{u1, u3, u2} ι R (fun (i : ι) => M) _inst_2 (fun (i : ι) => _inst_3) (fun (i : ι) => _inst_4)) r f)) (SMul.smul.{u2, max u1 u3} R (Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3))) (SMulZeroClass.toHasSmul.{u2, max u1 u3} R (Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3))) (Finsupp.hasZero.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3))) (Finsupp.smulZeroClass.{u1, u3, u2} ι M R (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3)) (DistribSMul.toSmulZeroClass.{u2, u3} R M (AddMonoid.toAddZeroClass.{u3} M _inst_3) (DistribMulAction.toDistribSMul.{u2, u3} R M _inst_2 _inst_3 _inst_4)))) r (Dfinsupp.toFinsupp.{u1, u3} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3)) (fun (m : M) => _inst_5 m) f))
+  forall {ι : Type.{u1}} {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Monoid.{u2} R] [_inst_3 : AddMonoid.{u3} M] [_inst_4 : DistribMulAction.{u2, u3} R M _inst_2 _inst_3] [_inst_5 : forall (m : M), Decidable (Ne.{succ u3} M m (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3))))))] (r : R) (f : Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => M) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => M) i) _inst_3))), Eq.{max (succ u1) (succ u3)} (Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3))) (Dfinsupp.toFinsupp.{u1, u3} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3)) (fun (m : M) => _inst_5 m) (SMul.smul.{u2, max u1 u3} R (Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3))) (Dfinsupp.hasSmul.{u1, u3, u2} ι R (fun (i : ι) => M) _inst_2 (fun (i : ι) => _inst_3) (fun (i : ι) => _inst_4)) r f)) (SMul.smul.{u2, max u1 u3} R (Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3))) (SMulZeroClass.toHasSmul.{u2, max u1 u3} R (Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3))) (Finsupp.zero.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3))) (Finsupp.smulZeroClass.{u1, u3, u2} ι M R (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3)) (DistribSMul.toSmulZeroClass.{u2, u3} R M (AddMonoid.toAddZeroClass.{u3} M _inst_3) (DistribMulAction.toDistribSMul.{u2, u3} R M _inst_2 _inst_3 _inst_4)))) r (Dfinsupp.toFinsupp.{u1, u3} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_3)) (fun (m : M) => _inst_5 m) f))
 but is expected to have type
-  forall {ι : Type.{u1}} {R : Type.{u3}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Monoid.{u3} R] [_inst_3 : AddMonoid.{u2} M] [_inst_4 : DistribMulAction.{u3, u2} R M _inst_2 _inst_3] [_inst_5 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M _inst_3))))] (r : R) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => M) i) _inst_3)), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_3)) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddMonoid.toZero.{u2} M _inst_3) (fun (m : M) => _inst_5 m) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} R (Dfinsupp.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (_i : ι) => M) i) _inst_3)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (_i : ι) => M) i) _inst_3)) (instHSMul.{u3, max u1 u2} R (Dfinsupp.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (_i : ι) => M) i) _inst_3)) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι R (fun (_i : ι) => M) _inst_2 (fun (i : ι) => _inst_3) (fun (i : ι) => _inst_4))) r f)) (HSMul.hSMul.{u3, max u2 u1, max u1 u2} R (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_3)) (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_3)) (instHSMul.{u3, max u1 u2} R (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_3)) (SMulZeroClass.toSMul.{u3, max u1 u2} R (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_3)) (Finsupp.zero.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_3)) (Finsupp.instSMulZeroClassFinsuppZero.{u1, u2, u3} ι M R (AddMonoid.toZero.{u2} M _inst_3) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M _inst_3) (DistribMulAction.toDistribSMul.{u3, u2} R M _inst_2 _inst_3 _inst_4))))) r (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddMonoid.toZero.{u2} M _inst_3) (fun (m : M) => _inst_5 m) f))
+  forall {ι : Type.{u1}} {R : Type.{u3}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Monoid.{u3} R] [_inst_3 : AddMonoid.{u2} M] [_inst_4 : DistribMulAction.{u3, u2} R M _inst_2 _inst_3] [_inst_5 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M _inst_3))))] (r : R) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => M) i) _inst_3)), Eq.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_3)) (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddMonoid.toZero.{u2} M _inst_3) (fun (m : M) => _inst_5 m) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} R (Dfinsupp.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (_i : ι) => M) i) _inst_3)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (_i : ι) => M) i) _inst_3)) (instHSMul.{u3, max u1 u2} R (Dfinsupp.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (_i : ι) => M) i) _inst_3)) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι R (fun (_i : ι) => M) _inst_2 (fun (i : ι) => _inst_3) (fun (i : ι) => _inst_4))) r f)) (HSMul.hSMul.{u3, max u2 u1, max u1 u2} R (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_3)) (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_3)) (instHSMul.{u3, max u1 u2} R (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_3)) (SMulZeroClass.toSMul.{u3, max u1 u2} R (Finsupp.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_3)) (Finsupp.zero.{u1, u2} ι M (AddMonoid.toZero.{u2} M _inst_3)) (Finsupp.smulZeroClass.{u1, u2, u3} ι M R (AddMonoid.toZero.{u2} M _inst_3) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M _inst_3) (DistribMulAction.toDistribSMul.{u3, u2} R M _inst_2 _inst_3 _inst_4))))) r (Dfinsupp.toFinsupp.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) (AddMonoid.toZero.{u2} M _inst_3) (fun (m : M) => _inst_5 m) f))
 Case conversion may be inaccurate. Consider using '#align dfinsupp.to_finsupp_smul Dfinsupp.toFinsupp_smulₓ'. -/
 @[simp]
 theorem toFinsupp_smul [Monoid R] [AddMonoid M] [DistribMulAction R M] [∀ m : M, Decidable (m ≠ 0)]
@@ -344,7 +344,7 @@ def finsuppEquivDfinsupp [DecidableEq ι] [Zero M] [∀ m : M, Decidable (m ≠
 
 /- warning: finsupp_add_equiv_dfinsupp -> finsuppAddEquivDfinsupp is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddZeroClass.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M _inst_2)))))], AddEquiv.{max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_2)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_2)) (Finsupp.hasAdd.{u1, u2} ι M _inst_2) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2))
+  forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddZeroClass.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M _inst_2)))))], AddEquiv.{max u1 u2, max u1 u2} (Finsupp.{u1, u2} ι M (AddZeroClass.toHasZero.{u2} M _inst_2)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u2} M _inst_2)) (Finsupp.add.{u1, u2} ι M _inst_2) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2))
 but is expected to have type
   forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddZeroClass.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddZeroClass.toZero.{u2} M _inst_2))))], AddEquiv.{max u2 u1, max u2 u1} (Finsupp.{u1, u2} ι M (AddZeroClass.toZero.{u2} M _inst_2)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (_i : ι) => M) i) _inst_2)) (Finsupp.add.{u1, u2} ι M _inst_2) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => _inst_2))
 Case conversion may be inaccurate. Consider using '#align finsupp_add_equiv_dfinsupp finsuppAddEquivDfinsuppₓ'. -/
@@ -365,7 +365,7 @@ variable (R)
 lean 3 declaration is
   forall {ι : Type.{u1}} (R : Type.{u2}) {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : forall (m : M), Decidable (Ne.{succ u3} M m (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))))))] [_inst_5 : Module.{u2, u3} R M _inst_2 _inst_3], LinearEquiv.{u2, u2, max u1 u3, max u1 u3} R R _inst_2 _inst_2 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHomInvPair.ids.{u2} R _inst_2) (RingHomInvPair.ids.{u2} R _inst_2) (Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) (Finsupp.addCommMonoid.{u1, u3} ι M _inst_3) (Dfinsupp.addCommMonoid.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => _inst_3)) (Finsupp.module.{u1, u3, u2} ι M R _inst_2 _inst_3 _inst_5) (Dfinsupp.module.{u1, u3, u2} ι R (fun (i : ι) => M) _inst_2 (fun (i : ι) => _inst_3) (fun (i : ι) => _inst_5))
 but is expected to have type
-  forall {ι : Type.{u1}} (R : Type.{u2}) {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : forall (m : M), Decidable (Ne.{succ u3} M m (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))))] [_inst_5 : Module.{u2, u3} R M _inst_2 _inst_3], LinearEquiv.{u2, u2, max u3 u1, max u3 u1} R R _inst_2 _inst_2 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHomInvPair.ids.{u2} R _inst_2) (RingHomInvPair.ids.{u2} R _inst_2) (Finsupp.{u1, u3} ι M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (_i : ι) => M) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (_i : ι) => M) i) _inst_3))) (Finsupp.addCommMonoid.{u1, u3} ι M _inst_3) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => _inst_3)) (Finsupp.instModuleFinsuppToZeroToAddMonoidAddCommMonoid.{u1, u3, u2} ι M R _inst_2 _inst_3 _inst_5) (Dfinsupp.module.{u1, u3, u2} ι R (fun (i : ι) => M) _inst_2 (fun (i : ι) => _inst_3) (fun (i : ι) => _inst_5))
+  forall {ι : Type.{u1}} (R : Type.{u2}) {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : forall (m : M), Decidable (Ne.{succ u3} M m (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))))] [_inst_5 : Module.{u2, u3} R M _inst_2 _inst_3], LinearEquiv.{u2, u2, max u3 u1, max u3 u1} R R _inst_2 _inst_2 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHomInvPair.ids.{u2} R _inst_2) (RingHomInvPair.ids.{u2} R _inst_2) (Finsupp.{u1, u3} ι M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (_i : ι) => M) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (_i : ι) => M) i) _inst_3))) (Finsupp.addCommMonoid.{u1, u3} ι M _inst_3) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => _inst_3)) (Finsupp.module.{u1, u3, u2} ι M R _inst_2 _inst_3 _inst_5) (Dfinsupp.module.{u1, u3, u2} ι R (fun (i : ι) => M) _inst_2 (fun (i : ι) => _inst_3) (fun (i : ι) => _inst_5))
 Case conversion may be inaccurate. Consider using '#align finsupp_lequiv_dfinsupp finsuppLequivDfinsuppₓ'. -/
 /-- The additive version of `finsupp.to_finsupp`. Note that this is `noncomputable` because
 `finsupp.has_add` is noncomputable. -/
@@ -420,7 +420,7 @@ def sigmaFinsuppEquivDfinsupp [Zero N] : ((Σi, η i) →₀ N) ≃ Π₀ i, η
 
 /- warning: sigma_finsupp_equiv_dfinsupp_apply -> sigmaFinsuppEquivDfinsupp_apply is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2), Eq.{max (succ u1) (succ u2) (succ u3)} ((fun (_x : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2)) => forall (i : ι), Finsupp.{u2, u3} (η i) N _inst_2) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2) f)) (coeFn.{succ (max u1 u2 u3), max (succ u1) (succ (max u2 u3))} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2)) (fun (_x : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2)) => forall (i : ι), Finsupp.{u2, u3} (η i) N _inst_2) (Dfinsupp.hasCoeToFun.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2)) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2) f)) (Finsupp.split.{u1, u3, u2} ι N (fun (i : ι) => η i) _inst_2 f)
+  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2), Eq.{max (succ u1) (succ u2) (succ u3)} ((fun (_x : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) => forall (i : ι), Finsupp.{u2, u3} (η i) N _inst_2) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2) f)) (coeFn.{succ (max u1 u2 u3), max (succ u1) (succ (max u2 u3))} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (fun (_x : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) => forall (i : ι), Finsupp.{u2, u3} (η i) N _inst_2) (Dfinsupp.hasCoeToFun.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2) f)) (Finsupp.split.{u1, u3, u2} ι N (fun (i : ι) => η i) _inst_2 f)
 but is expected to have type
   forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2), Eq.{max (max (succ u1) (succ u2)) (succ u3)} (forall (a : ι), (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) a) (FunLike.coe.{max (succ u1) (succ (max u2 u3)), succ u1, succ (max u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) _x) (Dfinsupp.funLike.{u1, max u2 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2) i)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2) f)) (Finsupp.split.{u1, u3, u2} ι N (fun (i : ι) => η i) _inst_2 f)
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_apply sigmaFinsuppEquivDfinsupp_applyₓ'. -/
@@ -432,7 +432,7 @@ theorem sigmaFinsuppEquivDfinsupp_apply [Zero N] (f : (Σi, η i) →₀ N) :
 
 /- warning: sigma_finsupp_equiv_dfinsupp_symm_apply -> sigmaFinsuppEquivDfinsupp_symm_apply is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2)) (s : Sigma.{u1, u2} ι (fun (i : ι) => η i)), Eq.{succ u3} N (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (fun (_x : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) => (Sigma.{u1, u2} ι (fun (i : ι) => η i)) -> N) (Finsupp.hasCoeToFun.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (coeFn.{max 1 (max (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3)), max (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{succ (max u1 u2 u3), max (succ (max u1 u2)) (succ u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) (fun (_x : Equiv.{succ (max u1 u2 u3), max (succ (max u1 u2)) (succ u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) => (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2)) -> (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) (Equiv.hasCoeToFun.{succ (max u1 u2 u3), max (succ (max u1 u2)) (succ u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) (Equiv.symm.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2)) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2)) f) s) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (Finsupp.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) N _inst_2) (fun (_x : Finsupp.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) N _inst_2) => (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) -> N) (Finsupp.hasCoeToFun.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) N _inst_2) (coeFn.{succ (max u1 u2 u3), max (succ u1) (succ (max u2 u3))} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2)) (fun (_x : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2)) => forall (i : ι), Finsupp.{u2, u3} (η i) N _inst_2) (Dfinsupp.hasCoeToFun.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_2)) f (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) (Sigma.snd.{u1, u2} ι (fun (i : ι) => η i) s))
+  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (s : Sigma.{u1, u2} ι (fun (i : ι) => η i)), Eq.{succ u3} N (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (fun (_x : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) => (Sigma.{u1, u2} ι (fun (i : ι) => η i)) -> N) (Finsupp.coeFun.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (coeFn.{max 1 (max (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3)), max (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{succ (max u1 u2 u3), max (succ (max u1 u2)) (succ u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) (fun (_x : Equiv.{succ (max u1 u2 u3), max (succ (max u1 u2)) (succ u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) => (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) -> (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) (Equiv.hasCoeToFun.{succ (max u1 u2 u3), max (succ (max u1 u2)) (succ u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) (Equiv.symm.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_2)) f) s) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (Finsupp.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) N _inst_2) (fun (_x : Finsupp.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) N _inst_2) => (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) -> N) (Finsupp.coeFun.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) N _inst_2) (coeFn.{succ (max u1 u2 u3), max (succ u1) (succ (max u2 u3))} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) (fun (_x : Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) => forall (i : ι), Finsupp.{u2, u3} (η i) N _inst_2) (Dfinsupp.hasCoeToFun.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_2)) f (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) s)) (Sigma.snd.{u1, u2} ι (fun (i : ι) => η i) s))
 but is expected to have type
   forall {ι : Type.{u2}} {η : ι -> Type.{u1}} {N : Type.{u3}} [_inst_2 : Zero.{u3} N] (f : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (s : Sigma.{u2, u1} ι (fun (i : ι) => η i)), Eq.{succ u3} ((fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : Sigma.{u2, u1} ι (fun (i : ι) => η i)) => N) s) (FunLike.coe.{max (succ (max u2 u1)) (succ u3), succ (max u2 u1), succ u3} (Finsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) (Sigma.{u2, u1} ι (fun (i : ι) => η i)) (fun (_x : Sigma.{u2, u1} ι (fun (i : ι) => η i)) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : Sigma.{u2, u1} ι (fun (i : ι) => η i)) => N) _x) (Finsupp.funLike.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Equiv.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2)) (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (fun (_x : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) => Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2)) (Equiv.symm.{max (max (succ u3) (succ u1)) (succ u2), max (max (succ u3) (succ u1)) (succ u2)} (Finsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2)) (sigmaFinsuppEquivDfinsupp.{u2, u1, u3} ι (fun (i : ι) => η i) N _inst_2)) f) s) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Finsupp.{u1, u3} (η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) N _inst_2) (η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) (fun (_x : η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) => (fun (x._@.Mathlib.Data.Finsupp.Defs._hyg.779 : η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) => N) _x) (Finsupp.funLike.{u1, u3} (η (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) N _inst_2) (FunLike.coe.{max (succ u2) (succ (max u1 u3)), succ u2, succ (max u1 u3)} (Dfinsupp.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) i) _x) (Dfinsupp.funLike.{u2, max u1 u3} ι (fun (i : ι) => (fun (i : ι) => Finsupp.{u1, u3} (η i) N _inst_2) i) (fun (i : ι) => (fun (i : ι) => Finsupp.zero.{u1, u3} (η i) N _inst_2) i)) f (Sigma.fst.{u2, u1} ι (fun (i : ι) => η i) s)) (Sigma.snd.{u2, u1} ι (fun (i : ι) => η i) s))
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_symm_apply sigmaFinsuppEquivDfinsupp_symm_applyₓ'. -/
@@ -444,7 +444,7 @@ theorem sigmaFinsuppEquivDfinsupp_symm_apply [Zero N] (f : Π₀ i, η i →₀
 
 /- warning: sigma_finsupp_equiv_dfinsupp_support -> sigmaFinsuppEquivDfinsupp_support is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : Zero.{u3} N] [_inst_4 : forall (i : ι) (x : Finsupp.{u2, u3} (η i) N _inst_3), Decidable (Ne.{max (succ u2) (succ u3)} (Finsupp.{u2, u3} (η i) N _inst_3) x (OfNat.ofNat.{max u2 u3} (Finsupp.{u2, u3} (η i) N _inst_3) 0 (OfNat.mk.{max u2 u3} (Finsupp.{u2, u3} (η i) N _inst_3) 0 (Zero.zero.{max u2 u3} (Finsupp.{u2, u3} (η i) N _inst_3) (Finsupp.hasZero.{u2, u3} (η i) N _inst_3)))))] (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3), Eq.{succ u1} (Finset.{u1} ι) (Dfinsupp.support.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_3) (fun (i : ι) (x : Finsupp.{u2, u3} (η i) N _inst_3) => _inst_4 i x) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_3))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_3))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_3))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_3) f)) (Finsupp.splitSupport.{u1, u3, u2} ι N (fun (i : ι) => η i) _inst_3 f)
+  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : Zero.{u3} N] [_inst_4 : forall (i : ι) (x : Finsupp.{u2, u3} (η i) N _inst_3), Decidable (Ne.{max (succ u2) (succ u3)} (Finsupp.{u2, u3} (η i) N _inst_3) x (OfNat.ofNat.{max u2 u3} (Finsupp.{u2, u3} (η i) N _inst_3) 0 (OfNat.mk.{max u2 u3} (Finsupp.{u2, u3} (η i) N _inst_3) 0 (Zero.zero.{max u2 u3} (Finsupp.{u2, u3} (η i) N _inst_3) (Finsupp.zero.{u2, u3} (η i) N _inst_3)))))] (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3), Eq.{succ u1} (Finset.{u1} ι) (Dfinsupp.support.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3) (fun (i : ι) (x : Finsupp.{u2, u3} (η i) N _inst_3) => _inst_4 i x) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_3) f)) (Finsupp.splitSupport.{u1, u3, u2} ι N (fun (i : ι) => η i) _inst_3 f)
 but is expected to have type
   forall {ι : Type.{u3}} {η : ι -> Type.{u1}} {N : Type.{u2}} [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : Zero.{u2} N] [_inst_4 : forall (i : ι) (x : Finsupp.{u1, u2} (η i) N _inst_3), Decidable (Ne.{max (succ u1) (succ u2)} (Finsupp.{u1, u2} (η i) N _inst_3) x (OfNat.ofNat.{max u1 u2} (Finsupp.{u1, u2} (η i) N _inst_3) 0 (Zero.toOfNat0.{max u1 u2} (Finsupp.{u1, u2} (η i) N _inst_3) (Finsupp.zero.{u1, u2} (η i) N _inst_3))))] (f : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3), Eq.{succ u3} (Finset.{u3} ι) (Dfinsupp.support.{u3, max u1 u2} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3) (fun (i : ι) (x : Finsupp.{u1, u2} (η i) N _inst_3) => _inst_4 i x) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Equiv.{max (succ u2) (succ (max u1 u3)), max (succ (max u2 u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (fun (_x : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u3, u1, u2} ι (fun (i : ι) => η i) N _inst_3) f)) (Finsupp.splitSupport.{u3, u2, u1} ι N (fun (i : ι) => η i) _inst_3 f)
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_support sigmaFinsuppEquivDfinsupp_supportₓ'. -/
@@ -460,7 +460,7 @@ theorem sigmaFinsuppEquivDfinsupp_support [DecidableEq ι] [Zero N]
 
 /- warning: sigma_finsupp_equiv_dfinsupp_single -> sigmaFinsuppEquivDfinsupp_single is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : Zero.{u3} N] (a : Sigma.{u1, u2} ι (fun (i : ι) => η i)) (n : N), Eq.{succ (max u1 u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_3)) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_3))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_3))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_3))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_3) (Finsupp.single.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3 a n)) (Dfinsupp.single.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N _inst_3) (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) a) (Finsupp.single.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) a)) N _inst_3 (Sigma.snd.{u1, u2} ι (fun (i : ι) => η i) a) n))
+  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : Zero.{u3} N] (a : Sigma.{u1, u2} ι (fun (i : ι) => η i)) (n : N), Eq.{succ (max u1 u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3)) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N _inst_3) (Finsupp.single.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3 a n)) (Dfinsupp.single.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N _inst_3) (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) a) (Finsupp.single.{u2, u3} (η (Sigma.fst.{u1, u2} ι (fun (i : ι) => η i) a)) N _inst_3 (Sigma.snd.{u1, u2} ι (fun (i : ι) => η i) a) n))
 but is expected to have type
   forall {ι : Type.{u3}} {η : ι -> Type.{u1}} {N : Type.{u2}} [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : Zero.{u2} N] (a : Sigma.{u3, u1} ι (fun (i : ι) => η i)) (n : N), Eq.{max (max (succ u3) (succ u1)) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3)) (Finsupp.single.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3 a n)) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Equiv.{max (succ u2) (succ (max u1 u3)), max (succ (max u2 u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (fun (_x : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) => Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (max (succ u2) (succ u1)) (succ u3), max (max (succ u2) (succ u1)) (succ u3)} (Finsupp.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3) (Dfinsupp.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3))) (sigmaFinsuppEquivDfinsupp.{u3, u1, u2} ι (fun (i : ι) => η i) N _inst_3) (Finsupp.single.{max u1 u3, u2} (Sigma.{u3, u1} ι (fun (i : ι) => η i)) N _inst_3 a n)) (Dfinsupp.single.{u3, max u2 u1} ι (fun (i : ι) => Finsupp.{u1, u2} (η i) N _inst_3) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Finsupp.zero.{u1, u2} (η i) N _inst_3) (Sigma.fst.{u3, u1} ι (fun (i : ι) => η i) a) (Finsupp.single.{u1, u2} (η (Sigma.fst.{u3, u1} ι (fun (i : ι) => η i) a)) N _inst_3 (Sigma.snd.{u3, u1} ι (fun (i : ι) => η i) a) n))
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_single sigmaFinsuppEquivDfinsupp_singleₓ'. -/
@@ -480,11 +480,11 @@ theorem sigmaFinsuppEquivDfinsupp_single [DecidableEq ι] [Zero N] (a : Σi, η
 #align sigma_finsupp_equiv_dfinsupp_single sigmaFinsuppEquivDfinsupp_single
 
 -- Without this Lean fails to find the `add_zero_class` instance on `Π₀ i, (η i →₀ N)`.
-attribute [-instance] Finsupp.hasZero
+attribute [-instance] Finsupp.zero
 
 /- warning: sigma_finsupp_equiv_dfinsupp_add -> sigmaFinsuppEquivDfinsupp_add is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : AddZeroClass.{u3} N] (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (g : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)), Eq.{succ (max u1 u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (instHAdd.{max (max u1 u2) u3} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Finsupp.hasAdd.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) f g)) (HAdd.hAdd.{max u1 u2 u3, max u1 u2 u3, max u1 u2 u3} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (instHAdd.{max u1 u2 u3} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Dfinsupp.hasAdd.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) f) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) g))
+  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : AddZeroClass.{u3} N] (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (g : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)), Eq.{succ (max u1 u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (instHAdd.{max (max u1 u2) u3} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) f g)) (HAdd.hAdd.{max u1 u2 u3, max u1 u2 u3, max u1 u2 u3} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (instHAdd.{max u1 u2 u3} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Dfinsupp.hasAdd.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) f) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) g))
 but is expected to have type
   forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : AddZeroClass.{u3} N] (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (g : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (instHAdd.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) f g)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (instHAdd.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2)) f g)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) f) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) g) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) f) (instHAdd.{max (max u1 u2) u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) f) (Dfinsupp.instAddDfinsuppToZero.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toZero.{u3} N _inst_2)) f) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toZero.{u3} N _inst_2)) g))
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_add sigmaFinsuppEquivDfinsupp_addₓ'. -/
@@ -499,7 +499,7 @@ theorem sigmaFinsuppEquivDfinsupp_add [AddZeroClass N] (f g : (Σi, η i) →₀
 
 /- warning: sigma_finsupp_add_equiv_dfinsupp -> sigmaFinsuppAddEquivDfinsupp is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : AddZeroClass.{u3} N], AddEquiv.{max (max u1 u2) u3, max u1 u2 u3} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Finsupp.hasAdd.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.hasAdd.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))
+  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : AddZeroClass.{u3} N], AddEquiv.{max (max u1 u2) u3, max u1 u2 u3} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.hasAdd.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))
 but is expected to have type
   forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} [_inst_2 : AddZeroClass.{u3} N], AddEquiv.{max u3 u2 u1, max (max u3 u2) u1} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toZero.{u3} N _inst_2)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => AddZeroClass.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) i) (Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))) (Finsupp.add.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.instAddDfinsuppToZero.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toZero.{u3} N _inst_2)) (fun (i : ι) => Finsupp.addZeroClass.{u2, u3} (η i) N _inst_2))
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_add_equiv_dfinsupp sigmaFinsuppAddEquivDfinsuppₓ'. -/
@@ -516,9 +516,9 @@ attribute [-instance] Finsupp.addZeroClass
 
 /- warning: sigma_finsupp_equiv_dfinsupp_smul -> sigmaFinsuppEquivDfinsupp_smul is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} {R : Type.{u4}} [_inst_2 : Monoid.{u4} R] [_inst_3 : AddMonoid.{u3} N] [_inst_4 : DistribMulAction.{u4, u3} R N _inst_2 _inst_3] (r : R) (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))), Eq.{succ (max u1 u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3)))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (SMul.smul.{u4, max (max u1 u2) u3} R (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (SMulZeroClass.toHasSmul.{u4, max (max u1 u2) u3} R (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.hasZero.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.smulZeroClass.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3)) (DistribSMul.toSmulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4)))) r f)) (SMul.smul.{u4, max u1 u2 u3} R (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)))) (MulAction.toHasSmul.{u4, max u1 u2 u3} R (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)))) _inst_2 (DistribMulAction.toMulAction.{u4, max u1 u2 u3} R (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)))) _inst_2 (Dfinsupp.addMonoid.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)) (Dfinsupp.distribMulAction.{u1, max u2 u3, u4} ι R (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) _inst_2 (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.distribMulAction.{u2, u3, u4} (η i) N R _inst_2 _inst_3 _inst_4)))) r (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.hasZero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) f))
+  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} {R : Type.{u4}} [_inst_2 : Monoid.{u4} R] [_inst_3 : AddMonoid.{u3} N] [_inst_4 : DistribMulAction.{u4, u3} R N _inst_2 _inst_3] (r : R) (f : Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))), Eq.{succ (max u1 u2 u3)} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3)))) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (SMul.smul.{u4, max (max u1 u2) u3} R (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (SMulZeroClass.toHasSmul.{u4, max (max u1 u2) u3} R (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.zero.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.smulZeroClass.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3)) (DistribSMul.toSmulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4)))) r f)) (SMul.smul.{u4, max u1 u2 u3} R (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)))) (MulAction.toHasSmul.{u4, max u1 u2 u3} R (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)))) _inst_2 (DistribMulAction.toMulAction.{u4, max u1 u2 u3} R (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => AddZeroClass.toHasZero.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u3} (Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)))) _inst_2 (Dfinsupp.addMonoid.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)) (Dfinsupp.distribMulAction.{u1, max u2 u3, u4} ι R (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) _inst_2 (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.distribMulAction.{u2, u3, u4} (η i) N R _inst_2 _inst_3 _inst_4)))) r (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))) (succ (max u1 u2 u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ (max u1 u2 u3))} (Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) => (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) -> (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), succ (max u1 u2 u3)} (Finsupp.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddZeroClass.toHasZero.{u3} N (AddMonoid.toAddZeroClass.{u3} N _inst_3))) f))
 but is expected to have type
-  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} {R : Type.{u4}} [_inst_2 : Monoid.{u4} R] [_inst_3 : AddMonoid.{u3} N] [_inst_4 : DistribMulAction.{u4, u3} R N _inst_2 _inst_3] (r : R) (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) (HSMul.hSMul.{u4, max (max u1 u2) u3, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (instHSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (SMulZeroClass.toSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (AddMonoid.toZero.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.addMonoid.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3)) (Finsupp.instSMulZeroClassFinsuppZero.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddMonoid.toZero.{u3} N _inst_3) (DistribSMul.toSMulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4))))) r f)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddMonoid.toZero.{u3} N _inst_3)) (HSMul.hSMul.{u4, max (max u1 u2) u3, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (instHSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (SMulZeroClass.toSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (AddMonoid.toZero.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.addMonoid.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3)) (Finsupp.instSMulZeroClassFinsuppZero.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddMonoid.toZero.{u3} N _inst_3) (DistribSMul.toSMulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4))))) r f)) (SMul.smul.{u4, max (max u3 u2) u1} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) (MulAction.toSMul.{u4, max (max u1 u2) u3} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) _inst_2 (DistribMulAction.toMulAction.{u4, max (max u1 u2) u3} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) _inst_2 (Dfinsupp.instAddMonoidDfinsuppToZero.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)) (Dfinsupp.distribMulAction.{u1, max u2 u3, u4} ι R (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) _inst_2 (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.distribMulAction.{u2, u3, u4} (η i) N R _inst_2 _inst_3 _inst_4)))) r (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddMonoid.toZero.{u3} N _inst_3)) f))
+  forall {ι : Type.{u1}} {η : ι -> Type.{u2}} {N : Type.{u3}} {R : Type.{u4}} [_inst_2 : Monoid.{u4} R] [_inst_3 : AddMonoid.{u3} N] [_inst_4 : DistribMulAction.{u4, u3} R N _inst_2 _inst_3] (r : R) (f : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) (HSMul.hSMul.{u4, max (max u1 u2) u3, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (instHSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (SMulZeroClass.toSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (AddMonoid.toZero.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.addMonoid.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3)) (Finsupp.smulZeroClass.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddMonoid.toZero.{u3} N _inst_3) (DistribSMul.toSMulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4))))) r f)) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddMonoid.toZero.{u3} N _inst_3)) (HSMul.hSMul.{u4, max (max u1 u2) u3, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (instHSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (SMulZeroClass.toSMul.{u4, max (max u1 u2) u3} R (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (AddMonoid.toZero.{max (max u1 u2) u3} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Finsupp.addMonoid.{max u1 u2, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N _inst_3)) (Finsupp.smulZeroClass.{max u1 u2, u3, u4} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N R (AddMonoid.toZero.{u3} N _inst_3) (DistribSMul.toSMulZeroClass.{u4, u3} R N (AddMonoid.toAddZeroClass.{u3} N _inst_3) (DistribMulAction.toDistribSMul.{u4, u3} R N _inst_2 _inst_3 _inst_4))))) r f)) (SMul.smul.{u4, max (max u3 u2) u1} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) (MulAction.toSMul.{u4, max (max u1 u2) u3} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) _inst_2 (DistribMulAction.toMulAction.{u4, max (max u1 u2) u3} R (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => AddMonoid.toZero.{max u2 u3} ((fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) i) (Finsupp.addMonoid.{u2, u3} (η i) N _inst_3))) _inst_2 (Dfinsupp.instAddMonoidDfinsuppToZero.{u1, max u2 u3} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3)) (Dfinsupp.distribMulAction.{u1, max u2 u3, u4} ι R (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) _inst_2 (fun (i : ι) => Finsupp.addMonoid.{u2, u3} (η i) N _inst_3) (fun (i : ι) => Finsupp.distribMulAction.{u2, u3, u4} (η i) N R _inst_2 _inst_3 _inst_4)))) r (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Equiv.{max (succ u3) (succ (max u2 u1)), max (succ (max u3 u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (_x : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) => Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3))) _x) (Equiv.instFunLikeEquiv.{max (max (succ u3) (succ u2)) (succ u1), max (max (succ u3) (succ u2)) (succ u1)} (Finsupp.{max u2 u1, u3} (Sigma.{u1, u2} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u3} N _inst_3)) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Finsupp.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)) (fun (i : ι) => Finsupp.zero.{u2, u3} (η i) N (AddMonoid.toZero.{u3} N _inst_3)))) (sigmaFinsuppEquivDfinsupp.{u1, u2, u3} ι (fun (i : ι) => η i) N (AddMonoid.toZero.{u3} N _inst_3)) f))
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_equiv_dfinsupp_smul sigmaFinsuppEquivDfinsupp_smulₓ'. -/
 --tofix: r • (sigma_finsupp_equiv_dfinsupp f) doesn't work.
 @[simp]
@@ -537,7 +537,7 @@ attribute [-instance] Finsupp.addMonoid
 lean 3 declaration is
   forall {ι : Type.{u1}} (R : Type.{u2}) {η : ι -> Type.{u3}} {N : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u4} N] [_inst_3 : Module.{u2, u4} R N _inst_1 _inst_2], LinearEquiv.{u2, u2, max (max u1 u3) u4, max u1 u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHomInvPair.ids.{u2} R _inst_1) (RingHomInvPair.ids.{u2} R _inst_1) (Finsupp.{max u1 u3, u4} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) (Dfinsupp.{u1, max u3 u4} ι (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) (fun (i : ι) => AddZeroClass.toHasZero.{max u3 u4} (Finsupp.{u3, u4} (η i) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) (AddMonoid.toAddZeroClass.{max u3 u4} (Finsupp.{u3, u4} (η i) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) (AddCommMonoid.toAddMonoid.{max u3 u4} (Finsupp.{u3, u4} (η i) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) (Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2))))) (Finsupp.addCommMonoid.{max u1 u3, u4} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.addCommMonoid.{u1, max u3 u4} ι (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) (fun (i : ι) => Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2)) (Finsupp.module.{max u1 u3, u4, u2} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N R _inst_1 _inst_2 _inst_3) (Dfinsupp.module.{u1, max u3 u4, u2} ι R (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) _inst_1 (fun (i : ι) => Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2) (fun (i : ι) => Finsupp.module.{u3, u4, u2} (η i) N R _inst_1 _inst_2 _inst_3))
 but is expected to have type
-  forall {ι : Type.{u1}} (R : Type.{u2}) {η : ι -> Type.{u3}} {N : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u4} N] [_inst_3 : Module.{u2, u4} R N _inst_1 _inst_2], LinearEquiv.{u2, u2, max u4 u3 u1, max (max u4 u3) u1} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHomInvPair.ids.{u2} R _inst_1) (RingHomInvPair.ids.{u2} R _inst_1) (Finsupp.{max u3 u1, u4} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) (Dfinsupp.{u1, max u4 u3} ι (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) (fun (i : ι) => AddMonoid.toZero.{max u3 u4} ((fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) i) (AddCommMonoid.toAddMonoid.{max u3 u4} ((fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) i) (Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2)))) (Finsupp.addCommMonoid.{max u1 u3, u4} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, max u3 u4} ι (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) (fun (i : ι) => Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2)) (Finsupp.instModuleFinsuppToZeroToAddMonoidAddCommMonoid.{max u1 u3, u4, u2} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N R _inst_1 _inst_2 _inst_3) (Dfinsupp.module.{u1, max u3 u4, u2} ι R (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) _inst_1 (fun (i : ι) => Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2) (fun (i : ι) => Finsupp.instModuleFinsuppToZeroToAddMonoidAddCommMonoid.{u3, u4, u2} (η i) N R _inst_1 _inst_2 _inst_3))
+  forall {ι : Type.{u1}} (R : Type.{u2}) {η : ι -> Type.{u3}} {N : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u4} N] [_inst_3 : Module.{u2, u4} R N _inst_1 _inst_2], LinearEquiv.{u2, u2, max u4 u3 u1, max (max u4 u3) u1} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHomInvPair.ids.{u2} R _inst_1) (RingHomInvPair.ids.{u2} R _inst_1) (Finsupp.{max u3 u1, u4} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) (Dfinsupp.{u1, max u4 u3} ι (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) (fun (i : ι) => AddMonoid.toZero.{max u3 u4} ((fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) i) (AddCommMonoid.toAddMonoid.{max u3 u4} ((fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) i) (Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2)))) (Finsupp.addCommMonoid.{max u1 u3, u4} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, max u3 u4} ι (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) (fun (i : ι) => Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2)) (Finsupp.module.{max u1 u3, u4, u2} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N R _inst_1 _inst_2 _inst_3) (Dfinsupp.module.{u1, max u3 u4, u2} ι R (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) _inst_1 (fun (i : ι) => Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2) (fun (i : ι) => Finsupp.module.{u3, u4, u2} (η i) N R _inst_1 _inst_2 _inst_3))
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_lequiv_dfinsupp sigmaFinsuppLequivDfinsuppₓ'. -/
 /-- `finsupp.split` is a linear equivalence between `(Σ i, η i) →₀ N` and `Π₀ i, (η i →₀ N)`. -/
 @[simps]
Diff
@@ -365,7 +365,7 @@ variable (R)
 lean 3 declaration is
   forall {ι : Type.{u1}} (R : Type.{u2}) {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : forall (m : M), Decidable (Ne.{succ u3} M m (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))))))] [_inst_5 : Module.{u2, u3} R M _inst_2 _inst_3], LinearEquiv.{u2, u2, max u1 u3, max u1 u3} R R _inst_2 _inst_2 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHomInvPair.ids.{u2} R _inst_2) (RingHomInvPair.ids.{u2} R _inst_2) (Finsupp.{u1, u3} ι M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) (Finsupp.addCommMonoid.{u1, u3} ι M _inst_3) (Dfinsupp.addCommMonoid.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => _inst_3)) (Finsupp.module.{u1, u3, u2} ι M R _inst_2 _inst_3 _inst_5) (Dfinsupp.module.{u1, u3, u2} ι R (fun (i : ι) => M) _inst_2 (fun (i : ι) => _inst_3) (fun (i : ι) => _inst_5))
 but is expected to have type
-  forall {ι : Type.{u1}} (R : Type.{u2}) {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : forall (m : M), Decidable (Ne.{succ u3} M m (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))))] [_inst_5 : Module.{u2, u3} R M _inst_2 _inst_3], LinearEquiv.{u2, u2, max u3 u1, max u3 u1} R R _inst_2 _inst_2 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHomInvPair.ids.{u2} R _inst_2) (RingHomInvPair.ids.{u2} R _inst_2) (Finsupp.{u1, u3} ι M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (_i : ι) => M) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (_i : ι) => M) i) _inst_3))) (Finsupp.addCommMonoid.{u1, u3} ι M _inst_3) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => _inst_3)) (Finsupp.instModuleFinsuppToZeroToAddMonoidAddCommMonoid.{u1, u3, u2} ι M R _inst_2 _inst_3 _inst_5) (Dfinsupp.instModuleDfinsuppToZeroToAddMonoidInstAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u3, u2} ι R (fun (i : ι) => M) _inst_2 (fun (i : ι) => _inst_3) (fun (i : ι) => _inst_5))
+  forall {ι : Type.{u1}} (R : Type.{u2}) {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : forall (m : M), Decidable (Ne.{succ u3} M m (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))))] [_inst_5 : Module.{u2, u3} R M _inst_2 _inst_3], LinearEquiv.{u2, u2, max u3 u1, max u3 u1} R R _inst_2 _inst_2 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHomInvPair.ids.{u2} R _inst_2) (RingHomInvPair.ids.{u2} R _inst_2) (Finsupp.{u1, u3} ι M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (_i : ι) => M) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (_i : ι) => M) i) _inst_3))) (Finsupp.addCommMonoid.{u1, u3} ι M _inst_3) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u3} ι (fun (i : ι) => M) (fun (i : ι) => _inst_3)) (Finsupp.instModuleFinsuppToZeroToAddMonoidAddCommMonoid.{u1, u3, u2} ι M R _inst_2 _inst_3 _inst_5) (Dfinsupp.module.{u1, u3, u2} ι R (fun (i : ι) => M) _inst_2 (fun (i : ι) => _inst_3) (fun (i : ι) => _inst_5))
 Case conversion may be inaccurate. Consider using '#align finsupp_lequiv_dfinsupp finsuppLequivDfinsuppₓ'. -/
 /-- The additive version of `finsupp.to_finsupp`. Note that this is `noncomputable` because
 `finsupp.has_add` is noncomputable. -/
@@ -537,7 +537,7 @@ attribute [-instance] Finsupp.addMonoid
 lean 3 declaration is
   forall {ι : Type.{u1}} (R : Type.{u2}) {η : ι -> Type.{u3}} {N : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u4} N] [_inst_3 : Module.{u2, u4} R N _inst_1 _inst_2], LinearEquiv.{u2, u2, max (max u1 u3) u4, max u1 u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHomInvPair.ids.{u2} R _inst_1) (RingHomInvPair.ids.{u2} R _inst_1) (Finsupp.{max u1 u3, u4} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) (Dfinsupp.{u1, max u3 u4} ι (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) (fun (i : ι) => AddZeroClass.toHasZero.{max u3 u4} (Finsupp.{u3, u4} (η i) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) (AddMonoid.toAddZeroClass.{max u3 u4} (Finsupp.{u3, u4} (η i) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) (AddCommMonoid.toAddMonoid.{max u3 u4} (Finsupp.{u3, u4} (η i) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) (Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2))))) (Finsupp.addCommMonoid.{max u1 u3, u4} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.addCommMonoid.{u1, max u3 u4} ι (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) (fun (i : ι) => Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2)) (Finsupp.module.{max u1 u3, u4, u2} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N R _inst_1 _inst_2 _inst_3) (Dfinsupp.module.{u1, max u3 u4, u2} ι R (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddZeroClass.toHasZero.{u4} N (AddMonoid.toAddZeroClass.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2)))) _inst_1 (fun (i : ι) => Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2) (fun (i : ι) => Finsupp.module.{u3, u4, u2} (η i) N R _inst_1 _inst_2 _inst_3))
 but is expected to have type
-  forall {ι : Type.{u1}} (R : Type.{u2}) {η : ι -> Type.{u3}} {N : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u4} N] [_inst_3 : Module.{u2, u4} R N _inst_1 _inst_2], LinearEquiv.{u2, u2, max u4 u3 u1, max (max u4 u3) u1} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHomInvPair.ids.{u2} R _inst_1) (RingHomInvPair.ids.{u2} R _inst_1) (Finsupp.{max u3 u1, u4} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) (Dfinsupp.{u1, max u4 u3} ι (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) (fun (i : ι) => AddMonoid.toZero.{max u3 u4} ((fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) i) (AddCommMonoid.toAddMonoid.{max u3 u4} ((fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) i) (Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2)))) (Finsupp.addCommMonoid.{max u1 u3, u4} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, max u3 u4} ι (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) (fun (i : ι) => Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2)) (Finsupp.instModuleFinsuppToZeroToAddMonoidAddCommMonoid.{max u1 u3, u4, u2} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N R _inst_1 _inst_2 _inst_3) (Dfinsupp.instModuleDfinsuppToZeroToAddMonoidInstAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, max u3 u4, u2} ι R (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) _inst_1 (fun (i : ι) => Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2) (fun (i : ι) => Finsupp.instModuleFinsuppToZeroToAddMonoidAddCommMonoid.{u3, u4, u2} (η i) N R _inst_1 _inst_2 _inst_3))
+  forall {ι : Type.{u1}} (R : Type.{u2}) {η : ι -> Type.{u3}} {N : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u4} N] [_inst_3 : Module.{u2, u4} R N _inst_1 _inst_2], LinearEquiv.{u2, u2, max u4 u3 u1, max (max u4 u3) u1} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHomInvPair.ids.{u2} R _inst_1) (RingHomInvPair.ids.{u2} R _inst_1) (Finsupp.{max u3 u1, u4} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) (Dfinsupp.{u1, max u4 u3} ι (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) (fun (i : ι) => AddMonoid.toZero.{max u3 u4} ((fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) i) (AddCommMonoid.toAddMonoid.{max u3 u4} ((fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) i) (Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2)))) (Finsupp.addCommMonoid.{max u1 u3, u4} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N _inst_2) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, max u3 u4} ι (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) (fun (i : ι) => Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2)) (Finsupp.instModuleFinsuppToZeroToAddMonoidAddCommMonoid.{max u1 u3, u4, u2} (Sigma.{u1, u3} ι (fun (i : ι) => η i)) N R _inst_1 _inst_2 _inst_3) (Dfinsupp.module.{u1, max u3 u4, u2} ι R (fun (i : ι) => Finsupp.{u3, u4} (η i) N (AddMonoid.toZero.{u4} N (AddCommMonoid.toAddMonoid.{u4} N _inst_2))) _inst_1 (fun (i : ι) => Finsupp.addCommMonoid.{u3, u4} (η i) N _inst_2) (fun (i : ι) => Finsupp.instModuleFinsuppToZeroToAddMonoidAddCommMonoid.{u3, u4, u2} (η i) N R _inst_1 _inst_2 _inst_3))
 Case conversion may be inaccurate. Consider using '#align sigma_finsupp_lequiv_dfinsupp sigmaFinsuppLequivDfinsuppₓ'. -/
 /-- `finsupp.split` is a linear equivalence between `(Σ i, η i) →₀ N` and `Π₀ i, (η i →₀ N)`. -/
 @[simps]

Changes in mathlib4

mathlib3
mathlib4
chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11801)
Diff
@@ -289,7 +289,7 @@ def sigmaFinsuppEquivDFinsupp [Zero N] : ((Σi, η i) →₀ N) ≃ Π₀ i, η
     refine'
       onFinset (Finset.sigma f.support fun j => (f j).support) (fun ji => f ji.1 ji.2) fun g hg =>
         Finset.mem_sigma.mpr ⟨_, mem_support_iff.mpr hg⟩
-    simp only [Ne.def, DFinsupp.mem_support_toFun]
+    simp only [Ne, DFinsupp.mem_support_toFun]
     intro h
     dsimp at hg
     rw [h] at hg
chore: fix todo for sigmaFinsuppEquivDFinsupp_smul (#11355)
Diff
@@ -355,12 +355,10 @@ def sigmaFinsuppAddEquivDFinsupp [AddZeroClass N] : ((Σi, η i) →₀ N) ≃+
 
 attribute [-instance] Finsupp.instAddZeroClass
 
---tofix: r • (sigma_finsupp_equiv_dfinsupp f) doesn't work.
 @[simp]
 theorem sigmaFinsuppEquivDFinsupp_smul {R} [Monoid R] [AddMonoid N] [DistribMulAction R N] (r : R)
-    (f : (Σi, η i) →₀ N) :
-    sigmaFinsuppEquivDFinsupp (r • f) =
-      @SMul.smul R (Π₀ i, η i →₀ N) MulAction.toSMul r (sigmaFinsuppEquivDFinsupp f) := by
+    (f : (Σ i, η i) →₀ N) :
+    sigmaFinsuppEquivDFinsupp (r • f) = r • sigmaFinsuppEquivDFinsupp f := by
   ext
   rfl
 #align sigma_finsupp_equiv_dfinsupp_smul sigmaFinsuppEquivDFinsupp_smul
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -244,7 +244,7 @@ variable (R)
 
 /-- The additive version of `Finsupp.toFinsupp`. Note that this is `noncomputable` because
 `Finsupp.add` is noncomputable. -/
--- porting note: `simps` generated lemmas that did not pass `simpNF` lints, manually added below
+-- Porting note: `simps` generated lemmas that did not pass `simpNF` lints, manually added below
 --@[simps? (config := .asFn)]
 def finsuppLequivDFinsupp [DecidableEq ι] [Semiring R] [AddCommMonoid M]
     [∀ m : M, Decidable (m ≠ 0)] [Module R M] : (ι →₀ M) ≃ₗ[R] Π₀ _ : ι, M :=
@@ -255,7 +255,7 @@ def finsuppLequivDFinsupp [DecidableEq ι] [Semiring R] [AddCommMonoid M]
     map_add' := Finsupp.toDFinsupp_add }
 #align finsupp_lequiv_dfinsupp finsuppLequivDFinsupp
 
--- porting note: `simps` generated as `↑(finsuppLequivDFinsupp R).toLinearMap = Finsupp.toDFinsupp`
+-- Porting note: `simps` generated as `↑(finsuppLequivDFinsupp R).toLinearMap = Finsupp.toDFinsupp`
 @[simp]
 theorem finsuppLequivDFinsupp_apply_apply [DecidableEq ι] [Semiring R] [AddCommMonoid M]
     [∀ m : M, Decidable (m ≠ 0)] [Module R M] :
@@ -268,7 +268,7 @@ theorem finsuppLequivDFinsupp_symm_apply [DecidableEq ι] [Semiring R] [AddCommM
     ↑(LinearEquiv.symm (finsuppLequivDFinsupp (ι := ι) (M := M) R)) = DFinsupp.toFinsupp :=
   rfl
 
--- porting note: moved noncomputable declaration into section begin
+-- Porting note: moved noncomputable declaration into section begin
 noncomputable section Sigma
 
 /-! ### Stronger versions of `Finsupp.split` -/
chore(Data/Finsupp/Defs): rename instances (#10976)

This adds the inst prefix that is expected in Lean 4.

Performed using the F2 shortcut (renaming foo to Finsupp.instFoo, then deleting the redundant Finsupp)

All the changes to downstream files are fallout, no names have been changed there.

Diff
@@ -334,7 +334,7 @@ theorem sigmaFinsuppEquivDFinsupp_single [DecidableEq ι] [Zero N] (a : Σi, η
 #align sigma_finsupp_equiv_dfinsupp_single sigmaFinsuppEquivDFinsupp_single
 
 -- Without this Lean fails to find the `AddZeroClass` instance on `Π₀ i, (η i →₀ N)`.
-attribute [-instance] Finsupp.zero
+attribute [-instance] Finsupp.instZero
 
 @[simp]
 theorem sigmaFinsuppEquivDFinsupp_add [AddZeroClass N] (f g : (Σi, η i) →₀ N) :
@@ -353,7 +353,7 @@ def sigmaFinsuppAddEquivDFinsupp [AddZeroClass N] : ((Σi, η i) →₀ N) ≃+
     map_add' := sigmaFinsuppEquivDFinsupp_add }
 #align sigma_finsupp_add_equiv_dfinsupp sigmaFinsuppAddEquivDFinsupp
 
-attribute [-instance] Finsupp.addZeroClass
+attribute [-instance] Finsupp.instAddZeroClass
 
 --tofix: r • (sigma_finsupp_equiv_dfinsupp f) doesn't work.
 @[simp]
@@ -365,7 +365,7 @@ theorem sigmaFinsuppEquivDFinsupp_smul {R} [Monoid R] [AddMonoid N] [DistribMulA
   rfl
 #align sigma_finsupp_equiv_dfinsupp_smul sigmaFinsuppEquivDFinsupp_smul
 
-attribute [-instance] Finsupp.addMonoid
+attribute [-instance] Finsupp.instAddMonoid
 
 /-- `Finsupp.split` is a linear equivalence between `(Σ i, η i) →₀ N` and `Π₀ i, (η i →₀ N)`. -/
 @[simps]
chore: change from plural to singular in porting notes (#10761)
Diff
@@ -371,7 +371,7 @@ attribute [-instance] Finsupp.addMonoid
 @[simps]
 def sigmaFinsuppLequivDFinsupp [AddCommMonoid N] [Module R N] :
     ((Σi, η i) →₀ N) ≃ₗ[R] Π₀ i, η i →₀ N :=
-    -- porting notes: was
+    -- Porting note: was
     -- sigmaFinsuppAddEquivDFinsupp with map_smul' := sigmaFinsuppEquivDFinsupp_smul
     -- but times out
   { sigmaFinsuppEquivDFinsupp with
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
@@ -128,12 +128,12 @@ theorem DFinsupp.toFinsupp_single (i : ι) (m : M) :
 
 @[simp]
 theorem Finsupp.toDFinsupp_toFinsupp (f : ι →₀ M) : f.toDFinsupp.toFinsupp = f :=
-  FunLike.coe_injective rfl
+  DFunLike.coe_injective rfl
 #align finsupp.to_dfinsupp_to_finsupp Finsupp.toDFinsupp_toFinsupp
 
 @[simp]
 theorem DFinsupp.toFinsupp_toDFinsupp (f : Π₀ _ : ι, M) : f.toFinsupp.toDFinsupp = f :=
-  FunLike.coe_injective rfl
+  DFunLike.coe_injective rfl
 #align dfinsupp.to_finsupp_to_dfinsupp DFinsupp.toFinsupp_toDFinsupp
 
 end
@@ -149,30 +149,30 @@ namespace Finsupp
 
 @[simp]
 theorem toDFinsupp_zero [Zero M] : (0 : ι →₀ M).toDFinsupp = 0 :=
-  FunLike.coe_injective rfl
+  DFunLike.coe_injective rfl
 #align finsupp.to_dfinsupp_zero Finsupp.toDFinsupp_zero
 
 @[simp]
 theorem toDFinsupp_add [AddZeroClass M] (f g : ι →₀ M) :
     (f + g).toDFinsupp = f.toDFinsupp + g.toDFinsupp :=
-  FunLike.coe_injective rfl
+  DFunLike.coe_injective rfl
 #align finsupp.to_dfinsupp_add Finsupp.toDFinsupp_add
 
 @[simp]
 theorem toDFinsupp_neg [AddGroup M] (f : ι →₀ M) : (-f).toDFinsupp = -f.toDFinsupp :=
-  FunLike.coe_injective rfl
+  DFunLike.coe_injective rfl
 #align finsupp.to_dfinsupp_neg Finsupp.toDFinsupp_neg
 
 @[simp]
 theorem toDFinsupp_sub [AddGroup M] (f g : ι →₀ M) :
     (f - g).toDFinsupp = f.toDFinsupp - g.toDFinsupp :=
-  FunLike.coe_injective rfl
+  DFunLike.coe_injective rfl
 #align finsupp.to_dfinsupp_sub Finsupp.toDFinsupp_sub
 
 @[simp]
 theorem toDFinsupp_smul [Monoid R] [AddMonoid M] [DistribMulAction R M] (r : R) (f : ι →₀ M) :
     (r • f).toDFinsupp = r • f.toDFinsupp :=
-  FunLike.coe_injective rfl
+  DFunLike.coe_injective rfl
 #align finsupp.to_dfinsupp_smul Finsupp.toDFinsupp_smul
 
 end Finsupp
@@ -183,31 +183,31 @@ variable [DecidableEq ι]
 
 @[simp]
 theorem toFinsupp_zero [Zero M] [∀ m : M, Decidable (m ≠ 0)] : toFinsupp 0 = (0 : ι →₀ M) :=
-  FunLike.coe_injective rfl
+  DFunLike.coe_injective rfl
 #align dfinsupp.to_finsupp_zero DFinsupp.toFinsupp_zero
 
 @[simp]
 theorem toFinsupp_add [AddZeroClass M] [∀ m : M, Decidable (m ≠ 0)] (f g : Π₀ _ : ι, M) :
     (toFinsupp (f + g) : ι →₀ M) = toFinsupp f + toFinsupp g :=
-  FunLike.coe_injective <| DFinsupp.coe_add _ _
+  DFunLike.coe_injective <| DFinsupp.coe_add _ _
 #align dfinsupp.to_finsupp_add DFinsupp.toFinsupp_add
 
 @[simp]
 theorem toFinsupp_neg [AddGroup M] [∀ m : M, Decidable (m ≠ 0)] (f : Π₀ _ : ι, M) :
     (toFinsupp (-f) : ι →₀ M) = -toFinsupp f :=
-  FunLike.coe_injective <| DFinsupp.coe_neg _
+  DFunLike.coe_injective <| DFinsupp.coe_neg _
 #align dfinsupp.to_finsupp_neg DFinsupp.toFinsupp_neg
 
 @[simp]
 theorem toFinsupp_sub [AddGroup M] [∀ m : M, Decidable (m ≠ 0)] (f g : Π₀ _ : ι, M) :
     (toFinsupp (f - g) : ι →₀ M) = toFinsupp f - toFinsupp g :=
-  FunLike.coe_injective <| DFinsupp.coe_sub _ _
+  DFunLike.coe_injective <| DFinsupp.coe_sub _ _
 #align dfinsupp.to_finsupp_sub DFinsupp.toFinsupp_sub
 
 @[simp]
 theorem toFinsupp_smul [Monoid R] [AddMonoid M] [DistribMulAction R M] [∀ m : M, Decidable (m ≠ 0)]
     (r : R) (f : Π₀ _ : ι, M) : (toFinsupp (r • f) : ι →₀ M) = r • toFinsupp f :=
-  FunLike.coe_injective <| DFinsupp.coe_smul _ _
+  DFunLike.coe_injective <| DFinsupp.coe_smul _ _
 #align dfinsupp.to_finsupp_smul DFinsupp.toFinsupp_smul
 
 end DFinsupp
style: shorten simps configurations (#8296)

Use .asFn and .lemmasOnly as simps configuration options.

For reference, these are defined here:

https://github.com/leanprover-community/mathlib4/blob/4055c8b471380825f07416b12cb0cf266da44d84/Mathlib/Tactic/Simps/Basic.lean#L843-L851

Diff
@@ -220,7 +220,7 @@ end Lemmas
 section Equivs
 
 /-- `Finsupp.toDFinsupp` and `DFinsupp.toFinsupp` together form an equiv. -/
-@[simps (config := { fullyApplied := false })]
+@[simps (config := .asFn)]
 def finsuppEquivDFinsupp [DecidableEq ι] [Zero M] [∀ m : M, Decidable (m ≠ 0)] :
     (ι →₀ M) ≃ Π₀ _ : ι, M where
   toFun := Finsupp.toDFinsupp
@@ -231,7 +231,7 @@ def finsuppEquivDFinsupp [DecidableEq ι] [Zero M] [∀ m : M, Decidable (m ≠
 
 /-- The additive version of `finsupp.toFinsupp`. Note that this is `noncomputable` because
 `Finsupp.add` is noncomputable. -/
-@[simps (config := { fullyApplied := false })]
+@[simps (config := .asFn)]
 def finsuppAddEquivDFinsupp [DecidableEq ι] [AddZeroClass M] [∀ m : M, Decidable (m ≠ 0)] :
     (ι →₀ M) ≃+ Π₀ _ : ι, M :=
   { finsuppEquivDFinsupp with
@@ -245,7 +245,7 @@ variable (R)
 /-- The additive version of `Finsupp.toFinsupp`. Note that this is `noncomputable` because
 `Finsupp.add` is noncomputable. -/
 -- porting note: `simps` generated lemmas that did not pass `simpNF` lints, manually added below
---@[simps? (config := { fullyApplied := false })]
+--@[simps? (config := .asFn)]
 def finsuppLequivDFinsupp [DecidableEq ι] [Semiring R] [AddCommMonoid M]
     [∀ m : M, Decidable (m ≠ 0)] [Module R M] : (ι →₀ M) ≃ₗ[R] Π₀ _ : ι, M :=
   { finsuppEquivDFinsupp with
chore: remove trailing space in backticks (#7617)

This will improve spaces in the mathlib4 docs.

Diff
@@ -255,7 +255,7 @@ def finsuppLequivDFinsupp [DecidableEq ι] [Semiring R] [AddCommMonoid M]
     map_add' := Finsupp.toDFinsupp_add }
 #align finsupp_lequiv_dfinsupp finsuppLequivDFinsupp
 
--- porting note: `simps` generated as ` ↑(finsuppLequivDFinsupp R).toLinearMap = Finsupp.toDFinsupp`
+-- porting note: `simps` generated as `↑(finsuppLequivDFinsupp R).toLinearMap = Finsupp.toDFinsupp`
 @[simp]
 theorem finsuppLequivDFinsupp_apply_apply [DecidableEq ι] [Semiring R] [AddCommMonoid M]
     [∀ m : M, Decidable (m ≠ 0)] [Module R M] :
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -60,7 +60,7 @@ these arguments are also present on the `noncomputable` equivs.
 -/
 
 
-variable {ι : Type _} {R : Type _} {M : Type _}
+variable {ι : Type*} {R : Type*} {M : Type*}
 
 /-! ### Basic definitions and lemmas -/
 
@@ -274,7 +274,7 @@ noncomputable section Sigma
 /-! ### Stronger versions of `Finsupp.split` -/
 --noncomputable section
 
-variable {η : ι → Type _} {N : Type _} [Semiring R]
+variable {η : ι → Type*} {N : Type*} [Semiring R]
 
 open Finsupp
 
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,16 +2,13 @@
 Copyright (c) 2021 Eric Wieser. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
-
-! This file was ported from Lean 3 source module data.finsupp.to_dfinsupp
-! leanprover-community/mathlib commit 59694bd07f0a39c5beccba34bd9f413a160782bf
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.Module.Equiv
 import Mathlib.Data.DFinsupp.Basic
 import Mathlib.Data.Finsupp.Basic
 
+#align_import data.finsupp.to_dfinsupp from "leanprover-community/mathlib"@"59694bd07f0a39c5beccba34bd9f413a160782bf"
+
 /-!
 # Conversion between `Finsupp` and homogenous `DFinsupp`
 
chore: rename Dfinsupp to DFinsupp (#5822)

See #4354

chore: remove superfluous parentheses in calls to ext (#5258)

Co-authored-by: Xavier Roblot <46200072+xroblot@users.noreply.github.com> Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr> Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com> Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Pol'tta / Miyahara Kō <pol_tta@outlook.jp> Co-authored-by: Jason Yuen <jason_yuen2007@hotmail.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com> Co-authored-by: Jireh Loreaux <loreaujy@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: Heather Macbeth <25316162+hrmacbeth@users.noreply.github.com> Co-authored-by: Jujian Zhang <jujian.zhang1998@outlook.com> Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>

Diff
@@ -327,7 +327,7 @@ theorem sigmaFinsuppEquivDfinsupp_single [DecidableEq ι] [Zero N] (a : Σi, η
     sigmaFinsuppEquivDfinsupp (Finsupp.single a n) =
       @Dfinsupp.single _ (fun i => η i →₀ N) _ _ a.1 (Finsupp.single a.2 n) := by
   obtain ⟨i, a⟩ := a
-  ext (j b)
+  ext j b
   by_cases h : i = j
   · subst h
     classical simp [split_apply, Finsupp.single_apply]
chore: fix many typos (#4967)

These are all doc fixes

Diff
@@ -245,7 +245,7 @@ def finsuppAddEquivDfinsupp [DecidableEq ι] [AddZeroClass M] [∀ m : M, Decida
 
 variable (R)
 
-/-- The additive version of `Finsupp.toTinsupp`. Note that this is `noncomputable` because
+/-- The additive version of `Finsupp.toFinsupp`. Note that this is `noncomputable` because
 `Finsupp.add` is noncomputable. -/
 -- porting note: `simps` generated lemmas that did not pass `simpNF` lints, manually added below
 --@[simps? (config := { fullyApplied := false })]
style: allow _ for an argument in notation3 & replace _foo with _ in notation3 (#4652)
Diff
@@ -71,7 +71,7 @@ variable {ι : Type _} {R : Type _} {M : Type _}
 section Defs
 
 /-- Interpret a `Finsupp` as a homogenous `Dfinsupp`. -/
-def Finsupp.toDfinsupp [Zero M] (f : ι →₀ M) : Π₀ _i : ι, M where
+def Finsupp.toDfinsupp [Zero M] (f : ι →₀ M) : Π₀ _ : ι, M where
   toFun := f
   support' :=
     Trunc.mk
@@ -107,24 +107,24 @@ theorem toDfinsupp_support (f : ι →₀ M) : f.toDfinsupp.support = f.support
 Note that the elaborator has a lot of trouble with this definition - it is often necessary to
 write `(Dfinsupp.toFinsupp f : ι →₀ M)` instead of `f.toFinsupp`, as for some unknown reason
 using dot notation or omitting the type ascription prevents the type being resolved correctly. -/
-def Dfinsupp.toFinsupp (f : Π₀ _i : ι, M) : ι →₀ M :=
+def Dfinsupp.toFinsupp (f : Π₀ _ : ι, M) : ι →₀ M :=
   ⟨f.support, f, fun i => by simp only [Dfinsupp.mem_support_iff]⟩
 #align dfinsupp.to_finsupp Dfinsupp.toFinsupp
 
 @[simp]
-theorem Dfinsupp.toFinsupp_coe (f : Π₀ _i : ι, M) : ⇑f.toFinsupp = f :=
+theorem Dfinsupp.toFinsupp_coe (f : Π₀ _ : ι, M) : ⇑f.toFinsupp = f :=
   rfl
 #align dfinsupp.to_finsupp_coe Dfinsupp.toFinsupp_coe
 
 @[simp]
-theorem Dfinsupp.toFinsupp_support (f : Π₀ _i : ι, M) : f.toFinsupp.support = f.support := by
+theorem Dfinsupp.toFinsupp_support (f : Π₀ _ : ι, M) : f.toFinsupp.support = f.support := by
   ext
   simp
 #align dfinsupp.to_finsupp_support Dfinsupp.toFinsupp_support
 
 @[simp]
 theorem Dfinsupp.toFinsupp_single (i : ι) (m : M) :
-    (Dfinsupp.single i m : Π₀ _i : ι, M).toFinsupp = Finsupp.single i m := by
+    (Dfinsupp.single i m : Π₀ _ : ι, M).toFinsupp = Finsupp.single i m := by
   ext
   simp [Finsupp.single_apply, Dfinsupp.single_apply]
 #align dfinsupp.to_finsupp_single Dfinsupp.toFinsupp_single
@@ -135,7 +135,7 @@ theorem Finsupp.toDfinsupp_toFinsupp (f : ι →₀ M) : f.toDfinsupp.toFinsupp
 #align finsupp.to_dfinsupp_to_finsupp Finsupp.toDfinsupp_toFinsupp
 
 @[simp]
-theorem Dfinsupp.toFinsupp_toDfinsupp (f : Π₀ _i : ι, M) : f.toFinsupp.toDfinsupp = f :=
+theorem Dfinsupp.toFinsupp_toDfinsupp (f : Π₀ _ : ι, M) : f.toFinsupp.toDfinsupp = f :=
   FunLike.coe_injective rfl
 #align dfinsupp.to_finsupp_to_dfinsupp Dfinsupp.toFinsupp_toDfinsupp
 
@@ -190,26 +190,26 @@ theorem toFinsupp_zero [Zero M] [∀ m : M, Decidable (m ≠ 0)] : toFinsupp 0 =
 #align dfinsupp.to_finsupp_zero Dfinsupp.toFinsupp_zero
 
 @[simp]
-theorem toFinsupp_add [AddZeroClass M] [∀ m : M, Decidable (m ≠ 0)] (f g : Π₀ _i : ι, M) :
+theorem toFinsupp_add [AddZeroClass M] [∀ m : M, Decidable (m ≠ 0)] (f g : Π₀ _ : ι, M) :
     (toFinsupp (f + g) : ι →₀ M) = toFinsupp f + toFinsupp g :=
   FunLike.coe_injective <| Dfinsupp.coe_add _ _
 #align dfinsupp.to_finsupp_add Dfinsupp.toFinsupp_add
 
 @[simp]
-theorem toFinsupp_neg [AddGroup M] [∀ m : M, Decidable (m ≠ 0)] (f : Π₀ _i : ι, M) :
+theorem toFinsupp_neg [AddGroup M] [∀ m : M, Decidable (m ≠ 0)] (f : Π₀ _ : ι, M) :
     (toFinsupp (-f) : ι →₀ M) = -toFinsupp f :=
   FunLike.coe_injective <| Dfinsupp.coe_neg _
 #align dfinsupp.to_finsupp_neg Dfinsupp.toFinsupp_neg
 
 @[simp]
-theorem toFinsupp_sub [AddGroup M] [∀ m : M, Decidable (m ≠ 0)] (f g : Π₀ _i : ι, M) :
+theorem toFinsupp_sub [AddGroup M] [∀ m : M, Decidable (m ≠ 0)] (f g : Π₀ _ : ι, M) :
     (toFinsupp (f - g) : ι →₀ M) = toFinsupp f - toFinsupp g :=
   FunLike.coe_injective <| Dfinsupp.coe_sub _ _
 #align dfinsupp.to_finsupp_sub Dfinsupp.toFinsupp_sub
 
 @[simp]
 theorem toFinsupp_smul [Monoid R] [AddMonoid M] [DistribMulAction R M] [∀ m : M, Decidable (m ≠ 0)]
-    (r : R) (f : Π₀ _i : ι, M) : (toFinsupp (r • f) : ι →₀ M) = r • toFinsupp f :=
+    (r : R) (f : Π₀ _ : ι, M) : (toFinsupp (r • f) : ι →₀ M) = r • toFinsupp f :=
   FunLike.coe_injective <| Dfinsupp.coe_smul _ _
 #align dfinsupp.to_finsupp_smul Dfinsupp.toFinsupp_smul
 
@@ -225,7 +225,7 @@ section Equivs
 /-- `Finsupp.toDfinsupp` and `Dfinsupp.toFinsupp` together form an equiv. -/
 @[simps (config := { fullyApplied := false })]
 def finsuppEquivDfinsupp [DecidableEq ι] [Zero M] [∀ m : M, Decidable (m ≠ 0)] :
-    (ι →₀ M) ≃ Π₀ _i : ι, M where
+    (ι →₀ M) ≃ Π₀ _ : ι, M where
   toFun := Finsupp.toDfinsupp
   invFun := Dfinsupp.toFinsupp
   left_inv := Finsupp.toDfinsupp_toFinsupp
@@ -236,7 +236,7 @@ def finsuppEquivDfinsupp [DecidableEq ι] [Zero M] [∀ m : M, Decidable (m ≠
 `Finsupp.add` is noncomputable. -/
 @[simps (config := { fullyApplied := false })]
 def finsuppAddEquivDfinsupp [DecidableEq ι] [AddZeroClass M] [∀ m : M, Decidable (m ≠ 0)] :
-    (ι →₀ M) ≃+ Π₀ _i : ι, M :=
+    (ι →₀ M) ≃+ Π₀ _ : ι, M :=
   { finsuppEquivDfinsupp with
     toFun := Finsupp.toDfinsupp
     invFun := Dfinsupp.toFinsupp
@@ -250,7 +250,7 @@ variable (R)
 -- porting note: `simps` generated lemmas that did not pass `simpNF` lints, manually added below
 --@[simps? (config := { fullyApplied := false })]
 def finsuppLequivDfinsupp [DecidableEq ι] [Semiring R] [AddCommMonoid M]
-    [∀ m : M, Decidable (m ≠ 0)] [Module R M] : (ι →₀ M) ≃ₗ[R] Π₀ _i : ι, M :=
+    [∀ m : M, Decidable (m ≠ 0)] [Module R M] : (ι →₀ M) ≃ₗ[R] Π₀ _ : ι, M :=
   { finsuppEquivDfinsupp with
     toFun := Finsupp.toDfinsupp
     invFun := Dfinsupp.toFinsupp
fix: replace symmApply by symm_apply (#2560)
Diff
@@ -266,7 +266,7 @@ theorem finsuppLequivDfinsupp_apply_apply [DecidableEq ι] [Semiring R] [AddComm
        simp only [@LinearEquiv.coe_coe]; rfl
 
 @[simp]
-theorem finsuppLequivDfinsupp_symmApply [DecidableEq ι] [Semiring R] [AddCommMonoid M]
+theorem finsuppLequivDfinsupp_symm_apply [DecidableEq ι] [Semiring R] [AddCommMonoid M]
     [∀ m : M, Decidable (m ≠ 0)] [Module R M] :
     ↑(LinearEquiv.symm (finsuppLequivDfinsupp (ι := ι) (M := M) R)) = Dfinsupp.toFinsupp :=
   rfl
fix: fix simp lemmas about coercion to function (#2270)
Diff
@@ -258,14 +258,6 @@ def finsuppLequivDfinsupp [DecidableEq ι] [Semiring R] [AddCommMonoid M]
     map_add' := Finsupp.toDfinsupp_add }
 #align finsupp_lequiv_dfinsupp finsuppLequivDfinsupp
 
--- porting note: the following three were previously generated by `simps`
-@[simp]
-theorem finsuppLequivDfinsupp_apply_toAddHom_apply [DecidableEq ι] [Semiring R] [AddCommMonoid M]
-    [∀ m : M, Decidable (m ≠ 0)] [Module R M] :
-    (↑(finsuppLequivDfinsupp (M := M) R).toLinearMap.toAddHom : (ι →₀ M) → _) =
-      Finsupp.toDfinsupp :=
-  rfl
-
 -- porting note: `simps` generated as ` ↑(finsuppLequivDfinsupp R).toLinearMap = Finsupp.toDfinsupp`
 @[simp]
 theorem finsuppLequivDfinsupp_apply_apply [DecidableEq ι] [Semiring R] [AddCommMonoid M]
chore: tidy various files (#2056)
Diff
@@ -71,8 +71,7 @@ variable {ι : Type _} {R : Type _} {M : Type _}
 section Defs
 
 /-- Interpret a `Finsupp` as a homogenous `Dfinsupp`. -/
-def Finsupp.toDfinsupp [Zero M] (f : ι →₀ M) : Π₀ _i : ι, M
-    where
+def Finsupp.toDfinsupp [Zero M] (f : ι →₀ M) : Π₀ _i : ι, M where
   toFun := f
   support' :=
     Trunc.mk
@@ -106,7 +105,7 @@ theorem toDfinsupp_support (f : ι →₀ M) : f.toDfinsupp.support = f.support
 /-- Interpret a homogenous `Dfinsupp` as a `Finsupp`.
 
 Note that the elaborator has a lot of trouble with this definition - it is often necessary to
-write `(Dfinsupp.toFinsupp f : ι →₀ M)` instead of `f.to_finsupp`, as for some unknown reason
+write `(Dfinsupp.toFinsupp f : ι →₀ M)` instead of `f.toFinsupp`, as for some unknown reason
 using dot notation or omitting the type ascription prevents the type being resolved correctly. -/
 def Dfinsupp.toFinsupp (f : Π₀ _i : ι, M) : ι →₀ M :=
   ⟨f.support, f, fun i => by simp only [Dfinsupp.mem_support_iff]⟩
@@ -234,7 +233,7 @@ def finsuppEquivDfinsupp [DecidableEq ι] [Zero M] [∀ m : M, Decidable (m ≠
 #align finsupp_equiv_dfinsupp finsuppEquivDfinsupp
 
 /-- The additive version of `finsupp.toFinsupp`. Note that this is `noncomputable` because
-`Finsupp.hasAdd` is noncomputable. -/
+`Finsupp.add` is noncomputable. -/
 @[simps (config := { fullyApplied := false })]
 def finsuppAddEquivDfinsupp [DecidableEq ι] [AddZeroClass M] [∀ m : M, Decidable (m ≠ 0)] :
     (ι →₀ M) ≃+ Π₀ _i : ι, M :=
@@ -247,7 +246,7 @@ def finsuppAddEquivDfinsupp [DecidableEq ι] [AddZeroClass M] [∀ m : M, Decida
 variable (R)
 
 /-- The additive version of `Finsupp.toTinsupp`. Note that this is `noncomputable` because
-`Finsupp.hasAdd` is noncomputable. -/
+`Finsupp.add` is noncomputable. -/
 -- porting note: `simps` generated lemmas that did not pass `simpNF` lints, manually added below
 --@[simps? (config := { fullyApplied := false })]
 def finsuppLequivDfinsupp [DecidableEq ι] [Semiring R] [AddCommMonoid M]
@@ -346,7 +345,7 @@ theorem sigmaFinsuppEquivDfinsupp_single [DecidableEq ι] [Zero N] (a : Σi, η
 #align sigma_finsupp_equiv_dfinsupp_single sigmaFinsuppEquivDfinsupp_single
 
 -- Without this Lean fails to find the `AddZeroClass` instance on `Π₀ i, (η i →₀ N)`.
-attribute [-instance] Finsupp.hasZero
+attribute [-instance] Finsupp.zero
 
 @[simp]
 theorem sigmaFinsuppEquivDfinsupp_add [AddZeroClass N] (f g : (Σi, η i) →₀ N) :
@@ -386,7 +385,7 @@ def sigmaFinsuppLequivDfinsupp [AddCommMonoid N] [Module R N] :
     -- porting notes: was
     -- sigmaFinsuppAddEquivDfinsupp with map_smul' := sigmaFinsuppEquivDfinsupp_smul
     -- but times out
-  {  sigmaFinsuppEquivDfinsupp with
+  { sigmaFinsuppEquivDfinsupp with
     toFun := sigmaFinsuppEquivDfinsupp
     invFun := sigmaFinsuppEquivDfinsupp.symm
     map_add' := sigmaFinsuppEquivDfinsupp_add
feat: Port/Data.Finsupp.ToDfinsupp (#1995)

port of data.finsup.to_dfinsupp

includes naming of instances in Data.Finsupp.Defs

Had to unroll the instance defs for sigmaFinsuppLequivDfinsupp (duplicating defs) to address a timeout issue.

Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com> Co-authored-by: Johan Commelin <johan@commelin.net>

Dependencies 8 + 298

299 files ported (97.4%)
126703 lines ported (97.6%)
Show graph

The unported dependencies are