data.dfinsupp.basicMathlib.Data.DFinsupp.Basic

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

fix(*): add missing classical tactics and decidable arguments (#18277)

As discussed in this Zulip thread, the classical tactic is buggy in Mathlib3, and "leaks" into subsequent declarations.

This doesn't port well, as the bug is fixed in lean 4.

This PR installs a temporary hack to contain these leaks, fixes all of the correponding breakages, then reverts the hack.

The result is that the new classical tactics in the diff are not needed in Lean 3, but will be needed in Lean 4.

In a future PR, I will try committing the hack itself; but in the meantime, these files are very close to (if not beyond) the port, so the sooner they are fixed the better.

Diff
@@ -1221,7 +1221,8 @@ begin
       sigma_curry_apply, smul_apply]
 end
 
-@[simp] lemma sigma_curry_single [Π i j, has_zero (δ i j)] (ij : Σ i, α i) (x : δ ij.1 ij.2) :
+@[simp] lemma sigma_curry_single [decidable_eq ι] [Π i, decidable_eq (α i)]
+  [Π i j, has_zero (δ i j)] (ij : Σ i, α i) (x : δ ij.1 ij.2) :
   @sigma_curry _ _ _ _ (single ij x) = single ij.1 (single ij.2 x : Π₀ j, δ ij.1 j) :=
 begin
   obtain ⟨i, j⟩ := ij,
@@ -1240,7 +1241,8 @@ end
 
 /--The natural map between `Π₀ i (j : α i), δ i j` and `Π₀ (i : Σ i, α i), δ i.1 i.2`, inverse of
 `curry`.-/
-noncomputable def sigma_uncurry [Π i j, has_zero (δ i j)] (f : Π₀ i j, δ i j) :
+def sigma_uncurry [Π i j, has_zero (δ i j)]
+  [Π i, decidable_eq (α i)] [Π i j (x : δ i j), decidable (x ≠ 0)] (f : Π₀ i j, δ i j) :
   Π₀ (i : Σ i, _), δ i.1 i.2 :=
 { to_fun := λ i, f i.1 i.2,
   support' := f.support'.map $ λ s,
@@ -1255,24 +1257,32 @@ noncomputable def sigma_uncurry [Π i j, has_zero (δ i j)] (f : Π₀ i j, δ i
         rw [hi, zero_apply] }
     end⟩ }
 
-@[simp] lemma sigma_uncurry_apply [Π i j, has_zero (δ i j)] (f : Π₀ i j, δ i j) (i : ι) (j : α i) :
+@[simp] lemma sigma_uncurry_apply [Π i j, has_zero (δ i j)]
+  [Π i, decidable_eq (α i)] [Π i j (x : δ i j), decidable (x ≠ 0)]
+  (f : Π₀ i j, δ i j) (i : ι) (j : α i) :
   sigma_uncurry f ⟨i, j⟩ = f i j :=
 rfl
 
-@[simp] lemma sigma_uncurry_zero [Π i j, has_zero (δ i j)] :
+@[simp] lemma sigma_uncurry_zero [Π i j, has_zero (δ i j)]
+  [Π i, decidable_eq (α i)] [Π i j (x : δ i j), decidable (x ≠ 0)]:
   sigma_uncurry (0 : Π₀ i j, δ i j) = 0 :=
 rfl
 
-@[simp] lemma sigma_uncurry_add [Π i j, add_zero_class (δ i j)] (f g : Π₀ i j, δ i j) :
+@[simp] lemma sigma_uncurry_add [Π i j, add_zero_class (δ i j)]
+  [Π i, decidable_eq (α i)] [Π i j (x : δ i j), decidable (x ≠ 0)]
+  (f g : Π₀ i j, δ i j) :
   sigma_uncurry (f + g) = sigma_uncurry f + sigma_uncurry g :=
 coe_fn_injective rfl
 
 @[simp] lemma sigma_uncurry_smul [monoid γ] [Π i j, add_monoid (δ i j)]
+  [Π i, decidable_eq (α i)] [Π i j (x : δ i j), decidable (x ≠ 0)]
   [Π i j, distrib_mul_action γ (δ i j)] (r : γ) (f : Π₀ i j, δ i j) :
   sigma_uncurry (r • f) = r • sigma_uncurry f :=
 coe_fn_injective rfl
 
-@[simp] lemma sigma_uncurry_single [Π i j, has_zero (δ i j)] (i) (j : α i) (x : δ i j) :
+@[simp] lemma sigma_uncurry_single [Π i j, has_zero (δ i j)]
+  [decidable_eq ι] [Π i, decidable_eq (α i)] [Π i j (x : δ i j), decidable (x ≠ 0)]
+  (i) (j : α i) (x : δ i j) :
   sigma_uncurry (single i (single j x : Π₀ (j : α i), δ i j)) = single ⟨i, j⟩ x:=
 begin
   ext ⟨i', j'⟩,
@@ -1291,7 +1301,8 @@ end
 /--The natural bijection between `Π₀ (i : Σ i, α i), δ i.1 i.2` and `Π₀ i (j : α i), δ i j`.
 
 This is the dfinsupp version of `equiv.Pi_curry`. -/
-noncomputable def sigma_curry_equiv [Π i j, has_zero (δ i j)] :
+noncomputable def sigma_curry_equiv [Π i j, has_zero (δ i j)]
+  [Π i, decidable_eq (α i)] [Π i j (x : δ i j), decidable (x ≠ 0)] :
   (Π₀ (i : Σ i, _), δ i.1 i.2) ≃ Π₀ i j, δ i j :=
 { to_fun := sigma_curry,
   inv_fun := sigma_uncurry,

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2018 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Kenny Lau
 -/
-import Algebra.Module.LinearMap
+import Algebra.Module.LinearMap.Basic
 import Algebra.BigOperators.Basic
 import Data.Set.Finite
 import GroupTheory.Submonoid.Membership
@@ -1388,7 +1388,7 @@ instance decidableZero : DecidablePred (Eq (0 : Π₀ i, β i)) := fun f =>
 #align dfinsupp.decidable_zero DFinsupp.decidableZero
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (i «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:642:2: warning: expanding binder collection (i «expr ∉ » s) -/
 #print DFinsupp.support_subset_iff /-
 theorem support_subset_iff {s : Set ι} {f : Π₀ i, β i} :
     ↑f.support ⊆ s ↔ ∀ (i) (_ : i ∉ s), f i = 0 := by
Diff
@@ -691,8 +691,8 @@ theorem mk_injective (s : Finset ι) : Function.Injective (@mk ι β _ _ s) :=
   ext i
   have h1 : (mk s x : ∀ i, β i) i = (mk s y : ∀ i, β i) i := by rw [H]
   cases' i with i hi
-  change i ∈ s at hi 
-  dsimp only [mk_apply, Subtype.coe_mk] at h1 
+  change i ∈ s at hi
+  dsimp only [mk_apply, Subtype.coe_mk] at h1
   simpa only [dif_pos hi] using h1
 #align dfinsupp.mk_injective DFinsupp.mk_injective
 -/
@@ -793,9 +793,9 @@ theorem single_eq_single_iff (i j : ι) (xi : β i) (xj : β j) :
     · have h_coe : ⇑(DFinsupp.single i xi) = DFinsupp.single j xj := congr_arg coeFn h
       have hci := congr_fun h_coe i
       have hcj := congr_fun h_coe j
-      rw [DFinsupp.single_eq_same] at hci hcj 
-      rw [DFinsupp.single_eq_of_ne (Ne.symm hij)] at hci 
-      rw [DFinsupp.single_eq_of_ne hij] at hcj 
+      rw [DFinsupp.single_eq_same] at hci hcj
+      rw [DFinsupp.single_eq_of_ne (Ne.symm hij)] at hci
+      rw [DFinsupp.single_eq_of_ne hij] at hcj
       exact Or.inr ⟨hci, hcj.symm⟩
   · rintro (⟨rfl, hxi⟩ | ⟨hi, hj⟩)
     · rw [eq_of_hEq hxi]
@@ -827,7 +827,7 @@ theorem filter_single (p : ι → Prop) [DecidablePred p] (i : ι) (x : β i) :
   by
   ext j
   have := apply_ite (fun x : Π₀ i, β i => x j) (p i) (single i x) 0
-  dsimp at this 
+  dsimp at this
   rw [filter_apply, this]
   obtain rfl | hij := Decidable.eq_or_ne i j
   · rfl
@@ -1215,7 +1215,7 @@ theorem addHom_ext {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+
     (H : ∀ (i : ι) (y : β i), f (single i y) = g (single i y)) : f = g :=
   by
   refine' AddMonoidHom.eq_of_eqOn_denseM add_closure_Union_range_single fun f hf => _
-  simp only [Set.mem_iUnion, Set.mem_range] at hf 
+  simp only [Set.mem_iUnion, Set.mem_range] at hf
   rcases hf with ⟨x, y, rfl⟩
   apply H
 #align dfinsupp.add_hom_ext DFinsupp.addHom_ext
@@ -1352,7 +1352,7 @@ theorem eq_mk_support (f : Π₀ i, β i) : f = mk f.support fun i => f i :=
   by
   change f = mk f.support fun i => f i.1
   ext i
-  by_cases h : f i ≠ 0 <;> [skip; rw [Classical.not_not] at h ] <;> simp [h]
+  by_cases h : f i ≠ 0 <;> [skip; rw [Classical.not_not] at h] <;> simp [h]
 #align dfinsupp.eq_mk_support DFinsupp.eq_mk_support
 -/
 
@@ -1421,7 +1421,7 @@ theorem mapRange_def [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] {f : ∀ i, β
     mapRange f hf g = mk g.support fun i => f i.1 (g i.1) :=
   by
   ext i
-  by_cases h : g i ≠ 0 <;> simp at h  <;> simp [h, hf]
+  by_cases h : g i ≠ 0 <;> simp at h <;> simp [h, hf]
 #align dfinsupp.map_range_def DFinsupp.mapRange_def
 -/
 
@@ -1450,7 +1450,7 @@ theorem zipWith_def {ι : Type u} {β : ι → Type v} {β₁ : ι → Type v₁
   by
   ext i
   by_cases h1 : g₁ i ≠ 0 <;> by_cases h2 : g₂ i ≠ 0 <;>
-      simp only [Classical.not_not, Ne.def] at h1 h2  <;>
+      simp only [Classical.not_not, Ne.def] at h1 h2 <;>
     simp [h1, h2, hf]
 #align dfinsupp.zip_with_def DFinsupp.zipWith_def
 -/
@@ -1466,14 +1466,14 @@ end MapRangeAndZipWith
 
 #print DFinsupp.erase_def /-
 theorem erase_def (i : ι) (f : Π₀ i, β i) : f.eraseₓ i = mk (f.support.eraseₓ i) fun j => f j.1 :=
-  by ext j; by_cases h1 : j = i <;> by_cases h2 : f j ≠ 0 <;> simp at h2  <;> simp [h1, h2]
+  by ext j; by_cases h1 : j = i <;> by_cases h2 : f j ≠ 0 <;> simp at h2 <;> simp [h1, h2]
 #align dfinsupp.erase_def DFinsupp.erase_def
 -/
 
 #print DFinsupp.support_erase /-
 @[simp]
 theorem support_erase (i : ι) (f : Π₀ i, β i) : (f.eraseₓ i).support = f.support.eraseₓ i := by
-  ext j; by_cases h1 : j = i; simp [h1]; by_cases h2 : f j ≠ 0 <;> simp at h2  <;> simp [h1, h2]
+  ext j; by_cases h1 : j = i; simp [h1]; by_cases h2 : f j ≠ 0 <;> simp at h2 <;> simp [h1, h2]
 #align dfinsupp.support_erase DFinsupp.support_erase
 -/
 
@@ -1505,7 +1505,7 @@ variable {p : ι → Prop} [DecidablePred p]
 
 #print DFinsupp.filter_def /-
 theorem filter_def (f : Π₀ i, β i) : f.filterₓ p = mk (f.support.filterₓ p) fun i => f i.1 := by
-  ext i <;> by_cases h1 : p i <;> by_cases h2 : f i ≠ 0 <;> simp at h2  <;> simp [h1, h2]
+  ext i <;> by_cases h1 : p i <;> by_cases h2 : f i ≠ 0 <;> simp at h2 <;> simp [h1, h2]
 #align dfinsupp.filter_def DFinsupp.filter_def
 -/
 
@@ -1519,7 +1519,7 @@ theorem support_filter (f : Π₀ i, β i) : (f.filterₓ p).support = f.support
 #print DFinsupp.subtypeDomain_def /-
 theorem subtypeDomain_def (f : Π₀ i, β i) :
     f.subtypeDomain p = mk (f.support.Subtype p) fun i => f i := by
-  ext i <;> by_cases h2 : f i ≠ 0 <;> try simp at h2  <;> dsimp <;> simp [h2]
+  ext i <;> by_cases h2 : f i ≠ 0 <;> try simp at h2 <;> dsimp <;> simp [h2]
 #align dfinsupp.subtype_domain_def DFinsupp.subtypeDomain_def
 -/
 
@@ -1562,8 +1562,8 @@ instance [∀ i, Zero (β i)] [∀ i, DecidableEq (β i)] : DecidableEq (Π₀ i
       ext fun i =>
         if h : i ∈ f.support then h₂ i h
         else by
-          have hf : f i = 0 := by rwa [mem_support_iff, Classical.not_not] at h 
-          have hg : g i = 0 := by rwa [h₁, mem_support_iff, Classical.not_not] at h 
+          have hf : f i = 0 := by rwa [mem_support_iff, Classical.not_not] at h
+          have hg : g i = 0 := by rwa [h₁, mem_support_iff, Classical.not_not] at h
           rw [hf, hg],
       by rintro rfl; simp⟩
 
@@ -2035,7 +2035,7 @@ theorem prod_mapRange_index {β₁ : ι → Type v₁} {β₂ : ι → Type v₂
   rw [map_range_def]
   refine' (Finset.prod_subset support_mk_subset _).trans _
   · intro i h1 h2
-    dsimp; simp [h1] at h2 ; dsimp at h2 
+    dsimp; simp [h1] at h2; dsimp at h2
     simp [h1, h2, h0]
   · refine' Finset.prod_congr rfl _
     intro i h1
@@ -2060,7 +2060,7 @@ theorem prod_single_index [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x
   by
   by_cases h : b ≠ 0
   · simp [DFinsupp.prod, support_single_ne_zero h]
-  · rw [Classical.not_not] at h ; simp [h, prod_zero_index, h_zero]; rfl
+  · rw [Classical.not_not] at h; simp [h, prod_zero_index, h_zero]; rfl
 #align dfinsupp.prod_single_index DFinsupp.prod_single_index
 #align dfinsupp.sum_single_index DFinsupp.sum_single_index
 -/
@@ -2199,7 +2199,7 @@ theorem prod_eq_prod_fintype [Fintype ι] [∀ i, Zero (β i)] [∀ (i : ι) (x
   suffices ∏ i in v.support, f i (v i) = ∏ i, f i (v i) by simp [DFinsupp.prod, this]
   apply Finset.prod_subset v.support.subset_univ
   intro i hi' hi
-  rw [mem_support_iff, Classical.not_not] at hi 
+  rw [mem_support_iff, Classical.not_not] at hi
   rw [hi, hf]
 #align dfinsupp.prod_eq_prod_fintype DFinsupp.prod_eq_prod_fintype
 #align dfinsupp.sum_eq_sum_fintype DFinsupp.sum_eq_sum_fintype
@@ -2222,12 +2222,12 @@ def sumAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i
       refine'
         (Finset.sum_subset H1 _).symm.trans
           ((Finset.sum_congr rfl _).trans (Finset.sum_subset H2 _))
-      · intro i H1 H2; rw [Finset.mem_inter] at H2 
-        simp only [Multiset.mem_toFinset] at H1 H2 
+      · intro i H1 H2; rw [Finset.mem_inter] at H2
+        simp only [Multiset.mem_toFinset] at H1 H2
         rw [(hy i).resolve_left (mt (And.intro H1) H2), AddMonoidHom.map_zero]
       · intro i H1; rfl
-      · intro i H1 H2; rw [Finset.mem_inter] at H2 
-        simp only [Multiset.mem_toFinset] at H1 H2 
+      · intro i H1 H2; rw [Finset.mem_inter] at H2
+        simp only [Multiset.mem_toFinset] at H1 H2
         rw [(hx i).resolve_left (mt (fun H3 => And.intro H3 H1) H2), AddMonoidHom.map_zero]
   map_add' := by
     rintro ⟨f, sf, hf⟩ ⟨g, sg, hg⟩
@@ -2236,11 +2236,11 @@ def sumAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i
     congr 1
     · refine' (Finset.sum_subset _ _).symm
       · intro i; simp only [Multiset.mem_toFinset, Multiset.mem_add]; exact Or.inl
-      · intro i H1 H2; simp only [Multiset.mem_toFinset, Multiset.mem_add] at H2 
+      · intro i H1 H2; simp only [Multiset.mem_toFinset, Multiset.mem_add] at H2
         rw [(hf i).resolve_left H2, AddMonoidHom.map_zero]
     · refine' (Finset.sum_subset _ _).symm
       · intro i; simp only [Multiset.mem_toFinset, Multiset.mem_add]; exact Or.inr
-      · intro i H1 H2; simp only [Multiset.mem_toFinset, Multiset.mem_add] at H2 
+      · intro i H1 H2; simp only [Multiset.mem_toFinset, Multiset.mem_add] at H2
         rw [(hg i).resolve_left H2, AddMonoidHom.map_zero]
   map_zero' := rfl
 #align dfinsupp.sum_add_hom DFinsupp.sumAddHom
@@ -2456,7 +2456,7 @@ theorem sum_sub_index [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x
     (f - g).Sum h = f.Sum h - g.Sum h :=
   by
   have := (lift_add_hom fun a => AddMonoidHom.ofMapSub (h a) (h_sub a)).map_sub f g
-  rw [lift_add_hom_apply, sum_add_hom_apply, sum_add_hom_apply, sum_add_hom_apply] at this 
+  rw [lift_add_hom_apply, sum_add_hom_apply, sum_add_hom_apply, sum_add_hom_apply] at this
   exact this
 #align dfinsupp.sum_sub_index DFinsupp.sum_sub_index
 -/
@@ -2494,7 +2494,7 @@ theorem sum_single [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable
     f.Sum single = f :=
   by
   have := AddMonoidHom.congr_fun lift_add_hom_single_add_hom f
-  rw [lift_add_hom_apply, sum_add_hom_apply] at this 
+  rw [lift_add_hom_apply, sum_add_hom_apply] at this
   exact this
 #align dfinsupp.sum_single DFinsupp.sum_single
 -/
Diff
@@ -646,7 +646,11 @@ section Basic
 variable [∀ i, Zero (β i)]
 
 #print DFinsupp.finite_support /-
-theorem finite_support (f : Π₀ i, β i) : Set.Finite {i | f i ≠ 0} := by classical
+theorem finite_support (f : Π₀ i, β i) : Set.Finite {i | f i ≠ 0} := by
+  classical exact
+    Trunc.induction_on f.support' fun xs =>
+      (Multiset.toFinset ↑xs).finite_toSet.Subset fun i H =>
+        Multiset.mem_toFinset.2 ((xs.Prop i).resolve_right H)
 #align dfinsupp.finite_support DFinsupp.finite_support
 -/
 
@@ -1743,7 +1747,10 @@ instance distribMulAction₂ [Monoid γ] [∀ i j, AddMonoid (δ i j)]
 #print DFinsupp.sigmaCurry /-
 /-- The natural map between `Π₀ (i : Σ i, α i), δ i.1 i.2` and `Π₀ i (j : α i), δ i j`.  -/
 noncomputable def sigmaCurry [∀ i j, Zero (δ i j)] (f : Π₀ i : Σ i, _, δ i.1 i.2) :
-    Π₀ (i) (j), δ i j := by classical
+    Π₀ (i) (j), δ i j := by
+  classical exact
+    mk (f.support.image fun i => i.1) fun i =>
+      mk (f.support.preimage (Sigma.mk i) <| sigma_mk_injective.inj_on _) fun j => f ⟨i, j⟩
 #align dfinsupp.sigma_curry DFinsupp.sigmaCurry
 -/
 
@@ -2276,7 +2283,12 @@ theorem sumAddHom_apply [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decida
 #print dfinsupp_sumAddHom_mem /-
 theorem dfinsupp_sumAddHom_mem [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] {S : Type _}
     [SetLike S γ] [AddSubmonoidClass S γ] (s : S) (f : Π₀ i, β i) (g : ∀ i, β i →+ γ)
-    (h : ∀ c, f c ≠ 0 → g c (f c) ∈ s) : DFinsupp.sumAddHom g f ∈ s := by classical
+    (h : ∀ c, f c ≠ 0 → g c (f c) ∈ s) : DFinsupp.sumAddHom g f ∈ s := by
+  classical
+  rw [DFinsupp.sumAddHom_apply]
+  convert dfinsupp_sum_mem _ _ _ _
+  · infer_instance
+  exact h
 #align dfinsupp_sum_add_hom_mem dfinsupp_sumAddHom_mem
 -/
 
@@ -2455,7 +2467,10 @@ theorem prod_finset_sum_index {γ : Type w} {α : Type x} [∀ i, AddCommMonoid
     [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ] {s : Finset α} {g : α → Π₀ i, β i}
     {h : ∀ i, β i → γ} (h_zero : ∀ i, h i 0 = 1)
     (h_add : ∀ i b₁ b₂, h i (b₁ + b₂) = h i b₁ * h i b₂) :
-    ∏ i in s, (g i).Prod h = (∑ i in s, g i).Prod h := by classical
+    ∏ i in s, (g i).Prod h = (∑ i in s, g i).Prod h := by
+  classical exact
+    Finset.induction_on s (by simp [prod_zero_index])
+      (by simp (config := { contextual := true }) [prod_add_index, h_zero, h_add])
 #align dfinsupp.prod_finset_sum_index DFinsupp.prod_finset_sum_index
 #align dfinsupp.sum_finset_sum_index DFinsupp.sum_finset_sum_index
 -/
Diff
@@ -646,11 +646,7 @@ section Basic
 variable [∀ i, Zero (β i)]
 
 #print DFinsupp.finite_support /-
-theorem finite_support (f : Π₀ i, β i) : Set.Finite {i | f i ≠ 0} := by
-  classical exact
-    Trunc.induction_on f.support' fun xs =>
-      (Multiset.toFinset ↑xs).finite_toSet.Subset fun i H =>
-        Multiset.mem_toFinset.2 ((xs.Prop i).resolve_right H)
+theorem finite_support (f : Π₀ i, β i) : Set.Finite {i | f i ≠ 0} := by classical
 #align dfinsupp.finite_support DFinsupp.finite_support
 -/
 
@@ -1747,10 +1743,7 @@ instance distribMulAction₂ [Monoid γ] [∀ i j, AddMonoid (δ i j)]
 #print DFinsupp.sigmaCurry /-
 /-- The natural map between `Π₀ (i : Σ i, α i), δ i.1 i.2` and `Π₀ i (j : α i), δ i j`.  -/
 noncomputable def sigmaCurry [∀ i j, Zero (δ i j)] (f : Π₀ i : Σ i, _, δ i.1 i.2) :
-    Π₀ (i) (j), δ i j := by
-  classical exact
-    mk (f.support.image fun i => i.1) fun i =>
-      mk (f.support.preimage (Sigma.mk i) <| sigma_mk_injective.inj_on _) fun j => f ⟨i, j⟩
+    Π₀ (i) (j), δ i j := by classical
 #align dfinsupp.sigma_curry DFinsupp.sigmaCurry
 -/
 
@@ -2283,12 +2276,7 @@ theorem sumAddHom_apply [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decida
 #print dfinsupp_sumAddHom_mem /-
 theorem dfinsupp_sumAddHom_mem [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] {S : Type _}
     [SetLike S γ] [AddSubmonoidClass S γ] (s : S) (f : Π₀ i, β i) (g : ∀ i, β i →+ γ)
-    (h : ∀ c, f c ≠ 0 → g c (f c) ∈ s) : DFinsupp.sumAddHom g f ∈ s := by
-  classical
-  rw [DFinsupp.sumAddHom_apply]
-  convert dfinsupp_sum_mem _ _ _ _
-  · infer_instance
-  exact h
+    (h : ∀ c, f c ≠ 0 → g c (f c) ∈ s) : DFinsupp.sumAddHom g f ∈ s := by classical
 #align dfinsupp_sum_add_hom_mem dfinsupp_sumAddHom_mem
 -/
 
@@ -2467,10 +2455,7 @@ theorem prod_finset_sum_index {γ : Type w} {α : Type x} [∀ i, AddCommMonoid
     [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ] {s : Finset α} {g : α → Π₀ i, β i}
     {h : ∀ i, β i → γ} (h_zero : ∀ i, h i 0 = 1)
     (h_add : ∀ i b₁ b₂, h i (b₁ + b₂) = h i b₁ * h i b₂) :
-    ∏ i in s, (g i).Prod h = (∑ i in s, g i).Prod h := by
-  classical exact
-    Finset.induction_on s (by simp [prod_zero_index])
-      (by simp (config := { contextual := true }) [prod_add_index, h_zero, h_add])
+    ∏ i in s, (g i).Prod h = (∑ i in s, g i).Prod h := by classical
 #align dfinsupp.prod_finset_sum_index DFinsupp.prod_finset_sum_index
 #align dfinsupp.sum_finset_sum_index DFinsupp.sum_finset_sum_index
 -/
Diff
@@ -81,16 +81,16 @@ section Basic
 
 variable [∀ i, Zero (β i)] [∀ i, Zero (β₁ i)] [∀ i, Zero (β₂ i)]
 
-#print DFinsupp.funLike /-
-instance funLike : FunLike (Π₀ i, β i) ι β :=
+#print DFinsupp.instDFunLike /-
+instance instDFunLike : DFunLike (Π₀ i, β i) ι β :=
   ⟨fun f => f.toFun, fun ⟨f₁, s₁⟩ ⟨f₂, s₁⟩ (h : f₁ = f₂) => by subst h; congr⟩
-#align dfinsupp.fun_like DFinsupp.funLike
+#align dfinsupp.fun_like DFinsupp.instDFunLike
 -/
 
 /-- Helper instance for when there are too many metavariables to apply `fun_like.has_coe_to_fun`
 directly. -/
 instance : CoeFun (Π₀ i, β i) fun _ => ∀ i, β i :=
-  FunLike.hasCoeToFun
+  DFunLike.hasCoeToFun
 
 #print DFinsupp.toFun_eq_coe /-
 @[simp]
@@ -102,21 +102,21 @@ theorem toFun_eq_coe (f : Π₀ i, β i) : f.toFun = f :=
 #print DFinsupp.ext /-
 @[ext]
 theorem ext {f g : Π₀ i, β i} (h : ∀ i, f i = g i) : f = g :=
-  FunLike.ext _ _ h
+  DFunLike.ext _ _ h
 #align dfinsupp.ext DFinsupp.ext
 -/
 
 #print DFinsupp.ext_iff /-
 /-- Deprecated. Use `fun_like.ext_iff` instead. -/
 theorem ext_iff {f g : Π₀ i, β i} : f = g ↔ ∀ i, f i = g i :=
-  FunLike.ext_iff
+  DFunLike.ext_iff
 #align dfinsupp.ext_iff DFinsupp.ext_iff
 -/
 
 #print DFinsupp.coeFn_injective /-
 /-- Deprecated. Use `fun_like.coe_injective` instead. -/
 theorem coeFn_injective : @Function.Injective (Π₀ i, β i) (∀ i, β i) coeFn :=
-  FunLike.coe_injective
+  DFunLike.coe_injective
 #align dfinsupp.coe_fn_injective DFinsupp.coeFn_injective
 -/
 
@@ -268,7 +268,7 @@ theorem coe_add [∀ i, AddZeroClass (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g
 -/
 
 instance [∀ i, AddZeroClass (β i)] : AddZeroClass (Π₀ i, β i) :=
-  FunLike.coe_injective.AddZeroClass _ coe_zero coe_add
+  DFunLike.coe_injective.AddZeroClass _ coe_zero coe_add
 
 #print DFinsupp.hasNatScalar /-
 /-- Note the general `dfinsupp.has_smul` instance doesn't apply as `ℕ` is not distributive
@@ -292,7 +292,7 @@ theorem coe_nsmul [∀ i, AddMonoid (β i)] (b : ℕ) (v : Π₀ i, β i) : ⇑(
 -/
 
 instance [∀ i, AddMonoid (β i)] : AddMonoid (Π₀ i, β i) :=
-  FunLike.coe_injective.AddMonoid _ coe_zero coe_add fun _ _ => coe_nsmul _ _
+  DFunLike.coe_injective.AddMonoid _ coe_zero coe_add fun _ _ => coe_nsmul _ _
 
 #print DFinsupp.coeFnAddMonoidHom /-
 /-- Coercion from a `dfinsupp` to a pi type is an `add_monoid_hom`. -/
@@ -313,7 +313,7 @@ def evalAddMonoidHom [∀ i, AddZeroClass (β i)] (i : ι) : (Π₀ i, β i) →
 -/
 
 instance [∀ i, AddCommMonoid (β i)] : AddCommMonoid (Π₀ i, β i) :=
-  FunLike.coe_injective.AddCommMonoid _ coe_zero coe_add fun _ _ => coe_nsmul _ _
+  DFunLike.coe_injective.AddCommMonoid _ coe_zero coe_add fun _ _ => coe_nsmul _ _
 
 #print DFinsupp.coe_finset_sum /-
 @[simp]
@@ -385,11 +385,11 @@ theorem coe_zsmul [∀ i, AddGroup (β i)] (b : ℤ) (v : Π₀ i, β i) : ⇑(b
 -/
 
 instance [∀ i, AddGroup (β i)] : AddGroup (Π₀ i, β i) :=
-  FunLike.coe_injective.AddGroup _ coe_zero coe_add coe_neg coe_sub (fun _ _ => coe_nsmul _ _)
+  DFunLike.coe_injective.AddGroup _ coe_zero coe_add coe_neg coe_sub (fun _ _ => coe_nsmul _ _)
     fun _ _ => coe_zsmul _ _
 
 instance [∀ i, AddCommGroup (β i)] : AddCommGroup (Π₀ i, β i) :=
-  FunLike.coe_injective.AddCommGroup _ coe_zero coe_add coe_neg coe_sub (fun _ _ => coe_nsmul _ _)
+  DFunLike.coe_injective.AddCommGroup _ coe_zero coe_add coe_neg coe_sub (fun _ _ => coe_nsmul _ _)
     fun _ _ => coe_zsmul _ _
 
 /-- Dependent functions with finite support inherit a semiring action from an action on each
@@ -430,7 +430,7 @@ instance [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i
 structure on each coordinate. -/
 instance [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] :
     DistribMulAction γ (Π₀ i, β i) :=
-  Function.Injective.distribMulAction coeFnAddMonoidHom FunLike.coe_injective coe_smul
+  Function.Injective.distribMulAction coeFnAddMonoidHom DFunLike.coe_injective coe_smul
 
 /-- Dependent functions with finite support inherit a module structure from such a structure on
 each coordinate. -/
@@ -699,13 +699,13 @@ theorem mk_injective (s : Finset ι) : Function.Injective (@mk ι β _ _ s) :=
 
 #print DFinsupp.unique /-
 instance unique [∀ i, Subsingleton (β i)] : Unique (Π₀ i, β i) :=
-  FunLike.coe_injective.unique
+  DFunLike.coe_injective.unique
 #align dfinsupp.unique DFinsupp.unique
 -/
 
 #print DFinsupp.uniqueOfIsEmpty /-
 instance uniqueOfIsEmpty [IsEmpty ι] : Unique (Π₀ i, β i) :=
-  FunLike.coe_injective.unique
+  DFunLike.coe_injective.unique
 #align dfinsupp.unique_of_is_empty DFinsupp.uniqueOfIsEmpty
 -/
 
@@ -757,7 +757,7 @@ theorem single_apply {i i' b} :
 #print DFinsupp.single_zero /-
 @[simp]
 theorem single_zero (i) : (single i 0 : Π₀ i, β i) = 0 :=
-  FunLike.coe_injective <| Pi.single_zero _
+  DFunLike.coe_injective <| Pi.single_zero _
 #align dfinsupp.single_zero DFinsupp.single_zero
 -/
 
Diff
@@ -3,12 +3,12 @@ Copyright (c) 2018 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Kenny Lau
 -/
-import Mathbin.Algebra.Module.LinearMap
-import Mathbin.Algebra.BigOperators.Basic
-import Mathbin.Data.Set.Finite
-import Mathbin.GroupTheory.Submonoid.Membership
-import Mathbin.GroupTheory.GroupAction.BigOperators
-import Mathbin.Data.Finset.Preimage
+import Algebra.Module.LinearMap
+import Algebra.BigOperators.Basic
+import Data.Set.Finite
+import GroupTheory.Submonoid.Membership
+import GroupTheory.GroupAction.BigOperators
+import Data.Finset.Preimage
 
 #align_import data.dfinsupp.basic from "leanprover-community/mathlib"@"fac369018417f980cec5fcdafc766a69f88d8cfe"
 
@@ -1388,7 +1388,7 @@ instance decidableZero : DecidablePred (Eq (0 : Π₀ i, β i)) := fun f =>
 #align dfinsupp.decidable_zero DFinsupp.decidableZero
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:641:2: warning: expanding binder collection (i «expr ∉ » s) -/
 #print DFinsupp.support_subset_iff /-
 theorem support_subset_iff {s : Set ι} {f : Π₀ i, β i} :
     ↑f.support ⊆ s ↔ ∀ (i) (_ : i ∉ s), f i = 0 := by
Diff
@@ -2641,11 +2641,11 @@ variable {R S : Type _}
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
 @[simp, to_additive]
-theorem map_dFinsupp_prod [CommMonoid R] [CommMonoid S] (h : R →* S) (f : Π₀ i, β i)
+theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R →* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Prod g) = f.Prod fun a b => h (g a b) :=
   h.map_prod _ _
-#align monoid_hom.map_dfinsupp_prod MonoidHom.map_dFinsupp_prod
-#align add_monoid_hom.map_dfinsupp_sum AddMonoidHom.map_dfinsupp_sum
+#align monoid_hom.map_dfinsupp_prod map_dfinsupp_prodₓ
+#align add_monoid_hom.map_dfinsupp_sum map_dfinsupp_sumₓ
 
 #print MonoidHom.coe_dfinsupp_prod /-
 @[to_additive]
@@ -2673,17 +2673,25 @@ variable {R S : Type _}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
+/- warning: ring_hom.map_dfinsupp_prod clashes with monoid_hom.map_dfinsupp_prod -> map_dfinsupp_prodₓ
+Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_prod map_dfinsupp_prodₓₓ'. -/
+#print map_dfinsupp_prodₓ /-
 @[simp]
-theorem map_dFinsupp_prod [CommSemiring R] [CommSemiring S] (h : R →+* S) (f : Π₀ i, β i)
+theorem map_dfinsupp_prod [CommSemiring R] [CommSemiring S] (h : R →+* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Prod g) = f.Prod fun a b => h (g a b) :=
   h.map_prod _ _
-#align ring_hom.map_dfinsupp_prod RingHom.map_dFinsupp_prod
+#align ring_hom.map_dfinsupp_prod map_dfinsupp_prodₓ
+-/
 
+/- warning: ring_hom.map_dfinsupp_sum clashes with add_monoid_hom.map_dfinsupp_sum -> map_dfinsupp_sumₓ
+Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_sum map_dfinsupp_sumₓₓ'. -/
+#print map_dfinsupp_sumₓ /-
 @[simp]
-theorem map_dFinsupp_sum [NonAssocSemiring R] [NonAssocSemiring S] (h : R →+* S) (f : Π₀ i, β i)
+theorem map_dfinsupp_sum [NonAssocSemiring R] [NonAssocSemiring S] (h : R →+* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Sum g) = f.Sum fun a b => h (g a b) :=
   h.map_sum _ _
-#align ring_hom.map_dfinsupp_sum RingHom.map_dFinsupp_sum
+#align ring_hom.map_dfinsupp_sum map_dfinsupp_sumₓ
+-/
 
 end RingHom
 
@@ -2693,12 +2701,16 @@ variable {R S : Type _}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
+/- warning: mul_equiv.map_dfinsupp_prod clashes with monoid_hom.map_dfinsupp_prod -> map_dfinsupp_prodₓ
+Case conversion may be inaccurate. Consider using '#align mul_equiv.map_dfinsupp_prod map_dfinsupp_prodₓₓ'. -/
+#print map_dfinsupp_prodₓ /-
 @[simp, to_additive]
-theorem map_dFinsupp_prod [CommMonoid R] [CommMonoid S] (h : R ≃* S) (f : Π₀ i, β i)
+theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R ≃* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Prod g) = f.Prod fun a b => h (g a b) :=
   h.map_prod _ _
-#align mul_equiv.map_dfinsupp_prod MulEquiv.map_dFinsupp_prod
-#align add_equiv.map_dfinsupp_sum AddEquiv.map_dfinsupp_sum
+#align mul_equiv.map_dfinsupp_prod map_dfinsupp_prodₓ
+#align add_monoid_hom.map_dfinsupp_sum map_dfinsupp_sumₓ
+-/
 
 end MulEquiv
 
Diff
@@ -2640,14 +2640,12 @@ variable {R S : Type _}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
-#print MonoidHom.map_dfinsupp_prod /-
 @[simp, to_additive]
-theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R →* S) (f : Π₀ i, β i)
+theorem map_dFinsupp_prod [CommMonoid R] [CommMonoid S] (h : R →* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Prod g) = f.Prod fun a b => h (g a b) :=
   h.map_prod _ _
-#align monoid_hom.map_dfinsupp_prod MonoidHom.map_dfinsupp_prod
+#align monoid_hom.map_dfinsupp_prod MonoidHom.map_dFinsupp_prod
 #align add_monoid_hom.map_dfinsupp_sum AddMonoidHom.map_dfinsupp_sum
--/
 
 #print MonoidHom.coe_dfinsupp_prod /-
 @[to_additive]
@@ -2675,21 +2673,17 @@ variable {R S : Type _}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
-#print RingHom.map_dfinsupp_prod /-
 @[simp]
-theorem map_dfinsupp_prod [CommSemiring R] [CommSemiring S] (h : R →+* S) (f : Π₀ i, β i)
+theorem map_dFinsupp_prod [CommSemiring R] [CommSemiring S] (h : R →+* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Prod g) = f.Prod fun a b => h (g a b) :=
   h.map_prod _ _
-#align ring_hom.map_dfinsupp_prod RingHom.map_dfinsupp_prod
--/
+#align ring_hom.map_dfinsupp_prod RingHom.map_dFinsupp_prod
 
-#print RingHom.map_dfinsupp_sum /-
 @[simp]
-theorem map_dfinsupp_sum [NonAssocSemiring R] [NonAssocSemiring S] (h : R →+* S) (f : Π₀ i, β i)
+theorem map_dFinsupp_sum [NonAssocSemiring R] [NonAssocSemiring S] (h : R →+* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Sum g) = f.Sum fun a b => h (g a b) :=
   h.map_sum _ _
-#align ring_hom.map_dfinsupp_sum RingHom.map_dfinsupp_sum
--/
+#align ring_hom.map_dfinsupp_sum RingHom.map_dFinsupp_sum
 
 end RingHom
 
@@ -2699,14 +2693,12 @@ variable {R S : Type _}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
-#print MulEquiv.map_dfinsupp_prod /-
 @[simp, to_additive]
-theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R ≃* S) (f : Π₀ i, β i)
+theorem map_dFinsupp_prod [CommMonoid R] [CommMonoid S] (h : R ≃* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Prod g) = f.Prod fun a b => h (g a b) :=
   h.map_prod _ _
-#align mul_equiv.map_dfinsupp_prod MulEquiv.map_dfinsupp_prod
+#align mul_equiv.map_dfinsupp_prod MulEquiv.map_dFinsupp_prod
 #align add_equiv.map_dfinsupp_sum AddEquiv.map_dfinsupp_sum
--/
 
 end MulEquiv
 
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2018 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Kenny Lau
-
-! This file was ported from Lean 3 source module data.dfinsupp.basic
-! leanprover-community/mathlib commit fac369018417f980cec5fcdafc766a69f88d8cfe
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Module.LinearMap
 import Mathbin.Algebra.BigOperators.Basic
@@ -15,6 +10,8 @@ import Mathbin.GroupTheory.Submonoid.Membership
 import Mathbin.GroupTheory.GroupAction.BigOperators
 import Mathbin.Data.Finset.Preimage
 
+#align_import data.dfinsupp.basic from "leanprover-community/mathlib"@"fac369018417f980cec5fcdafc766a69f88d8cfe"
+
 /-!
 # Dependent functions with finite support
 
@@ -1391,7 +1388,7 @@ instance decidableZero : DecidablePred (Eq (0 : Π₀ i, β i)) := fun f =>
 #align dfinsupp.decidable_zero DFinsupp.decidableZero
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (i «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » s) -/
 #print DFinsupp.support_subset_iff /-
 theorem support_subset_iff {s : Set ι} {f : Π₀ i, β i} :
     ↑f.support ⊆ s ↔ ∀ (i) (_ : i ∉ s), f i = 0 := by
Diff
@@ -60,34 +60,34 @@ variable {ι : Type u} {γ : Type w} {β : ι → Type v} {β₁ : ι → Type v
 
 variable (β)
 
-#print Dfinsupp /-
+#print DFinsupp /-
 /-- A dependent function `Π i, β i` with finite support, with notation `Π₀ i, β i`.
 
 Note that `dfinsupp.support` is the preferred API for accessing the support of the function,
 `dfinsupp.support'` is a implementation detail that aids computability; see the implementation
 notes in this file for more information. -/
-structure Dfinsupp [∀ i, Zero (β i)] : Type max u v where mk' ::
+structure DFinsupp [∀ i, Zero (β i)] : Type max u v where mk' ::
   toFun : ∀ i, β i
   support' : Trunc { s : Multiset ι // ∀ i, i ∈ s ∨ to_fun i = 0 }
-#align dfinsupp Dfinsupp
+#align dfinsupp DFinsupp
 -/
 
 variable {β}
 
-notation3"Π₀ "(...)", "r:(scoped f => Dfinsupp f) => r
+notation3"Π₀ "(...)", "r:(scoped f => DFinsupp f) => r
 
-infixl:25 " →ₚ " => Dfinsupp
+infixl:25 " →ₚ " => DFinsupp
 
-namespace Dfinsupp
+namespace DFinsupp
 
 section Basic
 
 variable [∀ i, Zero (β i)] [∀ i, Zero (β₁ i)] [∀ i, Zero (β₂ i)]
 
-#print Dfinsupp.funLike /-
+#print DFinsupp.funLike /-
 instance funLike : FunLike (Π₀ i, β i) ι β :=
   ⟨fun f => f.toFun, fun ⟨f₁, s₁⟩ ⟨f₂, s₁⟩ (h : f₁ = f₂) => by subst h; congr⟩
-#align dfinsupp.fun_like Dfinsupp.funLike
+#align dfinsupp.fun_like DFinsupp.funLike
 -/
 
 /-- Helper instance for when there are too many metavariables to apply `fun_like.has_coe_to_fun`
@@ -95,32 +95,32 @@ directly. -/
 instance : CoeFun (Π₀ i, β i) fun _ => ∀ i, β i :=
   FunLike.hasCoeToFun
 
-#print Dfinsupp.toFun_eq_coe /-
+#print DFinsupp.toFun_eq_coe /-
 @[simp]
 theorem toFun_eq_coe (f : Π₀ i, β i) : f.toFun = f :=
   rfl
-#align dfinsupp.to_fun_eq_coe Dfinsupp.toFun_eq_coe
+#align dfinsupp.to_fun_eq_coe DFinsupp.toFun_eq_coe
 -/
 
-#print Dfinsupp.ext /-
+#print DFinsupp.ext /-
 @[ext]
 theorem ext {f g : Π₀ i, β i} (h : ∀ i, f i = g i) : f = g :=
   FunLike.ext _ _ h
-#align dfinsupp.ext Dfinsupp.ext
+#align dfinsupp.ext DFinsupp.ext
 -/
 
-#print Dfinsupp.ext_iff /-
+#print DFinsupp.ext_iff /-
 /-- Deprecated. Use `fun_like.ext_iff` instead. -/
 theorem ext_iff {f g : Π₀ i, β i} : f = g ↔ ∀ i, f i = g i :=
   FunLike.ext_iff
-#align dfinsupp.ext_iff Dfinsupp.ext_iff
+#align dfinsupp.ext_iff DFinsupp.ext_iff
 -/
 
-#print Dfinsupp.coeFn_injective /-
+#print DFinsupp.coeFn_injective /-
 /-- Deprecated. Use `fun_like.coe_injective` instead. -/
 theorem coeFn_injective : @Function.Injective (Π₀ i, β i) (∀ i, β i) coeFn :=
   FunLike.coe_injective
-#align dfinsupp.coe_fn_injective Dfinsupp.coeFn_injective
+#align dfinsupp.coe_fn_injective DFinsupp.coeFn_injective
 -/
 
 instance : Zero (Π₀ i, β i) :=
@@ -129,27 +129,27 @@ instance : Zero (Π₀ i, β i) :=
 instance : Inhabited (Π₀ i, β i) :=
   ⟨0⟩
 
-#print Dfinsupp.coe_mk' /-
+#print DFinsupp.coe_mk' /-
 @[simp]
 theorem coe_mk' (f : ∀ i, β i) (s) : ⇑(⟨f, s⟩ : Π₀ i, β i) = f :=
   rfl
-#align dfinsupp.coe_mk' Dfinsupp.coe_mk'
+#align dfinsupp.coe_mk' DFinsupp.coe_mk'
 -/
 
-#print Dfinsupp.coe_zero /-
+#print DFinsupp.coe_zero /-
 @[simp]
 theorem coe_zero : ⇑(0 : Π₀ i, β i) = 0 :=
   rfl
-#align dfinsupp.coe_zero Dfinsupp.coe_zero
+#align dfinsupp.coe_zero DFinsupp.coe_zero
 -/
 
-#print Dfinsupp.zero_apply /-
+#print DFinsupp.zero_apply /-
 theorem zero_apply (i : ι) : (0 : Π₀ i, β i) i = 0 :=
   rfl
-#align dfinsupp.zero_apply Dfinsupp.zero_apply
+#align dfinsupp.zero_apply DFinsupp.zero_apply
 -/
 
-#print Dfinsupp.mapRange /-
+#print DFinsupp.mapRange /-
 /-- The composition of `f : β₁ → β₂` and `g : Π₀ i, β₁ i` is
   `map_range f hf g : Π₀ i, β₂ i`, well defined when `f 0 = 0`.
 
@@ -164,41 +164,41 @@ bundled:
 def mapRange (f : ∀ i, β₁ i → β₂ i) (hf : ∀ i, f i 0 = 0) (x : Π₀ i, β₁ i) : Π₀ i, β₂ i :=
   ⟨fun i => f i (x i),
     x.support'.map fun s => ⟨s, fun i => (s.2 i).imp_right fun h : x i = 0 => h.symm ▸ hf i⟩⟩
-#align dfinsupp.map_range Dfinsupp.mapRange
+#align dfinsupp.map_range DFinsupp.mapRange
 -/
 
-#print Dfinsupp.mapRange_apply /-
+#print DFinsupp.mapRange_apply /-
 @[simp]
 theorem mapRange_apply (f : ∀ i, β₁ i → β₂ i) (hf : ∀ i, f i 0 = 0) (g : Π₀ i, β₁ i) (i : ι) :
     mapRange f hf g i = f i (g i) :=
   rfl
-#align dfinsupp.map_range_apply Dfinsupp.mapRange_apply
+#align dfinsupp.map_range_apply DFinsupp.mapRange_apply
 -/
 
-#print Dfinsupp.mapRange_id /-
+#print DFinsupp.mapRange_id /-
 @[simp]
 theorem mapRange_id (h : ∀ i, id (0 : β₁ i) = 0 := fun i => rfl) (g : Π₀ i : ι, β₁ i) :
     mapRange (fun i => (id : β₁ i → β₁ i)) h g = g := by ext; rfl
-#align dfinsupp.map_range_id Dfinsupp.mapRange_id
+#align dfinsupp.map_range_id DFinsupp.mapRange_id
 -/
 
-#print Dfinsupp.mapRange_comp /-
+#print DFinsupp.mapRange_comp /-
 theorem mapRange_comp (f : ∀ i, β₁ i → β₂ i) (f₂ : ∀ i, β i → β₁ i) (hf : ∀ i, f i 0 = 0)
     (hf₂ : ∀ i, f₂ i 0 = 0) (h : ∀ i, (f i ∘ f₂ i) 0 = 0) (g : Π₀ i : ι, β i) :
     mapRange (fun i => f i ∘ f₂ i) h g = mapRange f hf (mapRange f₂ hf₂ g) := by ext;
   simp only [map_range_apply]
-#align dfinsupp.map_range_comp Dfinsupp.mapRange_comp
+#align dfinsupp.map_range_comp DFinsupp.mapRange_comp
 -/
 
-#print Dfinsupp.mapRange_zero /-
+#print DFinsupp.mapRange_zero /-
 @[simp]
 theorem mapRange_zero (f : ∀ i, β₁ i → β₂ i) (hf : ∀ i, f i 0 = 0) :
     mapRange f hf (0 : Π₀ i, β₁ i) = 0 := by ext;
   simp only [map_range_apply, coe_zero, Pi.zero_apply, hf]
-#align dfinsupp.map_range_zero Dfinsupp.mapRange_zero
+#align dfinsupp.map_range_zero DFinsupp.mapRange_zero
 -/
 
-#print Dfinsupp.zipWith /-
+#print DFinsupp.zipWith /-
 /-- Let `f i` be a binary operation `β₁ i → β₂ i → β i` such that `f i 0 0 = 0`.
 Then `zip_with f hf` is a binary operation `Π₀ i, β₁ i → Π₀ i, β₂ i → Π₀ i, β i`. -/
 def zipWith (f : ∀ i, β₁ i → β₂ i → β i) (hf : ∀ i, f i 0 0 = 0) (x : Π₀ i, β₁ i) (y : Π₀ i, β₂ i) :
@@ -212,39 +212,39 @@ def zipWith (f : ∀ i, β₁ i → β₂ i → β i) (hf : ∀ i, f i 0 0 = 0)
     obtain h2 | (h2 : y i = 0) := ys.prop i
     · left; rw [Multiset.mem_add]; right; exact h2
     right; rw [h1, h2, hf]⟩
-#align dfinsupp.zip_with Dfinsupp.zipWith
+#align dfinsupp.zip_with DFinsupp.zipWith
 -/
 
-#print Dfinsupp.zipWith_apply /-
+#print DFinsupp.zipWith_apply /-
 @[simp]
 theorem zipWith_apply (f : ∀ i, β₁ i → β₂ i → β i) (hf : ∀ i, f i 0 0 = 0) (g₁ : Π₀ i, β₁ i)
     (g₂ : Π₀ i, β₂ i) (i : ι) : zipWith f hf g₁ g₂ i = f i (g₁ i) (g₂ i) :=
   rfl
-#align dfinsupp.zip_with_apply Dfinsupp.zipWith_apply
+#align dfinsupp.zip_with_apply DFinsupp.zipWith_apply
 -/
 
 section Piecewise
 
 variable (x y : Π₀ i, β i) (s : Set ι) [∀ i, Decidable (i ∈ s)]
 
-#print Dfinsupp.piecewise /-
+#print DFinsupp.piecewise /-
 /-- `x.piecewise y s` is the finitely supported function equal to `x` on the set `s`,
   and to `y` on its complement. -/
 def piecewise : Π₀ i, β i :=
   zipWith (fun i x y => if i ∈ s then x else y) (fun _ => if_t_t _ 0) x y
-#align dfinsupp.piecewise Dfinsupp.piecewise
+#align dfinsupp.piecewise DFinsupp.piecewise
 -/
 
-#print Dfinsupp.piecewise_apply /-
+#print DFinsupp.piecewise_apply /-
 theorem piecewise_apply (i : ι) : x.piecewise y s i = if i ∈ s then x i else y i :=
   zipWith_apply _ _ x y i
-#align dfinsupp.piecewise_apply Dfinsupp.piecewise_apply
+#align dfinsupp.piecewise_apply DFinsupp.piecewise_apply
 -/
 
-#print Dfinsupp.coe_piecewise /-
+#print DFinsupp.coe_piecewise /-
 @[simp, norm_cast]
 theorem coe_piecewise : ⇑(x.piecewise y s) = s.piecewise x y := by ext; apply piecewise_apply
-#align dfinsupp.coe_piecewise Dfinsupp.coe_piecewise
+#align dfinsupp.coe_piecewise DFinsupp.coe_piecewise
 -/
 
 end Piecewise
@@ -256,135 +256,135 @@ section Algebra
 instance [∀ i, AddZeroClass (β i)] : Add (Π₀ i, β i) :=
   ⟨zipWith (fun _ => (· + ·)) fun _ => add_zero 0⟩
 
-#print Dfinsupp.add_apply /-
+#print DFinsupp.add_apply /-
 theorem add_apply [∀ i, AddZeroClass (β i)] (g₁ g₂ : Π₀ i, β i) (i : ι) :
     (g₁ + g₂) i = g₁ i + g₂ i :=
   rfl
-#align dfinsupp.add_apply Dfinsupp.add_apply
+#align dfinsupp.add_apply DFinsupp.add_apply
 -/
 
-#print Dfinsupp.coe_add /-
+#print DFinsupp.coe_add /-
 @[simp]
 theorem coe_add [∀ i, AddZeroClass (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g₁ + g₂) = g₁ + g₂ :=
   rfl
-#align dfinsupp.coe_add Dfinsupp.coe_add
+#align dfinsupp.coe_add DFinsupp.coe_add
 -/
 
 instance [∀ i, AddZeroClass (β i)] : AddZeroClass (Π₀ i, β i) :=
   FunLike.coe_injective.AddZeroClass _ coe_zero coe_add
 
-#print Dfinsupp.hasNatScalar /-
+#print DFinsupp.hasNatScalar /-
 /-- Note the general `dfinsupp.has_smul` instance doesn't apply as `ℕ` is not distributive
 unless `β i`'s addition is commutative. -/
 instance hasNatScalar [∀ i, AddMonoid (β i)] : SMul ℕ (Π₀ i, β i) :=
   ⟨fun c v => v.mapRange (fun _ => (· • ·) c) fun _ => nsmul_zero _⟩
-#align dfinsupp.has_nat_scalar Dfinsupp.hasNatScalar
+#align dfinsupp.has_nat_scalar DFinsupp.hasNatScalar
 -/
 
-#print Dfinsupp.nsmul_apply /-
+#print DFinsupp.nsmul_apply /-
 theorem nsmul_apply [∀ i, AddMonoid (β i)] (b : ℕ) (v : Π₀ i, β i) (i : ι) : (b • v) i = b • v i :=
   rfl
-#align dfinsupp.nsmul_apply Dfinsupp.nsmul_apply
+#align dfinsupp.nsmul_apply DFinsupp.nsmul_apply
 -/
 
-#print Dfinsupp.coe_nsmul /-
+#print DFinsupp.coe_nsmul /-
 @[simp]
 theorem coe_nsmul [∀ i, AddMonoid (β i)] (b : ℕ) (v : Π₀ i, β i) : ⇑(b • v) = b • v :=
   rfl
-#align dfinsupp.coe_nsmul Dfinsupp.coe_nsmul
+#align dfinsupp.coe_nsmul DFinsupp.coe_nsmul
 -/
 
 instance [∀ i, AddMonoid (β i)] : AddMonoid (Π₀ i, β i) :=
   FunLike.coe_injective.AddMonoid _ coe_zero coe_add fun _ _ => coe_nsmul _ _
 
-#print Dfinsupp.coeFnAddMonoidHom /-
+#print DFinsupp.coeFnAddMonoidHom /-
 /-- Coercion from a `dfinsupp` to a pi type is an `add_monoid_hom`. -/
 def coeFnAddMonoidHom [∀ i, AddZeroClass (β i)] : (Π₀ i, β i) →+ ∀ i, β i
     where
   toFun := coeFn
   map_zero' := coe_zero
   map_add' := coe_add
-#align dfinsupp.coe_fn_add_monoid_hom Dfinsupp.coeFnAddMonoidHom
+#align dfinsupp.coe_fn_add_monoid_hom DFinsupp.coeFnAddMonoidHom
 -/
 
-#print Dfinsupp.evalAddMonoidHom /-
+#print DFinsupp.evalAddMonoidHom /-
 /-- Evaluation at a point is an `add_monoid_hom`. This is the finitely-supported version of
 `pi.eval_add_monoid_hom`. -/
 def evalAddMonoidHom [∀ i, AddZeroClass (β i)] (i : ι) : (Π₀ i, β i) →+ β i :=
   (Pi.evalAddMonoidHom β i).comp coeFnAddMonoidHom
-#align dfinsupp.eval_add_monoid_hom Dfinsupp.evalAddMonoidHom
+#align dfinsupp.eval_add_monoid_hom DFinsupp.evalAddMonoidHom
 -/
 
 instance [∀ i, AddCommMonoid (β i)] : AddCommMonoid (Π₀ i, β i) :=
   FunLike.coe_injective.AddCommMonoid _ coe_zero coe_add fun _ _ => coe_nsmul _ _
 
-#print Dfinsupp.coe_finset_sum /-
+#print DFinsupp.coe_finset_sum /-
 @[simp]
 theorem coe_finset_sum {α} [∀ i, AddCommMonoid (β i)] (s : Finset α) (g : α → Π₀ i, β i) :
     ⇑(∑ a in s, g a) = ∑ a in s, g a :=
   (coeFnAddMonoidHom : _ →+ ∀ i, β i).map_sum g s
-#align dfinsupp.coe_finset_sum Dfinsupp.coe_finset_sum
+#align dfinsupp.coe_finset_sum DFinsupp.coe_finset_sum
 -/
 
-#print Dfinsupp.finset_sum_apply /-
+#print DFinsupp.finset_sum_apply /-
 @[simp]
 theorem finset_sum_apply {α} [∀ i, AddCommMonoid (β i)] (s : Finset α) (g : α → Π₀ i, β i) (i : ι) :
     (∑ a in s, g a) i = ∑ a in s, g a i :=
   (evalAddMonoidHom i : _ →+ β i).map_sum g s
-#align dfinsupp.finset_sum_apply Dfinsupp.finset_sum_apply
+#align dfinsupp.finset_sum_apply DFinsupp.finset_sum_apply
 -/
 
 instance [∀ i, AddGroup (β i)] : Neg (Π₀ i, β i) :=
   ⟨fun f => f.mapRange (fun _ => Neg.neg) fun _ => neg_zero⟩
 
-#print Dfinsupp.neg_apply /-
+#print DFinsupp.neg_apply /-
 theorem neg_apply [∀ i, AddGroup (β i)] (g : Π₀ i, β i) (i : ι) : (-g) i = -g i :=
   rfl
-#align dfinsupp.neg_apply Dfinsupp.neg_apply
+#align dfinsupp.neg_apply DFinsupp.neg_apply
 -/
 
-#print Dfinsupp.coe_neg /-
+#print DFinsupp.coe_neg /-
 @[simp]
 theorem coe_neg [∀ i, AddGroup (β i)] (g : Π₀ i, β i) : ⇑(-g) = -g :=
   rfl
-#align dfinsupp.coe_neg Dfinsupp.coe_neg
+#align dfinsupp.coe_neg DFinsupp.coe_neg
 -/
 
 instance [∀ i, AddGroup (β i)] : Sub (Π₀ i, β i) :=
   ⟨zipWith (fun _ => Sub.sub) fun _ => sub_zero 0⟩
 
-#print Dfinsupp.sub_apply /-
+#print DFinsupp.sub_apply /-
 theorem sub_apply [∀ i, AddGroup (β i)] (g₁ g₂ : Π₀ i, β i) (i : ι) : (g₁ - g₂) i = g₁ i - g₂ i :=
   rfl
-#align dfinsupp.sub_apply Dfinsupp.sub_apply
+#align dfinsupp.sub_apply DFinsupp.sub_apply
 -/
 
-#print Dfinsupp.coe_sub /-
+#print DFinsupp.coe_sub /-
 @[simp]
 theorem coe_sub [∀ i, AddGroup (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g₁ - g₂) = g₁ - g₂ :=
   rfl
-#align dfinsupp.coe_sub Dfinsupp.coe_sub
+#align dfinsupp.coe_sub DFinsupp.coe_sub
 -/
 
-#print Dfinsupp.hasIntScalar /-
+#print DFinsupp.hasIntScalar /-
 /-- Note the general `dfinsupp.has_smul` instance doesn't apply as `ℤ` is not distributive
 unless `β i`'s addition is commutative. -/
 instance hasIntScalar [∀ i, AddGroup (β i)] : SMul ℤ (Π₀ i, β i) :=
   ⟨fun c v => v.mapRange (fun _ => (· • ·) c) fun _ => zsmul_zero _⟩
-#align dfinsupp.has_int_scalar Dfinsupp.hasIntScalar
+#align dfinsupp.has_int_scalar DFinsupp.hasIntScalar
 -/
 
-#print Dfinsupp.zsmul_apply /-
+#print DFinsupp.zsmul_apply /-
 theorem zsmul_apply [∀ i, AddGroup (β i)] (b : ℤ) (v : Π₀ i, β i) (i : ι) : (b • v) i = b • v i :=
   rfl
-#align dfinsupp.zsmul_apply Dfinsupp.zsmul_apply
+#align dfinsupp.zsmul_apply DFinsupp.zsmul_apply
 -/
 
-#print Dfinsupp.coe_zsmul /-
+#print DFinsupp.coe_zsmul /-
 @[simp]
 theorem coe_zsmul [∀ i, AddGroup (β i)] (b : ℤ) (v : Π₀ i, β i) : ⇑(b • v) = b • v :=
   rfl
-#align dfinsupp.coe_zsmul Dfinsupp.coe_zsmul
+#align dfinsupp.coe_zsmul DFinsupp.coe_zsmul
 -/
 
 instance [∀ i, AddGroup (β i)] : AddGroup (Π₀ i, β i) :=
@@ -400,19 +400,19 @@ coordinate. -/
 instance [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] : SMul γ (Π₀ i, β i) :=
   ⟨fun c v => v.mapRange (fun _ => (· • ·) c) fun _ => smul_zero _⟩
 
-#print Dfinsupp.smul_apply /-
+#print DFinsupp.smul_apply /-
 theorem smul_apply [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] (b : γ)
     (v : Π₀ i, β i) (i : ι) : (b • v) i = b • v i :=
   rfl
-#align dfinsupp.smul_apply Dfinsupp.smul_apply
+#align dfinsupp.smul_apply DFinsupp.smul_apply
 -/
 
-#print Dfinsupp.coe_smul /-
+#print DFinsupp.coe_smul /-
 @[simp]
 theorem coe_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] (b : γ)
     (v : Π₀ i, β i) : ⇑(b • v) = b • v :=
   rfl
-#align dfinsupp.coe_smul Dfinsupp.coe_smul
+#align dfinsupp.coe_smul DFinsupp.coe_smul
 -/
 
 instance {δ : Type _} [Monoid γ] [Monoid δ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
@@ -439,7 +439,7 @@ instance [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i
 each coordinate. -/
 instance [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (β i)] : Module γ (Π₀ i, β i) :=
   {
-    Dfinsupp.distribMulAction with
+    DFinsupp.distribMulAction with
     zero_smul := fun c => ext fun i => by simp only [smul_apply, zero_smul, zero_apply]
     add_smul := fun c x y => ext fun i => by simp only [add_apply, smul_apply, add_smul] }
 
@@ -447,68 +447,68 @@ end Algebra
 
 section FilterAndSubtypeDomain
 
-#print Dfinsupp.filter /-
+#print DFinsupp.filter /-
 /-- `filter p f` is the function which is `f i` if `p i` is true and 0 otherwise. -/
 def filter [∀ i, Zero (β i)] (p : ι → Prop) [DecidablePred p] (x : Π₀ i, β i) : Π₀ i, β i :=
   ⟨fun i => if p i then x i else 0,
     x.support'.map fun xs =>
       ⟨xs, fun i => (xs.Prop i).imp_right fun H : x i = 0 => by rw [H, if_t_t]⟩⟩
-#align dfinsupp.filter Dfinsupp.filter
+#align dfinsupp.filter DFinsupp.filter
 -/
 
-#print Dfinsupp.filter_apply /-
+#print DFinsupp.filter_apply /-
 @[simp]
 theorem filter_apply [∀ i, Zero (β i)] (p : ι → Prop) [DecidablePred p] (i : ι) (f : Π₀ i, β i) :
     f.filterₓ p i = if p i then f i else 0 :=
   rfl
-#align dfinsupp.filter_apply Dfinsupp.filter_apply
+#align dfinsupp.filter_apply DFinsupp.filter_apply
 -/
 
-#print Dfinsupp.filter_apply_pos /-
+#print DFinsupp.filter_apply_pos /-
 theorem filter_apply_pos [∀ i, Zero (β i)] {p : ι → Prop} [DecidablePred p] (f : Π₀ i, β i) {i : ι}
     (h : p i) : f.filterₓ p i = f i := by simp only [filter_apply, if_pos h]
-#align dfinsupp.filter_apply_pos Dfinsupp.filter_apply_pos
+#align dfinsupp.filter_apply_pos DFinsupp.filter_apply_pos
 -/
 
-#print Dfinsupp.filter_apply_neg /-
+#print DFinsupp.filter_apply_neg /-
 theorem filter_apply_neg [∀ i, Zero (β i)] {p : ι → Prop} [DecidablePred p] (f : Π₀ i, β i) {i : ι}
     (h : ¬p i) : f.filterₓ p i = 0 := by simp only [filter_apply, if_neg h]
-#align dfinsupp.filter_apply_neg Dfinsupp.filter_apply_neg
+#align dfinsupp.filter_apply_neg DFinsupp.filter_apply_neg
 -/
 
-#print Dfinsupp.filter_pos_add_filter_neg /-
+#print DFinsupp.filter_pos_add_filter_neg /-
 theorem filter_pos_add_filter_neg [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i) (p : ι → Prop)
     [DecidablePred p] : (f.filterₓ p + f.filterₓ fun i => ¬p i) = f :=
   ext fun i => by
     simp only [add_apply, filter_apply] <;> split_ifs <;> simp only [add_zero, zero_add]
-#align dfinsupp.filter_pos_add_filter_neg Dfinsupp.filter_pos_add_filter_neg
+#align dfinsupp.filter_pos_add_filter_neg DFinsupp.filter_pos_add_filter_neg
 -/
 
-#print Dfinsupp.filter_zero /-
+#print DFinsupp.filter_zero /-
 @[simp]
 theorem filter_zero [∀ i, Zero (β i)] (p : ι → Prop) [DecidablePred p] :
     (0 : Π₀ i, β i).filterₓ p = 0 := by ext; simp
-#align dfinsupp.filter_zero Dfinsupp.filter_zero
+#align dfinsupp.filter_zero DFinsupp.filter_zero
 -/
 
-#print Dfinsupp.filter_add /-
+#print DFinsupp.filter_add /-
 @[simp]
 theorem filter_add [∀ i, AddZeroClass (β i)] (p : ι → Prop) [DecidablePred p] (f g : Π₀ i, β i) :
     (f + g).filterₓ p = f.filterₓ p + g.filterₓ p := by ext; simp [ite_add_zero]
-#align dfinsupp.filter_add Dfinsupp.filter_add
+#align dfinsupp.filter_add DFinsupp.filter_add
 -/
 
-#print Dfinsupp.filter_smul /-
+#print DFinsupp.filter_smul /-
 @[simp]
 theorem filter_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] (p : ι → Prop)
     [DecidablePred p] (r : γ) (f : Π₀ i, β i) : (r • f).filterₓ p = r • f.filterₓ p := by ext;
   simp [smul_ite]
-#align dfinsupp.filter_smul Dfinsupp.filter_smul
+#align dfinsupp.filter_smul DFinsupp.filter_smul
 -/
 
 variable (γ β)
 
-#print Dfinsupp.filterAddMonoidHom /-
+#print DFinsupp.filterAddMonoidHom /-
 /-- `dfinsupp.filter` as an `add_monoid_hom`. -/
 @[simps]
 def filterAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [DecidablePred p] :
@@ -516,10 +516,10 @@ def filterAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [Decidable
   toFun := filter p
   map_zero' := filter_zero p
   map_add' := filter_add p
-#align dfinsupp.filter_add_monoid_hom Dfinsupp.filterAddMonoidHom
+#align dfinsupp.filter_add_monoid_hom DFinsupp.filterAddMonoidHom
 -/
 
-#print Dfinsupp.filterLinearMap /-
+#print DFinsupp.filterLinearMap /-
 /-- `dfinsupp.filter` as a `linear_map`. -/
 @[simps]
 def filterLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (β i)] (p : ι → Prop)
@@ -528,28 +528,28 @@ def filterLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module 
   toFun := filter p
   map_add' := filter_add p
   map_smul' := filter_smul p
-#align dfinsupp.filter_linear_map Dfinsupp.filterLinearMap
+#align dfinsupp.filter_linear_map DFinsupp.filterLinearMap
 -/
 
 variable {γ β}
 
-#print Dfinsupp.filter_neg /-
+#print DFinsupp.filter_neg /-
 @[simp]
 theorem filter_neg [∀ i, AddGroup (β i)] (p : ι → Prop) [DecidablePred p] (f : Π₀ i, β i) :
     (-f).filterₓ p = -f.filterₓ p :=
   (filterAddMonoidHom β p).map_neg f
-#align dfinsupp.filter_neg Dfinsupp.filter_neg
+#align dfinsupp.filter_neg DFinsupp.filter_neg
 -/
 
-#print Dfinsupp.filter_sub /-
+#print DFinsupp.filter_sub /-
 @[simp]
 theorem filter_sub [∀ i, AddGroup (β i)] (p : ι → Prop) [DecidablePred p] (f g : Π₀ i, β i) :
     (f - g).filterₓ p = f.filterₓ p - g.filterₓ p :=
   (filterAddMonoidHom β p).map_sub f g
-#align dfinsupp.filter_sub Dfinsupp.filter_sub
+#align dfinsupp.filter_sub DFinsupp.filter_sub
 -/
 
-#print Dfinsupp.subtypeDomain /-
+#print DFinsupp.subtypeDomain /-
 /-- `subtype_domain p f` is the restriction of the finitely supported function
   `f` to the subtype `p`. -/
 def subtypeDomain [∀ i, Zero (β i)] (p : ι → Prop) [DecidablePred p] (x : Π₀ i, β i) :
@@ -560,45 +560,45 @@ def subtypeDomain [∀ i, Zero (β i)] (p : ι → Prop) [DecidablePred p] (x :
         (xs.Prop i).imp_left fun H =>
           Multiset.mem_map.2
             ⟨⟨i, Multiset.mem_filter.2 ⟨H, i.2⟩⟩, Multiset.mem_attach _ _, Subtype.eta _ _⟩⟩⟩
-#align dfinsupp.subtype_domain Dfinsupp.subtypeDomain
+#align dfinsupp.subtype_domain DFinsupp.subtypeDomain
 -/
 
-#print Dfinsupp.subtypeDomain_zero /-
+#print DFinsupp.subtypeDomain_zero /-
 @[simp]
 theorem subtypeDomain_zero [∀ i, Zero (β i)] {p : ι → Prop} [DecidablePred p] :
     subtypeDomain p (0 : Π₀ i, β i) = 0 :=
   rfl
-#align dfinsupp.subtype_domain_zero Dfinsupp.subtypeDomain_zero
+#align dfinsupp.subtype_domain_zero DFinsupp.subtypeDomain_zero
 -/
 
-#print Dfinsupp.subtypeDomain_apply /-
+#print DFinsupp.subtypeDomain_apply /-
 @[simp]
 theorem subtypeDomain_apply [∀ i, Zero (β i)] {p : ι → Prop} [DecidablePred p] {i : Subtype p}
     {v : Π₀ i, β i} : (subtypeDomain p v) i = v i :=
   rfl
-#align dfinsupp.subtype_domain_apply Dfinsupp.subtypeDomain_apply
+#align dfinsupp.subtype_domain_apply DFinsupp.subtypeDomain_apply
 -/
 
-#print Dfinsupp.subtypeDomain_add /-
+#print DFinsupp.subtypeDomain_add /-
 @[simp]
 theorem subtypeDomain_add [∀ i, AddZeroClass (β i)] {p : ι → Prop} [DecidablePred p]
     (v v' : Π₀ i, β i) : (v + v').subtypeDomain p = v.subtypeDomain p + v'.subtypeDomain p :=
   coeFn_injective rfl
-#align dfinsupp.subtype_domain_add Dfinsupp.subtypeDomain_add
+#align dfinsupp.subtype_domain_add DFinsupp.subtypeDomain_add
 -/
 
-#print Dfinsupp.subtypeDomain_smul /-
+#print DFinsupp.subtypeDomain_smul /-
 @[simp]
 theorem subtypeDomain_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
     {p : ι → Prop} [DecidablePred p] (r : γ) (f : Π₀ i, β i) :
     (r • f).subtypeDomain p = r • f.subtypeDomain p :=
   coeFn_injective rfl
-#align dfinsupp.subtype_domain_smul Dfinsupp.subtypeDomain_smul
+#align dfinsupp.subtype_domain_smul DFinsupp.subtypeDomain_smul
 -/
 
 variable (γ β)
 
-#print Dfinsupp.subtypeDomainAddMonoidHom /-
+#print DFinsupp.subtypeDomainAddMonoidHom /-
 /-- `subtype_domain` but as an `add_monoid_hom`. -/
 @[simps]
 def subtypeDomainAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [DecidablePred p] :
@@ -607,10 +607,10 @@ def subtypeDomainAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [De
   toFun := subtypeDomain p
   map_zero' := subtypeDomain_zero
   map_add' := subtypeDomain_add
-#align dfinsupp.subtype_domain_add_monoid_hom Dfinsupp.subtypeDomainAddMonoidHom
+#align dfinsupp.subtype_domain_add_monoid_hom DFinsupp.subtypeDomainAddMonoidHom
 -/
 
-#print Dfinsupp.subtypeDomainLinearMap /-
+#print DFinsupp.subtypeDomainLinearMap /-
 /-- `dfinsupp.subtype_domain` as a `linear_map`. -/
 @[simps]
 def subtypeDomainLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (β i)]
@@ -619,25 +619,25 @@ def subtypeDomainLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, M
   toFun := subtypeDomain p
   map_add' := subtypeDomain_add
   map_smul' := subtypeDomain_smul
-#align dfinsupp.subtype_domain_linear_map Dfinsupp.subtypeDomainLinearMap
+#align dfinsupp.subtype_domain_linear_map DFinsupp.subtypeDomainLinearMap
 -/
 
 variable {γ β}
 
-#print Dfinsupp.subtypeDomain_neg /-
+#print DFinsupp.subtypeDomain_neg /-
 @[simp]
 theorem subtypeDomain_neg [∀ i, AddGroup (β i)] {p : ι → Prop} [DecidablePred p] {v : Π₀ i, β i} :
     (-v).subtypeDomain p = -v.subtypeDomain p :=
   coeFn_injective rfl
-#align dfinsupp.subtype_domain_neg Dfinsupp.subtypeDomain_neg
+#align dfinsupp.subtype_domain_neg DFinsupp.subtypeDomain_neg
 -/
 
-#print Dfinsupp.subtypeDomain_sub /-
+#print DFinsupp.subtypeDomain_sub /-
 @[simp]
 theorem subtypeDomain_sub [∀ i, AddGroup (β i)] {p : ι → Prop} [DecidablePred p]
     {v v' : Π₀ i, β i} : (v - v').subtypeDomain p = v.subtypeDomain p - v'.subtypeDomain p :=
   coeFn_injective rfl
-#align dfinsupp.subtype_domain_sub Dfinsupp.subtypeDomain_sub
+#align dfinsupp.subtype_domain_sub DFinsupp.subtypeDomain_sub
 -/
 
 end FilterAndSubtypeDomain
@@ -648,46 +648,46 @@ section Basic
 
 variable [∀ i, Zero (β i)]
 
-#print Dfinsupp.finite_support /-
+#print DFinsupp.finite_support /-
 theorem finite_support (f : Π₀ i, β i) : Set.Finite {i | f i ≠ 0} := by
   classical exact
     Trunc.induction_on f.support' fun xs =>
       (Multiset.toFinset ↑xs).finite_toSet.Subset fun i H =>
         Multiset.mem_toFinset.2 ((xs.Prop i).resolve_right H)
-#align dfinsupp.finite_support Dfinsupp.finite_support
+#align dfinsupp.finite_support DFinsupp.finite_support
 -/
 
-#print Dfinsupp.mk /-
+#print DFinsupp.mk /-
 /-- Create an element of `Π₀ i, β i` from a finset `s` and a function `x`
 defined on this `finset`. -/
 def mk (s : Finset ι) (x : ∀ i : (↑s : Set ι), β (i : ι)) : Π₀ i, β i :=
   ⟨fun i => if H : i ∈ s then x ⟨i, H⟩ else 0,
     Trunc.mk ⟨s.1, fun i => if H : i ∈ s then Or.inl H else Or.inr <| dif_neg H⟩⟩
-#align dfinsupp.mk Dfinsupp.mk
+#align dfinsupp.mk DFinsupp.mk
 -/
 
 variable {s : Finset ι} {x : ∀ i : (↑s : Set ι), β i} {i : ι}
 
-#print Dfinsupp.mk_apply /-
+#print DFinsupp.mk_apply /-
 @[simp]
 theorem mk_apply : (mk s x : ∀ i, β i) i = if H : i ∈ s then x ⟨i, H⟩ else 0 :=
   rfl
-#align dfinsupp.mk_apply Dfinsupp.mk_apply
+#align dfinsupp.mk_apply DFinsupp.mk_apply
 -/
 
-#print Dfinsupp.mk_of_mem /-
+#print DFinsupp.mk_of_mem /-
 theorem mk_of_mem (hi : i ∈ s) : (mk s x : ∀ i, β i) i = x ⟨i, hi⟩ :=
   dif_pos hi
-#align dfinsupp.mk_of_mem Dfinsupp.mk_of_mem
+#align dfinsupp.mk_of_mem DFinsupp.mk_of_mem
 -/
 
-#print Dfinsupp.mk_of_not_mem /-
+#print DFinsupp.mk_of_not_mem /-
 theorem mk_of_not_mem (hi : i ∉ s) : (mk s x : ∀ i, β i) i = 0 :=
   dif_neg hi
-#align dfinsupp.mk_of_not_mem Dfinsupp.mk_of_not_mem
+#align dfinsupp.mk_of_not_mem DFinsupp.mk_of_not_mem
 -/
 
-#print Dfinsupp.mk_injective /-
+#print DFinsupp.mk_injective /-
 theorem mk_injective (s : Finset ι) : Function.Injective (@mk ι β _ _ s) :=
   by
   intro x y H
@@ -697,22 +697,22 @@ theorem mk_injective (s : Finset ι) : Function.Injective (@mk ι β _ _ s) :=
   change i ∈ s at hi 
   dsimp only [mk_apply, Subtype.coe_mk] at h1 
   simpa only [dif_pos hi] using h1
-#align dfinsupp.mk_injective Dfinsupp.mk_injective
+#align dfinsupp.mk_injective DFinsupp.mk_injective
 -/
 
-#print Dfinsupp.unique /-
+#print DFinsupp.unique /-
 instance unique [∀ i, Subsingleton (β i)] : Unique (Π₀ i, β i) :=
   FunLike.coe_injective.unique
-#align dfinsupp.unique Dfinsupp.unique
+#align dfinsupp.unique DFinsupp.unique
 -/
 
-#print Dfinsupp.uniqueOfIsEmpty /-
+#print DFinsupp.uniqueOfIsEmpty /-
 instance uniqueOfIsEmpty [IsEmpty ι] : Unique (Π₀ i, β i) :=
   FunLike.coe_injective.unique
-#align dfinsupp.unique_of_is_empty Dfinsupp.uniqueOfIsEmpty
+#align dfinsupp.unique_of_is_empty DFinsupp.uniqueOfIsEmpty
 -/
 
-#print Dfinsupp.equivFunOnFintype /-
+#print DFinsupp.equivFunOnFintype /-
 /-- Given `fintype ι`, `equiv_fun_on_fintype` is the `equiv` between `Π₀ i, β i` and `Π i, β i`.
   (All dependent functions on a finite type are finitely supported.) -/
 @[simps apply]
@@ -722,109 +722,109 @@ def equivFunOnFintype [Fintype ι] : (Π₀ i, β i) ≃ ∀ i, β i
   invFun f := ⟨f, Trunc.mk ⟨Finset.univ.1, fun i => Or.inl <| Finset.mem_univ_val _⟩⟩
   left_inv x := coeFn_injective rfl
   right_inv x := rfl
-#align dfinsupp.equiv_fun_on_fintype Dfinsupp.equivFunOnFintype
+#align dfinsupp.equiv_fun_on_fintype DFinsupp.equivFunOnFintype
 -/
 
-#print Dfinsupp.equivFunOnFintype_symm_coe /-
+#print DFinsupp.equivFunOnFintype_symm_coe /-
 @[simp]
 theorem equivFunOnFintype_symm_coe [Fintype ι] (f : Π₀ i, β i) : equivFunOnFintype.symm f = f :=
   Equiv.symm_apply_apply _ _
-#align dfinsupp.equiv_fun_on_fintype_symm_coe Dfinsupp.equivFunOnFintype_symm_coe
+#align dfinsupp.equiv_fun_on_fintype_symm_coe DFinsupp.equivFunOnFintype_symm_coe
 -/
 
-#print Dfinsupp.single /-
+#print DFinsupp.single /-
 /-- The function `single i b : Π₀ i, β i` sends `i` to `b`
 and all other points to `0`. -/
 def single (i : ι) (b : β i) : Π₀ i, β i :=
   ⟨Pi.single i b,
     Trunc.mk ⟨{i}, fun j => (Decidable.eq_or_ne j i).imp (by simp) fun h => Pi.single_eq_of_ne h _⟩⟩
-#align dfinsupp.single Dfinsupp.single
+#align dfinsupp.single DFinsupp.single
 -/
 
-#print Dfinsupp.single_eq_pi_single /-
+#print DFinsupp.single_eq_pi_single /-
 theorem single_eq_pi_single {i b} : ⇑(single i b : Π₀ i, β i) = Pi.single i b :=
   rfl
-#align dfinsupp.single_eq_pi_single Dfinsupp.single_eq_pi_single
+#align dfinsupp.single_eq_pi_single DFinsupp.single_eq_pi_single
 -/
 
-#print Dfinsupp.single_apply /-
+#print DFinsupp.single_apply /-
 @[simp]
 theorem single_apply {i i' b} :
     (single i b : Π₀ i, β i) i' = if h : i = i' then Eq.recOn h b else 0 :=
   by
   rw [single_eq_pi_single, Pi.single, Function.update]
   simp [@eq_comm _ i i']
-#align dfinsupp.single_apply Dfinsupp.single_apply
+#align dfinsupp.single_apply DFinsupp.single_apply
 -/
 
-#print Dfinsupp.single_zero /-
+#print DFinsupp.single_zero /-
 @[simp]
 theorem single_zero (i) : (single i 0 : Π₀ i, β i) = 0 :=
   FunLike.coe_injective <| Pi.single_zero _
-#align dfinsupp.single_zero Dfinsupp.single_zero
+#align dfinsupp.single_zero DFinsupp.single_zero
 -/
 
-#print Dfinsupp.single_eq_same /-
+#print DFinsupp.single_eq_same /-
 @[simp]
 theorem single_eq_same {i b} : (single i b : Π₀ i, β i) i = b := by
   simp only [single_apply, dif_pos rfl]
-#align dfinsupp.single_eq_same Dfinsupp.single_eq_same
+#align dfinsupp.single_eq_same DFinsupp.single_eq_same
 -/
 
-#print Dfinsupp.single_eq_of_ne /-
+#print DFinsupp.single_eq_of_ne /-
 theorem single_eq_of_ne {i i' b} (h : i ≠ i') : (single i b : Π₀ i, β i) i' = 0 := by
   simp only [single_apply, dif_neg h]
-#align dfinsupp.single_eq_of_ne Dfinsupp.single_eq_of_ne
+#align dfinsupp.single_eq_of_ne DFinsupp.single_eq_of_ne
 -/
 
-#print Dfinsupp.single_injective /-
+#print DFinsupp.single_injective /-
 theorem single_injective {i} : Function.Injective (single i : β i → Π₀ i, β i) := fun x y H =>
   Pi.single_injective β i <| coeFn_injective.eq_iff.mpr H
-#align dfinsupp.single_injective Dfinsupp.single_injective
+#align dfinsupp.single_injective DFinsupp.single_injective
 -/
 
-#print Dfinsupp.single_eq_single_iff /-
+#print DFinsupp.single_eq_single_iff /-
 /-- Like `finsupp.single_eq_single_iff`, but with a `heq` due to dependent types -/
 theorem single_eq_single_iff (i j : ι) (xi : β i) (xj : β j) :
-    Dfinsupp.single i xi = Dfinsupp.single j xj ↔ i = j ∧ HEq xi xj ∨ xi = 0 ∧ xj = 0 :=
+    DFinsupp.single i xi = DFinsupp.single j xj ↔ i = j ∧ HEq xi xj ∨ xi = 0 ∧ xj = 0 :=
   by
   constructor
   · intro h
     by_cases hij : i = j
     · subst hij
-      exact Or.inl ⟨rfl, hEq_of_eq (Dfinsupp.single_injective h)⟩
-    · have h_coe : ⇑(Dfinsupp.single i xi) = Dfinsupp.single j xj := congr_arg coeFn h
+      exact Or.inl ⟨rfl, hEq_of_eq (DFinsupp.single_injective h)⟩
+    · have h_coe : ⇑(DFinsupp.single i xi) = DFinsupp.single j xj := congr_arg coeFn h
       have hci := congr_fun h_coe i
       have hcj := congr_fun h_coe j
-      rw [Dfinsupp.single_eq_same] at hci hcj 
-      rw [Dfinsupp.single_eq_of_ne (Ne.symm hij)] at hci 
-      rw [Dfinsupp.single_eq_of_ne hij] at hcj 
+      rw [DFinsupp.single_eq_same] at hci hcj 
+      rw [DFinsupp.single_eq_of_ne (Ne.symm hij)] at hci 
+      rw [DFinsupp.single_eq_of_ne hij] at hcj 
       exact Or.inr ⟨hci, hcj.symm⟩
   · rintro (⟨rfl, hxi⟩ | ⟨hi, hj⟩)
     · rw [eq_of_hEq hxi]
-    · rw [hi, hj, Dfinsupp.single_zero, Dfinsupp.single_zero]
-#align dfinsupp.single_eq_single_iff Dfinsupp.single_eq_single_iff
+    · rw [hi, hj, DFinsupp.single_zero, DFinsupp.single_zero]
+#align dfinsupp.single_eq_single_iff DFinsupp.single_eq_single_iff
 -/
 
-#print Dfinsupp.single_left_injective /-
+#print DFinsupp.single_left_injective /-
 /-- `dfinsupp.single a b` is injective in `a`. For the statement that it is injective in `b`, see
 `dfinsupp.single_injective` -/
 theorem single_left_injective {b : ∀ i : ι, β i} (h : ∀ i, b i ≠ 0) :
     Function.Injective (fun i => single i (b i) : ι → Π₀ i, β i) := fun a a' H =>
   (((single_eq_single_iff _ _ _ _).mp H).resolve_right fun hb => h _ hb.1).left
-#align dfinsupp.single_left_injective Dfinsupp.single_left_injective
+#align dfinsupp.single_left_injective DFinsupp.single_left_injective
 -/
 
-#print Dfinsupp.single_eq_zero /-
+#print DFinsupp.single_eq_zero /-
 @[simp]
 theorem single_eq_zero {i : ι} {xi : β i} : single i xi = 0 ↔ xi = 0 :=
   by
   rw [← single_zero i, single_eq_single_iff]
   simp
-#align dfinsupp.single_eq_zero Dfinsupp.single_eq_zero
+#align dfinsupp.single_eq_zero DFinsupp.single_eq_zero
 -/
 
-#print Dfinsupp.filter_single /-
+#print DFinsupp.filter_single /-
 theorem filter_single (p : ι → Prop) [DecidablePred p] (i : ι) (x : β i) :
     (single i x).filterₓ p = if p i then single i x else 0 :=
   by
@@ -835,144 +835,144 @@ theorem filter_single (p : ι → Prop) [DecidablePred p] (i : ι) (x : β i) :
   obtain rfl | hij := Decidable.eq_or_ne i j
   · rfl
   · rw [single_eq_of_ne hij, if_t_t, if_t_t]
-#align dfinsupp.filter_single Dfinsupp.filter_single
+#align dfinsupp.filter_single DFinsupp.filter_single
 -/
 
-#print Dfinsupp.filter_single_pos /-
+#print DFinsupp.filter_single_pos /-
 @[simp]
 theorem filter_single_pos {p : ι → Prop} [DecidablePred p] (i : ι) (x : β i) (h : p i) :
     (single i x).filterₓ p = single i x := by rw [filter_single, if_pos h]
-#align dfinsupp.filter_single_pos Dfinsupp.filter_single_pos
+#align dfinsupp.filter_single_pos DFinsupp.filter_single_pos
 -/
 
-#print Dfinsupp.filter_single_neg /-
+#print DFinsupp.filter_single_neg /-
 @[simp]
 theorem filter_single_neg {p : ι → Prop} [DecidablePred p] (i : ι) (x : β i) (h : ¬p i) :
     (single i x).filterₓ p = 0 := by rw [filter_single, if_neg h]
-#align dfinsupp.filter_single_neg Dfinsupp.filter_single_neg
+#align dfinsupp.filter_single_neg DFinsupp.filter_single_neg
 -/
 
-#print Dfinsupp.single_eq_of_sigma_eq /-
+#print DFinsupp.single_eq_of_sigma_eq /-
 /-- Equality of sigma types is sufficient (but not necessary) to show equality of `dfinsupp`s. -/
 theorem single_eq_of_sigma_eq {i j} {xi : β i} {xj : β j} (h : (⟨i, xi⟩ : Sigma β) = ⟨j, xj⟩) :
-    Dfinsupp.single i xi = Dfinsupp.single j xj := by cases h; rfl
-#align dfinsupp.single_eq_of_sigma_eq Dfinsupp.single_eq_of_sigma_eq
+    DFinsupp.single i xi = DFinsupp.single j xj := by cases h; rfl
+#align dfinsupp.single_eq_of_sigma_eq DFinsupp.single_eq_of_sigma_eq
 -/
 
-#print Dfinsupp.equivFunOnFintype_single /-
+#print DFinsupp.equivFunOnFintype_single /-
 @[simp]
 theorem equivFunOnFintype_single [Fintype ι] (i : ι) (m : β i) :
-    (@Dfinsupp.equivFunOnFintype ι β _ _) (Dfinsupp.single i m) = Pi.single i m := by ext;
-  simp [Dfinsupp.single_eq_pi_single]
-#align dfinsupp.equiv_fun_on_fintype_single Dfinsupp.equivFunOnFintype_single
+    (@DFinsupp.equivFunOnFintype ι β _ _) (DFinsupp.single i m) = Pi.single i m := by ext;
+  simp [DFinsupp.single_eq_pi_single]
+#align dfinsupp.equiv_fun_on_fintype_single DFinsupp.equivFunOnFintype_single
 -/
 
-#print Dfinsupp.equivFunOnFintype_symm_single /-
+#print DFinsupp.equivFunOnFintype_symm_single /-
 @[simp]
 theorem equivFunOnFintype_symm_single [Fintype ι] (i : ι) (m : β i) :
-    (@Dfinsupp.equivFunOnFintype ι β _ _).symm (Pi.single i m) = Dfinsupp.single i m := by ext i';
+    (@DFinsupp.equivFunOnFintype ι β _ _).symm (Pi.single i m) = DFinsupp.single i m := by ext i';
   simp only [← single_eq_pi_single, equiv_fun_on_fintype_symm_coe]
-#align dfinsupp.equiv_fun_on_fintype_symm_single Dfinsupp.equivFunOnFintype_symm_single
+#align dfinsupp.equiv_fun_on_fintype_symm_single DFinsupp.equivFunOnFintype_symm_single
 -/
 
-#print Dfinsupp.erase /-
+#print DFinsupp.erase /-
 /-- Redefine `f i` to be `0`. -/
 def erase (i : ι) (x : Π₀ i, β i) : Π₀ i, β i :=
   ⟨fun j => if j = i then 0 else x.1 j,
     x.support'.map fun xs => ⟨xs, fun j => (xs.Prop j).imp_right fun H => by simp only [H, if_t_t]⟩⟩
-#align dfinsupp.erase Dfinsupp.erase
+#align dfinsupp.erase DFinsupp.erase
 -/
 
-#print Dfinsupp.erase_apply /-
+#print DFinsupp.erase_apply /-
 @[simp]
 theorem erase_apply {i j : ι} {f : Π₀ i, β i} : (f.eraseₓ i) j = if j = i then 0 else f j :=
   rfl
-#align dfinsupp.erase_apply Dfinsupp.erase_apply
+#align dfinsupp.erase_apply DFinsupp.erase_apply
 -/
 
-#print Dfinsupp.erase_same /-
+#print DFinsupp.erase_same /-
 @[simp]
 theorem erase_same {i : ι} {f : Π₀ i, β i} : (f.eraseₓ i) i = 0 := by simp
-#align dfinsupp.erase_same Dfinsupp.erase_same
+#align dfinsupp.erase_same DFinsupp.erase_same
 -/
 
-#print Dfinsupp.erase_ne /-
+#print DFinsupp.erase_ne /-
 theorem erase_ne {i i' : ι} {f : Π₀ i, β i} (h : i' ≠ i) : (f.eraseₓ i) i' = f i' := by simp [h]
-#align dfinsupp.erase_ne Dfinsupp.erase_ne
+#align dfinsupp.erase_ne DFinsupp.erase_ne
 -/
 
-#print Dfinsupp.piecewise_single_erase /-
+#print DFinsupp.piecewise_single_erase /-
 theorem piecewise_single_erase (x : Π₀ i, β i) (i : ι) :
     (single i (x i)).piecewise (x.eraseₓ i) {i} = x :=
   by
   ext j; rw [piecewise_apply]; split_ifs
   · rw [(id h : j = i), single_eq_same]
   · exact erase_ne h
-#align dfinsupp.piecewise_single_erase Dfinsupp.piecewise_single_erase
+#align dfinsupp.piecewise_single_erase DFinsupp.piecewise_single_erase
 -/
 
-#print Dfinsupp.erase_eq_sub_single /-
+#print DFinsupp.erase_eq_sub_single /-
 theorem erase_eq_sub_single {β : ι → Type _} [∀ i, AddGroup (β i)] (f : Π₀ i, β i) (i : ι) :
     f.eraseₓ i = f - single i (f i) := by
   ext j
   rcases eq_or_ne i j with (rfl | h)
   · simp
   · simp [erase_ne h.symm, single_eq_of_ne h]
-#align dfinsupp.erase_eq_sub_single Dfinsupp.erase_eq_sub_single
+#align dfinsupp.erase_eq_sub_single DFinsupp.erase_eq_sub_single
 -/
 
-#print Dfinsupp.erase_zero /-
+#print DFinsupp.erase_zero /-
 @[simp]
 theorem erase_zero (i : ι) : erase i (0 : Π₀ i, β i) = 0 :=
   ext fun _ => if_t_t _ _
-#align dfinsupp.erase_zero Dfinsupp.erase_zero
+#align dfinsupp.erase_zero DFinsupp.erase_zero
 -/
 
-#print Dfinsupp.filter_ne_eq_erase /-
+#print DFinsupp.filter_ne_eq_erase /-
 @[simp]
 theorem filter_ne_eq_erase (f : Π₀ i, β i) (i : ι) : f.filterₓ (· ≠ i) = f.eraseₓ i :=
   by
   ext1 j
-  simp only [Dfinsupp.filter_apply, Dfinsupp.erase_apply, ite_not]
-#align dfinsupp.filter_ne_eq_erase Dfinsupp.filter_ne_eq_erase
+  simp only [DFinsupp.filter_apply, DFinsupp.erase_apply, ite_not]
+#align dfinsupp.filter_ne_eq_erase DFinsupp.filter_ne_eq_erase
 -/
 
-#print Dfinsupp.filter_ne_eq_erase' /-
+#print DFinsupp.filter_ne_eq_erase' /-
 @[simp]
 theorem filter_ne_eq_erase' (f : Π₀ i, β i) (i : ι) : f.filterₓ ((· ≠ ·) i) = f.eraseₓ i :=
   by
   rw [← filter_ne_eq_erase f i]
   congr with j
   exact ne_comm
-#align dfinsupp.filter_ne_eq_erase' Dfinsupp.filter_ne_eq_erase'
+#align dfinsupp.filter_ne_eq_erase' DFinsupp.filter_ne_eq_erase'
 -/
 
-#print Dfinsupp.erase_single /-
+#print DFinsupp.erase_single /-
 theorem erase_single (j : ι) (i : ι) (x : β i) :
     (single i x).eraseₓ j = if i = j then 0 else single i x := by
   rw [← filter_ne_eq_erase, filter_single, ite_not]
-#align dfinsupp.erase_single Dfinsupp.erase_single
+#align dfinsupp.erase_single DFinsupp.erase_single
 -/
 
-#print Dfinsupp.erase_single_same /-
+#print DFinsupp.erase_single_same /-
 @[simp]
 theorem erase_single_same (i : ι) (x : β i) : (single i x).eraseₓ i = 0 := by
   rw [erase_single, if_pos rfl]
-#align dfinsupp.erase_single_same Dfinsupp.erase_single_same
+#align dfinsupp.erase_single_same DFinsupp.erase_single_same
 -/
 
-#print Dfinsupp.erase_single_ne /-
+#print DFinsupp.erase_single_ne /-
 @[simp]
 theorem erase_single_ne {i j : ι} (x : β i) (h : i ≠ j) : (single i x).eraseₓ j = single i x := by
   rw [erase_single, if_neg h]
-#align dfinsupp.erase_single_ne Dfinsupp.erase_single_ne
+#align dfinsupp.erase_single_ne DFinsupp.erase_single_ne
 -/
 
 section Update
 
 variable (f : Π₀ i, β i) (i) (b : β i)
 
-#print Dfinsupp.update /-
+#print DFinsupp.update /-
 /-- Replace the value of a `Π₀ i, β i` at a given point `i : ι` by a given value `b : β i`.
 If `b = 0`, this amounts to removing `i` from the support.
 Otherwise, `i` is added to it.
@@ -987,25 +987,25 @@ def update : Π₀ i, β i :=
         · obtain hj | (hj : f j = 0) := s.prop j
           · exact Or.inl (Multiset.mem_cons_of_mem hj)
           · exact Or.inr ((Function.update_noteq hi.symm b _).trans hj)⟩⟩
-#align dfinsupp.update Dfinsupp.update
+#align dfinsupp.update DFinsupp.update
 -/
 
 variable (j : ι)
 
-#print Dfinsupp.coe_update /-
+#print DFinsupp.coe_update /-
 @[simp]
 theorem coe_update : (f.update i b : ∀ i : ι, β i) = Function.update f i b :=
   rfl
-#align dfinsupp.coe_update Dfinsupp.coe_update
+#align dfinsupp.coe_update DFinsupp.coe_update
 -/
 
-#print Dfinsupp.update_self /-
+#print DFinsupp.update_self /-
 @[simp]
 theorem update_self : f.update i (f i) = f := by ext; simp
-#align dfinsupp.update_self Dfinsupp.update_self
+#align dfinsupp.update_self DFinsupp.update_self
 -/
 
-#print Dfinsupp.update_eq_erase /-
+#print DFinsupp.update_eq_erase /-
 @[simp]
 theorem update_eq_erase : f.update i 0 = f.eraseₓ i :=
   by
@@ -1013,10 +1013,10 @@ theorem update_eq_erase : f.update i 0 = f.eraseₓ i :=
   rcases eq_or_ne i j with (rfl | hi)
   · simp
   · simp [hi.symm]
-#align dfinsupp.update_eq_erase Dfinsupp.update_eq_erase
+#align dfinsupp.update_eq_erase DFinsupp.update_eq_erase
 -/
 
-#print Dfinsupp.update_eq_single_add_erase /-
+#print DFinsupp.update_eq_single_add_erase /-
 theorem update_eq_single_add_erase {β : ι → Type _} [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i)
     (i : ι) (b : β i) : f.update i b = single i b + f.eraseₓ i :=
   by
@@ -1024,10 +1024,10 @@ theorem update_eq_single_add_erase {β : ι → Type _} [∀ i, AddZeroClass (β
   rcases eq_or_ne i j with (rfl | h)
   · simp
   · simp [Function.update_noteq h.symm, h, erase_ne, h.symm]
-#align dfinsupp.update_eq_single_add_erase Dfinsupp.update_eq_single_add_erase
+#align dfinsupp.update_eq_single_add_erase DFinsupp.update_eq_single_add_erase
 -/
 
-#print Dfinsupp.update_eq_erase_add_single /-
+#print DFinsupp.update_eq_erase_add_single /-
 theorem update_eq_erase_add_single {β : ι → Type _} [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i)
     (i : ι) (b : β i) : f.update i b = f.eraseₓ i + single i b :=
   by
@@ -1035,14 +1035,14 @@ theorem update_eq_erase_add_single {β : ι → Type _} [∀ i, AddZeroClass (β
   rcases eq_or_ne i j with (rfl | h)
   · simp
   · simp [Function.update_noteq h.symm, h, erase_ne, h.symm]
-#align dfinsupp.update_eq_erase_add_single Dfinsupp.update_eq_erase_add_single
+#align dfinsupp.update_eq_erase_add_single DFinsupp.update_eq_erase_add_single
 -/
 
-#print Dfinsupp.update_eq_sub_add_single /-
+#print DFinsupp.update_eq_sub_add_single /-
 theorem update_eq_sub_add_single {β : ι → Type _} [∀ i, AddGroup (β i)] (f : Π₀ i, β i) (i : ι)
     (b : β i) : f.update i b = f - single i (f i) + single i b := by
   rw [update_eq_erase_add_single f i b, erase_eq_sub_single f i]
-#align dfinsupp.update_eq_sub_add_single Dfinsupp.update_eq_sub_add_single
+#align dfinsupp.update_eq_sub_add_single DFinsupp.update_eq_sub_add_single
 -/
 
 end Update
@@ -1053,26 +1053,26 @@ section AddMonoid
 
 variable [∀ i, AddZeroClass (β i)]
 
-#print Dfinsupp.single_add /-
+#print DFinsupp.single_add /-
 @[simp]
 theorem single_add (i : ι) (b₁ b₂ : β i) : single i (b₁ + b₂) = single i b₁ + single i b₂ :=
   ext fun i' => by
     by_cases h : i = i'
     · subst h; simp only [add_apply, single_eq_same]
     · simp only [add_apply, single_eq_of_ne h, zero_add]
-#align dfinsupp.single_add Dfinsupp.single_add
+#align dfinsupp.single_add DFinsupp.single_add
 -/
 
-#print Dfinsupp.erase_add /-
+#print DFinsupp.erase_add /-
 @[simp]
 theorem erase_add (i : ι) (f₁ f₂ : Π₀ i, β i) : erase i (f₁ + f₂) = erase i f₁ + erase i f₂ :=
   ext fun _ => by simp [ite_zero_add]
-#align dfinsupp.erase_add Dfinsupp.erase_add
+#align dfinsupp.erase_add DFinsupp.erase_add
 -/
 
 variable (β)
 
-#print Dfinsupp.singleAddHom /-
+#print DFinsupp.singleAddHom /-
 /-- `dfinsupp.single` as an `add_monoid_hom`. -/
 @[simps]
 def singleAddHom (i : ι) : β i →+ Π₀ i, β i
@@ -1080,10 +1080,10 @@ def singleAddHom (i : ι) : β i →+ Π₀ i, β i
   toFun := single i
   map_zero' := single_zero i
   map_add' := single_add i
-#align dfinsupp.single_add_hom Dfinsupp.singleAddHom
+#align dfinsupp.single_add_hom DFinsupp.singleAddHom
 -/
 
-#print Dfinsupp.eraseAddHom /-
+#print DFinsupp.eraseAddHom /-
 /-- `dfinsupp.erase` as an `add_monoid_hom`. -/
 @[simps]
 def eraseAddHom (i : ι) : (Π₀ i, β i) →+ Π₀ i, β i
@@ -1091,64 +1091,64 @@ def eraseAddHom (i : ι) : (Π₀ i, β i) →+ Π₀ i, β i
   toFun := erase i
   map_zero' := erase_zero i
   map_add' := erase_add i
-#align dfinsupp.erase_add_hom Dfinsupp.eraseAddHom
+#align dfinsupp.erase_add_hom DFinsupp.eraseAddHom
 -/
 
 variable {β}
 
-#print Dfinsupp.single_neg /-
+#print DFinsupp.single_neg /-
 @[simp]
 theorem single_neg {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (x : β i) :
     single i (-x) = -single i x :=
   (singleAddHom β i).map_neg x
-#align dfinsupp.single_neg Dfinsupp.single_neg
+#align dfinsupp.single_neg DFinsupp.single_neg
 -/
 
-#print Dfinsupp.single_sub /-
+#print DFinsupp.single_sub /-
 @[simp]
 theorem single_sub {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (x y : β i) :
     single i (x - y) = single i x - single i y :=
   (singleAddHom β i).map_sub x y
-#align dfinsupp.single_sub Dfinsupp.single_sub
+#align dfinsupp.single_sub DFinsupp.single_sub
 -/
 
-#print Dfinsupp.erase_neg /-
+#print DFinsupp.erase_neg /-
 @[simp]
 theorem erase_neg {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (f : Π₀ i, β i) :
     (-f).eraseₓ i = -f.eraseₓ i :=
   (eraseAddHom β i).map_neg f
-#align dfinsupp.erase_neg Dfinsupp.erase_neg
+#align dfinsupp.erase_neg DFinsupp.erase_neg
 -/
 
-#print Dfinsupp.erase_sub /-
+#print DFinsupp.erase_sub /-
 @[simp]
 theorem erase_sub {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (f g : Π₀ i, β i) :
     (f - g).eraseₓ i = f.eraseₓ i - g.eraseₓ i :=
   (eraseAddHom β i).map_sub f g
-#align dfinsupp.erase_sub Dfinsupp.erase_sub
+#align dfinsupp.erase_sub DFinsupp.erase_sub
 -/
 
-#print Dfinsupp.single_add_erase /-
+#print DFinsupp.single_add_erase /-
 theorem single_add_erase (i : ι) (f : Π₀ i, β i) : single i (f i) + f.eraseₓ i = f :=
   ext fun i' =>
     if h : i = i' then by
       subst h <;> simp only [add_apply, single_apply, erase_apply, dif_pos rfl, if_pos, add_zero]
     else by
       simp only [add_apply, single_apply, erase_apply, dif_neg h, if_neg (Ne.symm h), zero_add]
-#align dfinsupp.single_add_erase Dfinsupp.single_add_erase
+#align dfinsupp.single_add_erase DFinsupp.single_add_erase
 -/
 
-#print Dfinsupp.erase_add_single /-
+#print DFinsupp.erase_add_single /-
 theorem erase_add_single (i : ι) (f : Π₀ i, β i) : f.eraseₓ i + single i (f i) = f :=
   ext fun i' =>
     if h : i = i' then by
       subst h <;> simp only [add_apply, single_apply, erase_apply, dif_pos rfl, if_pos, zero_add]
     else by
       simp only [add_apply, single_apply, erase_apply, dif_neg h, if_neg (Ne.symm h), add_zero]
-#align dfinsupp.erase_add_single Dfinsupp.erase_add_single
+#align dfinsupp.erase_add_single DFinsupp.erase_add_single
 -/
 
-#print Dfinsupp.induction /-
+#print DFinsupp.induction /-
 protected theorem induction {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (h0 : p 0)
     (ha : ∀ (i b) (f : Π₀ i, β i), f i = 0 → b ≠ 0 → p f → p (single i b + f)) : p f :=
   by
@@ -1182,36 +1182,36 @@ protected theorem induction {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (
   · rw [h, single_zero, zero_add]; exact H2
   refine' ha _ _ _ _ h H2
   rw [erase_same]
-#align dfinsupp.induction Dfinsupp.induction
+#align dfinsupp.induction DFinsupp.induction
 -/
 
-#print Dfinsupp.induction₂ /-
+#print DFinsupp.induction₂ /-
 theorem induction₂ {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (h0 : p 0)
     (ha : ∀ (i b) (f : Π₀ i, β i), f i = 0 → b ≠ 0 → p f → p (f + single i b)) : p f :=
-  Dfinsupp.induction f h0 fun i b f h1 h2 h3 =>
+  DFinsupp.induction f h0 fun i b f h1 h2 h3 =>
     have h4 : f + single i b = single i b + f :=
       by
       ext j; by_cases H : i = j
       · subst H; simp [h1]
       · simp [H]
     Eq.recOn h4 <| ha i b f h1 h2 h3
-#align dfinsupp.induction₂ Dfinsupp.induction₂
+#align dfinsupp.induction₂ DFinsupp.induction₂
 -/
 
-#print Dfinsupp.add_closure_iUnion_range_single /-
+#print DFinsupp.add_closure_iUnion_range_single /-
 @[simp]
 theorem add_closure_iUnion_range_single :
     AddSubmonoid.closure (⋃ i : ι, Set.range (single i : β i → Π₀ i, β i)) = ⊤ :=
   top_unique fun x hx => by
-    apply Dfinsupp.induction x
+    apply DFinsupp.induction x
     exact AddSubmonoid.zero_mem _
     exact fun a b f ha hb hf =>
       AddSubmonoid.add_mem _
         (AddSubmonoid.subset_closure <| Set.mem_iUnion.2 ⟨a, Set.mem_range_self _⟩) hf
-#align dfinsupp.add_closure_Union_range_single Dfinsupp.add_closure_iUnion_range_single
+#align dfinsupp.add_closure_Union_range_single DFinsupp.add_closure_iUnion_range_single
 -/
 
-#print Dfinsupp.addHom_ext /-
+#print DFinsupp.addHom_ext /-
 /-- If two additive homomorphisms from `Π₀ i, β i` are equal on each `single a b`, then
 they are equal. -/
 theorem addHom_ext {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+ γ⦄
@@ -1221,10 +1221,10 @@ theorem addHom_ext {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+
   simp only [Set.mem_iUnion, Set.mem_range] at hf 
   rcases hf with ⟨x, y, rfl⟩
   apply H
-#align dfinsupp.add_hom_ext Dfinsupp.addHom_ext
+#align dfinsupp.add_hom_ext DFinsupp.addHom_ext
 -/
 
-#print Dfinsupp.addHom_ext' /-
+#print DFinsupp.addHom_ext' /-
 /-- If two additive homomorphisms from `Π₀ i, β i` are equal on each `single a b`, then
 they are equal.
 
@@ -1233,43 +1233,43 @@ See note [partially-applied ext lemmas]. -/
 theorem addHom_ext' {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+ γ⦄
     (H : ∀ x, f.comp (singleAddHom β x) = g.comp (singleAddHom β x)) : f = g :=
   addHom_ext fun x => AddMonoidHom.congr_fun (H x)
-#align dfinsupp.add_hom_ext' Dfinsupp.addHom_ext'
+#align dfinsupp.add_hom_ext' DFinsupp.addHom_ext'
 -/
 
 end AddMonoid
 
-#print Dfinsupp.mk_add /-
+#print DFinsupp.mk_add /-
 @[simp]
 theorem mk_add [∀ i, AddZeroClass (β i)] {s : Finset ι} {x y : ∀ i : (↑s : Set ι), β i} :
     mk s (x + y) = mk s x + mk s y :=
   ext fun i => by simp only [add_apply, mk_apply] <;> split_ifs <;> [rfl; rw [zero_add]]
-#align dfinsupp.mk_add Dfinsupp.mk_add
+#align dfinsupp.mk_add DFinsupp.mk_add
 -/
 
-#print Dfinsupp.mk_zero /-
+#print DFinsupp.mk_zero /-
 @[simp]
 theorem mk_zero [∀ i, Zero (β i)] {s : Finset ι} : mk s (0 : ∀ i : (↑s : Set ι), β i.1) = 0 :=
   ext fun i => by simp only [mk_apply] <;> split_ifs <;> rfl
-#align dfinsupp.mk_zero Dfinsupp.mk_zero
+#align dfinsupp.mk_zero DFinsupp.mk_zero
 -/
 
-#print Dfinsupp.mk_neg /-
+#print DFinsupp.mk_neg /-
 @[simp]
 theorem mk_neg [∀ i, AddGroup (β i)] {s : Finset ι} {x : ∀ i : (↑s : Set ι), β i.1} :
     mk s (-x) = -mk s x :=
   ext fun i => by simp only [neg_apply, mk_apply] <;> split_ifs <;> [rfl; rw [neg_zero]]
-#align dfinsupp.mk_neg Dfinsupp.mk_neg
+#align dfinsupp.mk_neg DFinsupp.mk_neg
 -/
 
-#print Dfinsupp.mk_sub /-
+#print DFinsupp.mk_sub /-
 @[simp]
 theorem mk_sub [∀ i, AddGroup (β i)] {s : Finset ι} {x y : ∀ i : (↑s : Set ι), β i.1} :
     mk s (x - y) = mk s x - mk s y :=
   ext fun i => by simp only [sub_apply, mk_apply] <;> split_ifs <;> [rfl; rw [sub_zero]]
-#align dfinsupp.mk_sub Dfinsupp.mk_sub
+#align dfinsupp.mk_sub DFinsupp.mk_sub
 -/
 
-#print Dfinsupp.mkAddGroupHom /-
+#print DFinsupp.mkAddGroupHom /-
 /-- If `s` is a subset of `ι` then `mk_add_group_hom s` is the canonical additive
 group homomorphism from $\prod_{i\in s}\beta_i$ to $\prod_{\mathtt{i : \iota}}\beta_i.$-/
 def mkAddGroupHom [∀ i, AddGroup (β i)] (s : Finset ι) : (∀ i : (s : Set ι), β ↑i) →+ Π₀ i : ι, β i
@@ -1277,27 +1277,27 @@ def mkAddGroupHom [∀ i, AddGroup (β i)] (s : Finset ι) : (∀ i : (s : Set 
   toFun := mk s
   map_zero' := mk_zero
   map_add' _ _ := mk_add
-#align dfinsupp.mk_add_group_hom Dfinsupp.mkAddGroupHom
+#align dfinsupp.mk_add_group_hom DFinsupp.mkAddGroupHom
 -/
 
 section
 
 variable [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
 
-#print Dfinsupp.mk_smul /-
+#print DFinsupp.mk_smul /-
 @[simp]
 theorem mk_smul {s : Finset ι} (c : γ) (x : ∀ i : (↑s : Set ι), β (i : ι)) :
     mk s (c • x) = c • mk s x :=
   ext fun i => by simp only [smul_apply, mk_apply] <;> split_ifs <;> [rfl; rw [smul_zero]]
-#align dfinsupp.mk_smul Dfinsupp.mk_smul
+#align dfinsupp.mk_smul DFinsupp.mk_smul
 -/
 
-#print Dfinsupp.single_smul /-
+#print DFinsupp.single_smul /-
 @[simp]
 theorem single_smul {i : ι} (c : γ) (x : β i) : single i (c • x) = c • single i x :=
   ext fun i => by
     simp only [smul_apply, single_apply] <;> split_ifs <;> [cases h; rw [smul_zero]] <;> rfl
-#align dfinsupp.single_smul Dfinsupp.single_smul
+#align dfinsupp.single_smul DFinsupp.single_smul
 -/
 
 end
@@ -1306,7 +1306,7 @@ section SupportBasic
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
-#print Dfinsupp.support /-
+#print DFinsupp.support /-
 /-- Set `{i | f x ≠ 0}` as a `finset`. -/
 def support (f : Π₀ i, β i) : Finset ι :=
   (f.support'.lift fun xs => (Multiset.toFinset ↑xs).filterₓ fun i => f i ≠ 0) <|
@@ -1320,25 +1320,25 @@ def support (f : Π₀ i, β i) : Finset ι :=
     · intro H
       rcases Finset.mem_filter.1 H with ⟨h1, h2⟩
       exact Finset.mem_filter.2 ⟨Multiset.mem_toFinset.2 <| (hx i).resolve_right h2, h2⟩
-#align dfinsupp.support Dfinsupp.support
+#align dfinsupp.support DFinsupp.support
 -/
 
-#print Dfinsupp.support_mk_subset /-
+#print DFinsupp.support_mk_subset /-
 @[simp]
 theorem support_mk_subset {s : Finset ι} {x : ∀ i : (↑s : Set ι), β i.1} : (mk s x).support ⊆ s :=
   fun i H => Multiset.mem_toFinset.1 (Finset.mem_filter.1 H).1
-#align dfinsupp.support_mk_subset Dfinsupp.support_mk_subset
+#align dfinsupp.support_mk_subset DFinsupp.support_mk_subset
 -/
 
-#print Dfinsupp.support_mk'_subset /-
+#print DFinsupp.support_mk'_subset /-
 @[simp]
 theorem support_mk'_subset {f : ∀ i, β i} {s : Multiset ι} {h} :
     (mk' f <| Trunc.mk ⟨s, h⟩).support ⊆ s.toFinset := fun i H =>
   Multiset.mem_toFinset.1 <| by simpa using (Finset.mem_filter.1 H).1
-#align dfinsupp.support_mk'_subset Dfinsupp.support_mk'_subset
+#align dfinsupp.support_mk'_subset DFinsupp.support_mk'_subset
 -/
 
-#print Dfinsupp.mem_support_toFun /-
+#print DFinsupp.mem_support_toFun /-
 @[simp]
 theorem mem_support_toFun (f : Π₀ i, β i) (i) : i ∈ f.support ↔ f i ≠ 0 :=
   by
@@ -1347,104 +1347,104 @@ theorem mem_support_toFun (f : Π₀ i, β i) (i) : i ∈ f.support ↔ f i ≠
   dsimp only [support, Trunc.lift_mk]
   rw [Finset.mem_filter, Multiset.mem_toFinset, coe_mk']
   exact and_iff_right_of_imp (s.prop i).resolve_right
-#align dfinsupp.mem_support_to_fun Dfinsupp.mem_support_toFun
+#align dfinsupp.mem_support_to_fun DFinsupp.mem_support_toFun
 -/
 
-#print Dfinsupp.eq_mk_support /-
+#print DFinsupp.eq_mk_support /-
 theorem eq_mk_support (f : Π₀ i, β i) : f = mk f.support fun i => f i :=
   by
   change f = mk f.support fun i => f i.1
   ext i
   by_cases h : f i ≠ 0 <;> [skip; rw [Classical.not_not] at h ] <;> simp [h]
-#align dfinsupp.eq_mk_support Dfinsupp.eq_mk_support
+#align dfinsupp.eq_mk_support DFinsupp.eq_mk_support
 -/
 
-#print Dfinsupp.support_zero /-
+#print DFinsupp.support_zero /-
 @[simp]
 theorem support_zero : (0 : Π₀ i, β i).support = ∅ :=
   rfl
-#align dfinsupp.support_zero Dfinsupp.support_zero
+#align dfinsupp.support_zero DFinsupp.support_zero
 -/
 
-#print Dfinsupp.mem_support_iff /-
+#print DFinsupp.mem_support_iff /-
 theorem mem_support_iff {f : Π₀ i, β i} {i : ι} : i ∈ f.support ↔ f i ≠ 0 :=
   f.mem_support_toFun _
-#align dfinsupp.mem_support_iff Dfinsupp.mem_support_iff
+#align dfinsupp.mem_support_iff DFinsupp.mem_support_iff
 -/
 
-#print Dfinsupp.not_mem_support_iff /-
+#print DFinsupp.not_mem_support_iff /-
 theorem not_mem_support_iff {f : Π₀ i, β i} {i : ι} : i ∉ f.support ↔ f i = 0 :=
   not_iff_comm.1 mem_support_iff.symm
-#align dfinsupp.not_mem_support_iff Dfinsupp.not_mem_support_iff
+#align dfinsupp.not_mem_support_iff DFinsupp.not_mem_support_iff
 -/
 
-#print Dfinsupp.support_eq_empty /-
+#print DFinsupp.support_eq_empty /-
 @[simp]
 theorem support_eq_empty {f : Π₀ i, β i} : f.support = ∅ ↔ f = 0 :=
   ⟨fun H => ext <| by simpa [Finset.ext_iff] using H, by simp (config := { contextual := true })⟩
-#align dfinsupp.support_eq_empty Dfinsupp.support_eq_empty
+#align dfinsupp.support_eq_empty DFinsupp.support_eq_empty
 -/
 
-#print Dfinsupp.decidableZero /-
+#print DFinsupp.decidableZero /-
 instance decidableZero : DecidablePred (Eq (0 : Π₀ i, β i)) := fun f =>
   decidable_of_iff _ <| support_eq_empty.trans eq_comm
-#align dfinsupp.decidable_zero Dfinsupp.decidableZero
+#align dfinsupp.decidable_zero DFinsupp.decidableZero
 -/
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (i «expr ∉ » s) -/
-#print Dfinsupp.support_subset_iff /-
+#print DFinsupp.support_subset_iff /-
 theorem support_subset_iff {s : Set ι} {f : Π₀ i, β i} :
     ↑f.support ⊆ s ↔ ∀ (i) (_ : i ∉ s), f i = 0 := by
   simp [Set.subset_def] <;> exact forall_congr' fun i => not_imp_comm
-#align dfinsupp.support_subset_iff Dfinsupp.support_subset_iff
+#align dfinsupp.support_subset_iff DFinsupp.support_subset_iff
 -/
 
-#print Dfinsupp.support_single_ne_zero /-
+#print DFinsupp.support_single_ne_zero /-
 theorem support_single_ne_zero {i : ι} {b : β i} (hb : b ≠ 0) : (single i b).support = {i} :=
   by
   ext j; by_cases h : i = j
   · subst h; simp [hb]
   simp [Ne.symm h, h]
-#align dfinsupp.support_single_ne_zero Dfinsupp.support_single_ne_zero
+#align dfinsupp.support_single_ne_zero DFinsupp.support_single_ne_zero
 -/
 
-#print Dfinsupp.support_single_subset /-
+#print DFinsupp.support_single_subset /-
 theorem support_single_subset {i : ι} {b : β i} : (single i b).support ⊆ {i} :=
   support_mk'_subset
-#align dfinsupp.support_single_subset Dfinsupp.support_single_subset
+#align dfinsupp.support_single_subset DFinsupp.support_single_subset
 -/
 
 section MapRangeAndZipWith
 
 variable [∀ i, Zero (β₁ i)] [∀ i, Zero (β₂ i)]
 
-#print Dfinsupp.mapRange_def /-
+#print DFinsupp.mapRange_def /-
 theorem mapRange_def [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] {f : ∀ i, β₁ i → β₂ i}
     {hf : ∀ i, f i 0 = 0} {g : Π₀ i, β₁ i} :
     mapRange f hf g = mk g.support fun i => f i.1 (g i.1) :=
   by
   ext i
   by_cases h : g i ≠ 0 <;> simp at h  <;> simp [h, hf]
-#align dfinsupp.map_range_def Dfinsupp.mapRange_def
+#align dfinsupp.map_range_def DFinsupp.mapRange_def
 -/
 
-#print Dfinsupp.mapRange_single /-
+#print DFinsupp.mapRange_single /-
 @[simp]
 theorem mapRange_single {f : ∀ i, β₁ i → β₂ i} {hf : ∀ i, f i 0 = 0} {i : ι} {b : β₁ i} :
     mapRange f hf (single i b) = single i (f i b) :=
-  Dfinsupp.ext fun i' => by by_cases i = i' <;> [· subst i'; simp; simp [h, hf]]
-#align dfinsupp.map_range_single Dfinsupp.mapRange_single
+  DFinsupp.ext fun i' => by by_cases i = i' <;> [· subst i'; simp; simp [h, hf]]
+#align dfinsupp.map_range_single DFinsupp.mapRange_single
 -/
 
 variable [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ (i) (x : β₂ i), Decidable (x ≠ 0)]
 
-#print Dfinsupp.support_mapRange /-
+#print DFinsupp.support_mapRange /-
 theorem support_mapRange {f : ∀ i, β₁ i → β₂ i} {hf : ∀ i, f i 0 = 0} {g : Π₀ i, β₁ i} :
     (mapRange f hf g).support ⊆ g.support := by simp [map_range_def]
-#align dfinsupp.support_map_range Dfinsupp.support_mapRange
+#align dfinsupp.support_map_range DFinsupp.support_mapRange
 -/
 
-#print Dfinsupp.zipWith_def /-
+#print DFinsupp.zipWith_def /-
 theorem zipWith_def {ι : Type u} {β : ι → Type v} {β₁ : ι → Type v₁} {β₂ : ι → Type v₂}
     [dec : DecidableEq ι] [∀ i : ι, Zero (β i)] [∀ i : ι, Zero (β₁ i)] [∀ i : ι, Zero (β₂ i)]
     [∀ (i : ι) (x : β₁ i), Decidable (x ≠ 0)] [∀ (i : ι) (x : β₂ i), Decidable (x ≠ 0)]
@@ -1455,32 +1455,32 @@ theorem zipWith_def {ι : Type u} {β : ι → Type v} {β₁ : ι → Type v₁
   by_cases h1 : g₁ i ≠ 0 <;> by_cases h2 : g₂ i ≠ 0 <;>
       simp only [Classical.not_not, Ne.def] at h1 h2  <;>
     simp [h1, h2, hf]
-#align dfinsupp.zip_with_def Dfinsupp.zipWith_def
+#align dfinsupp.zip_with_def DFinsupp.zipWith_def
 -/
 
-#print Dfinsupp.support_zipWith /-
+#print DFinsupp.support_zipWith /-
 theorem support_zipWith {f : ∀ i, β₁ i → β₂ i → β i} {hf : ∀ i, f i 0 0 = 0} {g₁ : Π₀ i, β₁ i}
     {g₂ : Π₀ i, β₂ i} : (zipWith f hf g₁ g₂).support ⊆ g₁.support ∪ g₂.support := by
   simp [zip_with_def]
-#align dfinsupp.support_zip_with Dfinsupp.support_zipWith
+#align dfinsupp.support_zip_with DFinsupp.support_zipWith
 -/
 
 end MapRangeAndZipWith
 
-#print Dfinsupp.erase_def /-
+#print DFinsupp.erase_def /-
 theorem erase_def (i : ι) (f : Π₀ i, β i) : f.eraseₓ i = mk (f.support.eraseₓ i) fun j => f j.1 :=
   by ext j; by_cases h1 : j = i <;> by_cases h2 : f j ≠ 0 <;> simp at h2  <;> simp [h1, h2]
-#align dfinsupp.erase_def Dfinsupp.erase_def
+#align dfinsupp.erase_def DFinsupp.erase_def
 -/
 
-#print Dfinsupp.support_erase /-
+#print DFinsupp.support_erase /-
 @[simp]
 theorem support_erase (i : ι) (f : Π₀ i, β i) : (f.eraseₓ i).support = f.support.eraseₓ i := by
   ext j; by_cases h1 : j = i; simp [h1]; by_cases h2 : f j ≠ 0 <;> simp at h2  <;> simp [h1, h2]
-#align dfinsupp.support_erase Dfinsupp.support_erase
+#align dfinsupp.support_erase DFinsupp.support_erase
 -/
 
-#print Dfinsupp.support_update_ne_zero /-
+#print DFinsupp.support_update_ne_zero /-
 theorem support_update_ne_zero (f : Π₀ i, β i) (i : ι) {b : β i} (h : b ≠ 0) :
     support (f.update i b) = insert i f.support :=
   by
@@ -1488,10 +1488,10 @@ theorem support_update_ne_zero (f : Π₀ i, β i) (i : ι) {b : β i} (h : b 
   rcases eq_or_ne i j with (rfl | hi)
   · simp [h]
   · simp [hi.symm]
-#align dfinsupp.support_update_ne_zero Dfinsupp.support_update_ne_zero
+#align dfinsupp.support_update_ne_zero DFinsupp.support_update_ne_zero
 -/
 
-#print Dfinsupp.support_update /-
+#print DFinsupp.support_update /-
 theorem support_update (f : Π₀ i, β i) (i : ι) (b : β i) [Decidable (b = 0)] :
     support (f.update i b) = if b = 0 then support (f.eraseₓ i) else insert i f.support :=
   by
@@ -1499,64 +1499,64 @@ theorem support_update (f : Π₀ i, β i) (i : ι) (b : β i) [Decidable (b = 0
   split_ifs with hb
   · subst hb; simp [update_eq_erase, support_erase]
   · rw [support_update_ne_zero f _ hb]
-#align dfinsupp.support_update Dfinsupp.support_update
+#align dfinsupp.support_update DFinsupp.support_update
 -/
 
 section FilterAndSubtypeDomain
 
 variable {p : ι → Prop} [DecidablePred p]
 
-#print Dfinsupp.filter_def /-
+#print DFinsupp.filter_def /-
 theorem filter_def (f : Π₀ i, β i) : f.filterₓ p = mk (f.support.filterₓ p) fun i => f i.1 := by
   ext i <;> by_cases h1 : p i <;> by_cases h2 : f i ≠ 0 <;> simp at h2  <;> simp [h1, h2]
-#align dfinsupp.filter_def Dfinsupp.filter_def
+#align dfinsupp.filter_def DFinsupp.filter_def
 -/
 
-#print Dfinsupp.support_filter /-
+#print DFinsupp.support_filter /-
 @[simp]
 theorem support_filter (f : Π₀ i, β i) : (f.filterₓ p).support = f.support.filterₓ p := by
   ext i <;> by_cases h : p i <;> simp [h]
-#align dfinsupp.support_filter Dfinsupp.support_filter
+#align dfinsupp.support_filter DFinsupp.support_filter
 -/
 
-#print Dfinsupp.subtypeDomain_def /-
+#print DFinsupp.subtypeDomain_def /-
 theorem subtypeDomain_def (f : Π₀ i, β i) :
     f.subtypeDomain p = mk (f.support.Subtype p) fun i => f i := by
   ext i <;> by_cases h2 : f i ≠ 0 <;> try simp at h2  <;> dsimp <;> simp [h2]
-#align dfinsupp.subtype_domain_def Dfinsupp.subtypeDomain_def
+#align dfinsupp.subtype_domain_def DFinsupp.subtypeDomain_def
 -/
 
-#print Dfinsupp.support_subtypeDomain /-
+#print DFinsupp.support_subtypeDomain /-
 @[simp]
 theorem support_subtypeDomain {f : Π₀ i, β i} : (subtypeDomain p f).support = f.support.Subtype p :=
   by ext i; simp
-#align dfinsupp.support_subtype_domain Dfinsupp.support_subtypeDomain
+#align dfinsupp.support_subtype_domain DFinsupp.support_subtypeDomain
 -/
 
 end FilterAndSubtypeDomain
 
 end SupportBasic
 
-#print Dfinsupp.support_add /-
+#print DFinsupp.support_add /-
 theorem support_add [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     {g₁ g₂ : Π₀ i, β i} : (g₁ + g₂).support ⊆ g₁.support ∪ g₂.support :=
   support_zipWith
-#align dfinsupp.support_add Dfinsupp.support_add
+#align dfinsupp.support_add DFinsupp.support_add
 -/
 
-#print Dfinsupp.support_neg /-
+#print DFinsupp.support_neg /-
 @[simp]
 theorem support_neg [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] {f : Π₀ i, β i} :
     support (-f) = support f := by ext i <;> simp
-#align dfinsupp.support_neg Dfinsupp.support_neg
+#align dfinsupp.support_neg DFinsupp.support_neg
 -/
 
-#print Dfinsupp.support_smul /-
+#print DFinsupp.support_smul /-
 theorem support_smul {γ : Type w} [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (β i)]
     [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (b : γ) (v : Π₀ i, β i) :
     (b • v).support ⊆ v.support :=
   support_mapRange
-#align dfinsupp.support_smul Dfinsupp.support_smul
+#align dfinsupp.support_smul DFinsupp.support_smul
 -/
 
 instance [∀ i, Zero (β i)] [∀ i, DecidableEq (β i)] : DecidableEq (Π₀ i, β i) := fun f g =>
@@ -1576,7 +1576,7 @@ open Finset
 
 variable {κ : Type _}
 
-#print Dfinsupp.comapDomain /-
+#print DFinsupp.comapDomain /-
 /-- Reindexing (and possibly removing) terms of a dfinsupp.-/
 noncomputable def comapDomain [∀ i, Zero (β i)] (h : κ → ι) (hh : Function.Injective h)
     (f : Π₀ i, β i) : Π₀ k, β (h k) where
@@ -1585,42 +1585,42 @@ noncomputable def comapDomain [∀ i, Zero (β i)] (h : κ → ι) (hh : Functio
     f.support'.map fun s =>
       ⟨((Multiset.toFinset ↑s).Preimage h (hh.InjOn _)).val, fun x =>
         (s.Prop (h x)).imp_left fun hx => mem_preimage.mpr <| Multiset.mem_toFinset.mpr hx⟩
-#align dfinsupp.comap_domain Dfinsupp.comapDomain
+#align dfinsupp.comap_domain DFinsupp.comapDomain
 -/
 
-#print Dfinsupp.comapDomain_apply /-
+#print DFinsupp.comapDomain_apply /-
 @[simp]
 theorem comapDomain_apply [∀ i, Zero (β i)] (h : κ → ι) (hh : Function.Injective h) (f : Π₀ i, β i)
     (k : κ) : comapDomain h hh f k = f (h k) :=
   rfl
-#align dfinsupp.comap_domain_apply Dfinsupp.comapDomain_apply
+#align dfinsupp.comap_domain_apply DFinsupp.comapDomain_apply
 -/
 
-#print Dfinsupp.comapDomain_zero /-
+#print DFinsupp.comapDomain_zero /-
 @[simp]
 theorem comapDomain_zero [∀ i, Zero (β i)] (h : κ → ι) (hh : Function.Injective h) :
     comapDomain h hh (0 : Π₀ i, β i) = 0 := by ext; rw [zero_apply, comap_domain_apply, zero_apply]
-#align dfinsupp.comap_domain_zero Dfinsupp.comapDomain_zero
+#align dfinsupp.comap_domain_zero DFinsupp.comapDomain_zero
 -/
 
-#print Dfinsupp.comapDomain_add /-
+#print DFinsupp.comapDomain_add /-
 @[simp]
 theorem comapDomain_add [∀ i, AddZeroClass (β i)] (h : κ → ι) (hh : Function.Injective h)
     (f g : Π₀ i, β i) : comapDomain h hh (f + g) = comapDomain h hh f + comapDomain h hh g := by
   ext; rw [add_apply, comap_domain_apply, comap_domain_apply, comap_domain_apply, add_apply]
-#align dfinsupp.comap_domain_add Dfinsupp.comapDomain_add
+#align dfinsupp.comap_domain_add DFinsupp.comapDomain_add
 -/
 
-#print Dfinsupp.comapDomain_smul /-
+#print DFinsupp.comapDomain_smul /-
 @[simp]
 theorem comapDomain_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
     (h : κ → ι) (hh : Function.Injective h) (r : γ) (f : Π₀ i, β i) :
     comapDomain h hh (r • f) = r • comapDomain h hh f := by ext;
   rw [smul_apply, comap_domain_apply, smul_apply, comap_domain_apply]
-#align dfinsupp.comap_domain_smul Dfinsupp.comapDomain_smul
+#align dfinsupp.comap_domain_smul DFinsupp.comapDomain_smul
 -/
 
-#print Dfinsupp.comapDomain_single /-
+#print DFinsupp.comapDomain_single /-
 @[simp]
 theorem comapDomain_single [DecidableEq κ] [∀ i, Zero (β i)] (h : κ → ι) (hh : Function.Injective h)
     (k : κ) (x : β (h k)) : comapDomain h hh (single (h k) x) = single k x :=
@@ -1630,10 +1630,10 @@ theorem comapDomain_single [DecidableEq κ] [∀ i, Zero (β i)] (h : κ → ι)
   obtain rfl | hik := Decidable.eq_or_ne i k
   · rw [single_eq_same, single_eq_same]
   · rw [single_eq_of_ne hik.symm, single_eq_of_ne (hh.ne hik.symm)]
-#align dfinsupp.comap_domain_single Dfinsupp.comapDomain_single
+#align dfinsupp.comap_domain_single DFinsupp.comapDomain_single
 -/
 
-#print Dfinsupp.comapDomain' /-
+#print DFinsupp.comapDomain' /-
 /-- A computable version of comap_domain when an explicit left inverse is provided.-/
 def comapDomain' [∀ i, Zero (β i)] (h : κ → ι) {h' : ι → κ} (hh' : Function.LeftInverse h' h)
     (f : Π₀ i, β i) : Π₀ k, β (h k) where
@@ -1642,44 +1642,44 @@ def comapDomain' [∀ i, Zero (β i)] (h : κ → ι) {h' : ι → κ} (hh' : Fu
     f.support'.map fun s =>
       ⟨Multiset.map h' s, fun x =>
         (s.Prop (h x)).imp_left fun hx => Multiset.mem_map.mpr ⟨_, hx, hh' _⟩⟩
-#align dfinsupp.comap_domain' Dfinsupp.comapDomain'
+#align dfinsupp.comap_domain' DFinsupp.comapDomain'
 -/
 
-#print Dfinsupp.comapDomain'_apply /-
+#print DFinsupp.comapDomain'_apply /-
 @[simp]
 theorem comapDomain'_apply [∀ i, Zero (β i)] (h : κ → ι) {h' : ι → κ}
     (hh' : Function.LeftInverse h' h) (f : Π₀ i, β i) (k : κ) : comapDomain' h hh' f k = f (h k) :=
   rfl
-#align dfinsupp.comap_domain'_apply Dfinsupp.comapDomain'_apply
+#align dfinsupp.comap_domain'_apply DFinsupp.comapDomain'_apply
 -/
 
-#print Dfinsupp.comapDomain'_zero /-
+#print DFinsupp.comapDomain'_zero /-
 @[simp]
 theorem comapDomain'_zero [∀ i, Zero (β i)] (h : κ → ι) {h' : ι → κ}
     (hh' : Function.LeftInverse h' h) : comapDomain' h hh' (0 : Π₀ i, β i) = 0 := by ext;
   rw [zero_apply, comap_domain'_apply, zero_apply]
-#align dfinsupp.comap_domain'_zero Dfinsupp.comapDomain'_zero
+#align dfinsupp.comap_domain'_zero DFinsupp.comapDomain'_zero
 -/
 
-#print Dfinsupp.comapDomain'_add /-
+#print DFinsupp.comapDomain'_add /-
 @[simp]
 theorem comapDomain'_add [∀ i, AddZeroClass (β i)] (h : κ → ι) {h' : ι → κ}
     (hh' : Function.LeftInverse h' h) (f g : Π₀ i, β i) :
     comapDomain' h hh' (f + g) = comapDomain' h hh' f + comapDomain' h hh' g := by ext;
   rw [add_apply, comap_domain'_apply, comap_domain'_apply, comap_domain'_apply, add_apply]
-#align dfinsupp.comap_domain'_add Dfinsupp.comapDomain'_add
+#align dfinsupp.comap_domain'_add DFinsupp.comapDomain'_add
 -/
 
-#print Dfinsupp.comapDomain'_smul /-
+#print DFinsupp.comapDomain'_smul /-
 @[simp]
 theorem comapDomain'_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
     (h : κ → ι) {h' : ι → κ} (hh' : Function.LeftInverse h' h) (r : γ) (f : Π₀ i, β i) :
     comapDomain' h hh' (r • f) = r • comapDomain' h hh' f := by ext;
   rw [smul_apply, comap_domain'_apply, smul_apply, comap_domain'_apply]
-#align dfinsupp.comap_domain'_smul Dfinsupp.comapDomain'_smul
+#align dfinsupp.comap_domain'_smul DFinsupp.comapDomain'_smul
 -/
 
-#print Dfinsupp.comapDomain'_single /-
+#print DFinsupp.comapDomain'_single /-
 @[simp]
 theorem comapDomain'_single [DecidableEq ι] [DecidableEq κ] [∀ i, Zero (β i)] (h : κ → ι)
     {h' : ι → κ} (hh' : Function.LeftInverse h' h) (k : κ) (x : β (h k)) :
@@ -1690,10 +1690,10 @@ theorem comapDomain'_single [DecidableEq ι] [DecidableEq κ] [∀ i, Zero (β i
   obtain rfl | hik := Decidable.eq_or_ne i k
   · rw [single_eq_same, single_eq_same]
   · rw [single_eq_of_ne hik.symm, single_eq_of_ne (hh'.injective.ne hik.symm)]
-#align dfinsupp.comap_domain'_single Dfinsupp.comapDomain'_single
+#align dfinsupp.comap_domain'_single DFinsupp.comapDomain'_single
 -/
 
-#print Dfinsupp.equivCongrLeft /-
+#print DFinsupp.equivCongrLeft /-
 /-- Reindexing terms of a dfinsupp.
 
 This is the dfinsupp version of `equiv.Pi_congr_left'`. -/
@@ -1713,51 +1713,51 @@ def equivCongrLeft [∀ i, Zero (β i)] (h : ι ≃ κ) : (Π₀ i, β i) ≃ Π
   right_inv f := by ext k;
     rw [comap_domain'_apply, map_range_apply, comap_domain'_apply, Equiv.cast_eq_iff_heq,
       h.apply_symm_apply]
-#align dfinsupp.equiv_congr_left Dfinsupp.equivCongrLeft
+#align dfinsupp.equiv_congr_left DFinsupp.equivCongrLeft
 -/
 
 section Curry
 
 variable {α : ι → Type _} {δ : ∀ i, α i → Type v}
 
-#print Dfinsupp.hasAdd₂ /-
+#print DFinsupp.hasAdd₂ /-
 -- lean can't find these instances
 instance hasAdd₂ [∀ i j, AddZeroClass (δ i j)] : Add (Π₀ (i : ι) (j : α i), δ i j) :=
-  @Dfinsupp.hasAdd ι (fun i => Π₀ j, δ i j) _
-#align dfinsupp.has_add₂ Dfinsupp.hasAdd₂
+  @DFinsupp.hasAdd ι (fun i => Π₀ j, δ i j) _
+#align dfinsupp.has_add₂ DFinsupp.hasAdd₂
 -/
 
-#print Dfinsupp.addZeroClass₂ /-
+#print DFinsupp.addZeroClass₂ /-
 instance addZeroClass₂ [∀ i j, AddZeroClass (δ i j)] : AddZeroClass (Π₀ (i : ι) (j : α i), δ i j) :=
-  @Dfinsupp.addZeroClass ι (fun i => Π₀ j, δ i j) _
-#align dfinsupp.add_zero_class₂ Dfinsupp.addZeroClass₂
+  @DFinsupp.addZeroClass ι (fun i => Π₀ j, δ i j) _
+#align dfinsupp.add_zero_class₂ DFinsupp.addZeroClass₂
 -/
 
-#print Dfinsupp.addMonoid₂ /-
+#print DFinsupp.addMonoid₂ /-
 instance addMonoid₂ [∀ i j, AddMonoid (δ i j)] : AddMonoid (Π₀ (i : ι) (j : α i), δ i j) :=
-  @Dfinsupp.addMonoid ι (fun i => Π₀ j, δ i j) _
-#align dfinsupp.add_monoid₂ Dfinsupp.addMonoid₂
+  @DFinsupp.addMonoid ι (fun i => Π₀ j, δ i j) _
+#align dfinsupp.add_monoid₂ DFinsupp.addMonoid₂
 -/
 
-#print Dfinsupp.distribMulAction₂ /-
+#print DFinsupp.distribMulAction₂ /-
 instance distribMulAction₂ [Monoid γ] [∀ i j, AddMonoid (δ i j)]
     [∀ i j, DistribMulAction γ (δ i j)] : DistribMulAction γ (Π₀ (i : ι) (j : α i), δ i j) :=
-  @Dfinsupp.distribMulAction ι _ (fun i => Π₀ j, δ i j) _ _ _
-#align dfinsupp.distrib_mul_action₂ Dfinsupp.distribMulAction₂
+  @DFinsupp.distribMulAction ι _ (fun i => Π₀ j, δ i j) _ _ _
+#align dfinsupp.distrib_mul_action₂ DFinsupp.distribMulAction₂
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
-#print Dfinsupp.sigmaCurry /-
+#print DFinsupp.sigmaCurry /-
 /-- The natural map between `Π₀ (i : Σ i, α i), δ i.1 i.2` and `Π₀ i (j : α i), δ i j`.  -/
 noncomputable def sigmaCurry [∀ i j, Zero (δ i j)] (f : Π₀ i : Σ i, _, δ i.1 i.2) :
     Π₀ (i) (j), δ i j := by
   classical exact
     mk (f.support.image fun i => i.1) fun i =>
       mk (f.support.preimage (Sigma.mk i) <| sigma_mk_injective.inj_on _) fun j => f ⟨i, j⟩
-#align dfinsupp.sigma_curry Dfinsupp.sigmaCurry
+#align dfinsupp.sigma_curry DFinsupp.sigmaCurry
 -/
 
-#print Dfinsupp.sigmaCurry_apply /-
+#print DFinsupp.sigmaCurry_apply /-
 @[simp]
 theorem sigmaCurry_apply [∀ i j, Zero (δ i j)] (f : Π₀ i : Σ i, _, δ i.1 i.2) (i : ι) (j : α i) :
     sigmaCurry f i j = f ⟨i, j⟩ := by
@@ -1766,17 +1766,17 @@ theorem sigmaCurry_apply [∀ i j, Zero (δ i j)] (f : Π₀ i : Σ i, _, δ i.1
   · rw [mk_of_mem, mk_of_mem]; · rfl
     · rw [mem_preimage, mem_support_to_fun]; exact h
     · rw [mem_image]; refine' ⟨⟨i, j⟩, _, rfl⟩; rw [mem_support_to_fun]; exact h
-#align dfinsupp.sigma_curry_apply Dfinsupp.sigmaCurry_apply
+#align dfinsupp.sigma_curry_apply DFinsupp.sigmaCurry_apply
 -/
 
-#print Dfinsupp.sigmaCurry_zero /-
+#print DFinsupp.sigmaCurry_zero /-
 @[simp]
 theorem sigmaCurry_zero [∀ i j, Zero (δ i j)] : sigmaCurry (0 : Π₀ i : Σ i, _, δ i.1 i.2) = 0 := by
   ext i j; rw [sigma_curry_apply]; rfl
-#align dfinsupp.sigma_curry_zero Dfinsupp.sigmaCurry_zero
+#align dfinsupp.sigma_curry_zero DFinsupp.sigmaCurry_zero
 -/
 
-#print Dfinsupp.sigmaCurry_add /-
+#print DFinsupp.sigmaCurry_add /-
 @[simp]
 theorem sigmaCurry_add [∀ i j, AddZeroClass (δ i j)] (f g : Π₀ i : Σ i, α i, δ i.1 i.2) :
     @sigmaCurry _ _ δ _ (f + g) = @sigmaCurry _ _ δ _ f + @sigmaCurry ι α δ _ g :=
@@ -1784,10 +1784,10 @@ theorem sigmaCurry_add [∀ i j, AddZeroClass (δ i j)] (f g : Π₀ i : Σ i, 
   ext i j
   rw [@add_apply _ (fun i => Π₀ j, δ i j) _ (sigma_curry _), add_apply, sigma_curry_apply,
     sigma_curry_apply, sigma_curry_apply, add_apply]
-#align dfinsupp.sigma_curry_add Dfinsupp.sigmaCurry_add
+#align dfinsupp.sigma_curry_add DFinsupp.sigmaCurry_add
 -/
 
-#print Dfinsupp.sigmaCurry_smul /-
+#print DFinsupp.sigmaCurry_smul /-
 @[simp]
 theorem sigmaCurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)] [∀ i j, DistribMulAction γ (δ i j)]
     (r : γ) (f : Π₀ i : Σ i, α i, δ i.1 i.2) :
@@ -1796,10 +1796,10 @@ theorem sigmaCurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)] [∀ i j, Dist
   ext i j
   rw [@smul_apply _ _ (fun i => Π₀ j, δ i j) _ _ _ _ (sigma_curry _), smul_apply, sigma_curry_apply,
     sigma_curry_apply, smul_apply]
-#align dfinsupp.sigma_curry_smul Dfinsupp.sigmaCurry_smul
+#align dfinsupp.sigma_curry_smul DFinsupp.sigmaCurry_smul
 -/
 
-#print Dfinsupp.sigmaCurry_single /-
+#print DFinsupp.sigmaCurry_single /-
 @[simp]
 theorem sigmaCurry_single [DecidableEq ι] [∀ i, DecidableEq (α i)] [∀ i j, Zero (δ i j)]
     (ij : Σ i, α i) (x : δ ij.1 ij.2) :
@@ -1817,11 +1817,11 @@ theorem sigmaCurry_single [DecidableEq ι] [∀ i, DecidableEq (α i)] [∀ i j,
       simpa using hj
   · rw [single_eq_of_ne, single_eq_of_ne hi, zero_apply]
     simpa using hi
-#align dfinsupp.sigma_curry_single Dfinsupp.sigmaCurry_single
+#align dfinsupp.sigma_curry_single DFinsupp.sigmaCurry_single
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
-#print Dfinsupp.sigmaUncurry /-
+#print DFinsupp.sigmaUncurry /-
 /-- The natural map between `Π₀ i (j : α i), δ i j` and `Π₀ (i : Σ i, α i), δ i.1 i.2`, inverse of
 `curry`.-/
 def sigmaUncurry [∀ i j, Zero (δ i j)] [∀ i, DecidableEq (α i)]
@@ -1840,49 +1840,49 @@ def sigmaUncurry [∀ i j, Zero (δ i j)] [∀ i, DecidableEq (α i)]
           · exact Or.inl ⟨_, hi, i.2, hi', Sigma.eta _⟩
         · right
           rw [hi, zero_apply]⟩
-#align dfinsupp.sigma_uncurry Dfinsupp.sigmaUncurry
+#align dfinsupp.sigma_uncurry DFinsupp.sigmaUncurry
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
-#print Dfinsupp.sigmaUncurry_apply /-
+#print DFinsupp.sigmaUncurry_apply /-
 @[simp]
 theorem sigmaUncurry_apply [∀ i j, Zero (δ i j)] [∀ i, DecidableEq (α i)]
     [∀ (i j) (x : δ i j), Decidable (x ≠ 0)] (f : Π₀ (i) (j), δ i j) (i : ι) (j : α i) :
     sigmaUncurry f ⟨i, j⟩ = f i j :=
   rfl
-#align dfinsupp.sigma_uncurry_apply Dfinsupp.sigmaUncurry_apply
+#align dfinsupp.sigma_uncurry_apply DFinsupp.sigmaUncurry_apply
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
-#print Dfinsupp.sigmaUncurry_zero /-
+#print DFinsupp.sigmaUncurry_zero /-
 @[simp]
 theorem sigmaUncurry_zero [∀ i j, Zero (δ i j)] [∀ i, DecidableEq (α i)]
     [∀ (i j) (x : δ i j), Decidable (x ≠ 0)] : sigmaUncurry (0 : Π₀ (i) (j), δ i j) = 0 :=
   rfl
-#align dfinsupp.sigma_uncurry_zero Dfinsupp.sigmaUncurry_zero
+#align dfinsupp.sigma_uncurry_zero DFinsupp.sigmaUncurry_zero
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
-#print Dfinsupp.sigmaUncurry_add /-
+#print DFinsupp.sigmaUncurry_add /-
 @[simp]
 theorem sigmaUncurry_add [∀ i j, AddZeroClass (δ i j)] [∀ i, DecidableEq (α i)]
     [∀ (i j) (x : δ i j), Decidable (x ≠ 0)] (f g : Π₀ (i) (j), δ i j) :
     sigmaUncurry (f + g) = sigmaUncurry f + sigmaUncurry g :=
   coeFn_injective rfl
-#align dfinsupp.sigma_uncurry_add Dfinsupp.sigmaUncurry_add
+#align dfinsupp.sigma_uncurry_add DFinsupp.sigmaUncurry_add
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
-#print Dfinsupp.sigmaUncurry_smul /-
+#print DFinsupp.sigmaUncurry_smul /-
 @[simp]
 theorem sigmaUncurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)] [∀ i, DecidableEq (α i)]
     [∀ (i j) (x : δ i j), Decidable (x ≠ 0)] [∀ i j, DistribMulAction γ (δ i j)] (r : γ)
     (f : Π₀ (i) (j), δ i j) : sigmaUncurry (r • f) = r • sigmaUncurry f :=
   coeFn_injective rfl
-#align dfinsupp.sigma_uncurry_smul Dfinsupp.sigmaUncurry_smul
+#align dfinsupp.sigma_uncurry_smul DFinsupp.sigmaUncurry_smul
 -/
 
-#print Dfinsupp.sigmaUncurry_single /-
+#print DFinsupp.sigmaUncurry_single /-
 @[simp]
 theorem sigmaUncurry_single [∀ i j, Zero (δ i j)] [DecidableEq ι] [∀ i, DecidableEq (α i)]
     [∀ (i j) (x : δ i j), Decidable (x ≠ 0)] (i) (j : α i) (x : δ i j) :
@@ -1899,11 +1899,11 @@ theorem sigmaUncurry_single [∀ i j, Zero (δ i j)] [DecidableEq ι] [∀ i, De
       simpa using hj
   · rw [single_eq_of_ne hi, single_eq_of_ne, zero_apply]
     simpa using hi
-#align dfinsupp.sigma_uncurry_single Dfinsupp.sigmaUncurry_single
+#align dfinsupp.sigma_uncurry_single DFinsupp.sigmaUncurry_single
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
-#print Dfinsupp.sigmaCurryEquiv /-
+#print DFinsupp.sigmaCurryEquiv /-
 /-- The natural bijection between `Π₀ (i : Σ i, α i), δ i.1 i.2` and `Π₀ i (j : α i), δ i j`.
 
 This is the dfinsupp version of `equiv.Pi_curry`. -/
@@ -1914,14 +1914,14 @@ noncomputable def sigmaCurryEquiv [∀ i j, Zero (δ i j)] [∀ i, DecidableEq (
   invFun := sigmaUncurry
   left_inv f := by ext ⟨i, j⟩; rw [sigma_uncurry_apply, sigma_curry_apply]
   right_inv f := by ext i j; rw [sigma_curry_apply, sigma_uncurry_apply]
-#align dfinsupp.sigma_curry_equiv Dfinsupp.sigmaCurryEquiv
+#align dfinsupp.sigma_curry_equiv DFinsupp.sigmaCurryEquiv
 -/
 
 end Curry
 
 variable {α : Option ι → Type v}
 
-#print Dfinsupp.extendWith /-
+#print DFinsupp.extendWith /-
 /-- Adds a term to a dfinsupp, making a dfinsupp indexed by an `option`.
 
 This is the dfinsupp version of `option.rec`. -/
@@ -1935,26 +1935,26 @@ def extendWith [∀ i, Zero (α i)] (a : α none) (f : Π₀ i, α (some i)) : 
           (fun i =>
             (s.Prop i).imp_left fun h => Multiset.mem_cons_of_mem <| Multiset.mem_map_of_mem _ h)
           i⟩
-#align dfinsupp.extend_with Dfinsupp.extendWith
+#align dfinsupp.extend_with DFinsupp.extendWith
 -/
 
-#print Dfinsupp.extendWith_none /-
+#print DFinsupp.extendWith_none /-
 @[simp]
 theorem extendWith_none [∀ i, Zero (α i)] (f : Π₀ i, α (some i)) (a : α none) :
     f.extendWith a none = a :=
   rfl
-#align dfinsupp.extend_with_none Dfinsupp.extendWith_none
+#align dfinsupp.extend_with_none DFinsupp.extendWith_none
 -/
 
-#print Dfinsupp.extendWith_some /-
+#print DFinsupp.extendWith_some /-
 @[simp]
 theorem extendWith_some [∀ i, Zero (α i)] (f : Π₀ i, α (some i)) (a : α none) (i : ι) :
     f.extendWith a (some i) = f i :=
   rfl
-#align dfinsupp.extend_with_some Dfinsupp.extendWith_some
+#align dfinsupp.extend_with_some DFinsupp.extendWith_some
 -/
 
-#print Dfinsupp.extendWith_single_zero /-
+#print DFinsupp.extendWith_single_zero /-
 @[simp]
 theorem extendWith_single_zero [DecidableEq ι] [∀ i, Zero (α i)] (i : ι) (x : α (some i)) :
     (single i x).extendWith 0 = single (some i) x :=
@@ -1965,10 +1965,10 @@ theorem extendWith_single_zero [DecidableEq ι] [∀ i, Zero (α i)] (i : ι) (x
     obtain rfl | hij := Decidable.eq_or_ne i j
     · rw [single_eq_same, single_eq_same]
     · rw [single_eq_of_ne hij, single_eq_of_ne ((Option.some_injective _).Ne hij)]
-#align dfinsupp.extend_with_single_zero Dfinsupp.extendWith_single_zero
+#align dfinsupp.extend_with_single_zero DFinsupp.extendWith_single_zero
 -/
 
-#print Dfinsupp.extendWith_zero /-
+#print DFinsupp.extendWith_zero /-
 @[simp]
 theorem extendWith_zero [DecidableEq ι] [∀ i, Zero (α i)] (x : α none) :
     (0 : Π₀ i, α (some i)).extendWith x = single none x :=
@@ -1976,15 +1976,15 @@ theorem extendWith_zero [DecidableEq ι] [∀ i, Zero (α i)] (x : α none) :
   ext (_ | j)
   · rw [extend_with_none, single_eq_same]
   · rw [extend_with_some, single_eq_of_ne (Option.some_ne_none _).symm, zero_apply]
-#align dfinsupp.extend_with_zero Dfinsupp.extendWith_zero
+#align dfinsupp.extend_with_zero DFinsupp.extendWith_zero
 -/
 
-#print Dfinsupp.equivProdDfinsupp /-
+#print DFinsupp.equivProdDFinsupp /-
 /-- Bijection obtained by separating the term of index `none` of a dfinsupp over `option ι`.
 
 This is the dfinsupp version of `equiv.pi_option_equiv_prod`. -/
 @[simps]
-noncomputable def equivProdDfinsupp [∀ i, Zero (α i)] : (Π₀ i, α i) ≃ α none × Π₀ i, α (some i)
+noncomputable def equivProdDFinsupp [∀ i, Zero (α i)] : (Π₀ i, α i) ≃ α none × Π₀ i, α (some i)
     where
   toFun f := (f none, comapDomain some (Option.some_injective _) f)
   invFun f := f.2.extendWith f.1
@@ -1997,38 +1997,38 @@ noncomputable def equivProdDfinsupp [∀ i, Zero (α i)] : (Π₀ i, α i) ≃ 
     ext
     · exact extend_with_none x.snd _
     · rw [comap_domain_apply, extend_with_some]
-#align dfinsupp.equiv_prod_dfinsupp Dfinsupp.equivProdDfinsupp
+#align dfinsupp.equiv_prod_dfinsupp DFinsupp.equivProdDFinsupp
 -/
 
-#print Dfinsupp.equivProdDfinsupp_add /-
-theorem equivProdDfinsupp_add [∀ i, AddZeroClass (α i)] (f g : Π₀ i, α i) :
-    equivProdDfinsupp (f + g) = equivProdDfinsupp f + equivProdDfinsupp g :=
+#print DFinsupp.equivProdDFinsupp_add /-
+theorem equivProdDFinsupp_add [∀ i, AddZeroClass (α i)] (f g : Π₀ i, α i) :
+    equivProdDFinsupp (f + g) = equivProdDFinsupp f + equivProdDFinsupp g :=
   Prod.ext (add_apply _ _ _) (comapDomain_add _ _ _ _)
-#align dfinsupp.equiv_prod_dfinsupp_add Dfinsupp.equivProdDfinsupp_add
+#align dfinsupp.equiv_prod_dfinsupp_add DFinsupp.equivProdDFinsupp_add
 -/
 
-#print Dfinsupp.equivProdDfinsupp_smul /-
-theorem equivProdDfinsupp_smul [Monoid γ] [∀ i, AddMonoid (α i)] [∀ i, DistribMulAction γ (α i)]
-    (r : γ) (f : Π₀ i, α i) : equivProdDfinsupp (r • f) = r • equivProdDfinsupp f :=
+#print DFinsupp.equivProdDFinsupp_smul /-
+theorem equivProdDFinsupp_smul [Monoid γ] [∀ i, AddMonoid (α i)] [∀ i, DistribMulAction γ (α i)]
+    (r : γ) (f : Π₀ i, α i) : equivProdDFinsupp (r • f) = r • equivProdDFinsupp f :=
   Prod.ext (smul_apply _ _ _) (comapDomain_smul _ _ _ _)
-#align dfinsupp.equiv_prod_dfinsupp_smul Dfinsupp.equivProdDfinsupp_smul
+#align dfinsupp.equiv_prod_dfinsupp_smul DFinsupp.equivProdDFinsupp_smul
 -/
 
 end Equiv
 
 section ProdAndSum
 
-#print Dfinsupp.prod /-
+#print DFinsupp.prod /-
 /-- `prod f g` is the product of `g i (f i)` over the support of `f`. -/
 @[to_additive "`sum f g` is the sum of `g i (f i)` over the support of `f`."]
 def prod [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ] (f : Π₀ i, β i)
     (g : ∀ i, β i → γ) : γ :=
   ∏ i in f.support, g i (f i)
-#align dfinsupp.prod Dfinsupp.prod
-#align dfinsupp.sum Dfinsupp.sum
+#align dfinsupp.prod DFinsupp.prod
+#align dfinsupp.sum DFinsupp.sum
 -/
 
-#print Dfinsupp.prod_mapRange_index /-
+#print DFinsupp.prod_mapRange_index /-
 @[to_additive]
 theorem prod_mapRange_index {β₁ : ι → Type v₁} {β₂ : ι → Type v₂} [∀ i, Zero (β₁ i)]
     [∀ i, Zero (β₂ i)] [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ (i) (x : β₂ i), Decidable (x ≠ 0)]
@@ -2043,42 +2043,42 @@ theorem prod_mapRange_index {β₁ : ι → Type v₁} {β₂ : ι → Type v₂
   · refine' Finset.prod_congr rfl _
     intro i h1
     simp [h1]
-#align dfinsupp.prod_map_range_index Dfinsupp.prod_mapRange_index
-#align dfinsupp.sum_map_range_index Dfinsupp.sum_mapRange_index
+#align dfinsupp.prod_map_range_index DFinsupp.prod_mapRange_index
+#align dfinsupp.sum_map_range_index DFinsupp.sum_mapRange_index
 -/
 
-#print Dfinsupp.prod_zero_index /-
+#print DFinsupp.prod_zero_index /-
 @[to_additive]
 theorem prod_zero_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     [CommMonoid γ] {h : ∀ i, β i → γ} : (0 : Π₀ i, β i).Prod h = 1 :=
   rfl
-#align dfinsupp.prod_zero_index Dfinsupp.prod_zero_index
-#align dfinsupp.sum_zero_index Dfinsupp.sum_zero_index
+#align dfinsupp.prod_zero_index DFinsupp.prod_zero_index
+#align dfinsupp.sum_zero_index DFinsupp.sum_zero_index
 -/
 
-#print Dfinsupp.prod_single_index /-
+#print DFinsupp.prod_single_index /-
 @[to_additive]
 theorem prod_single_index [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {i : ι} {b : β i} {h : ∀ i, β i → γ} (h_zero : h i 0 = 1) : (single i b).Prod h = h i b :=
   by
   by_cases h : b ≠ 0
-  · simp [Dfinsupp.prod, support_single_ne_zero h]
+  · simp [DFinsupp.prod, support_single_ne_zero h]
   · rw [Classical.not_not] at h ; simp [h, prod_zero_index, h_zero]; rfl
-#align dfinsupp.prod_single_index Dfinsupp.prod_single_index
-#align dfinsupp.sum_single_index Dfinsupp.sum_single_index
+#align dfinsupp.prod_single_index DFinsupp.prod_single_index
+#align dfinsupp.sum_single_index DFinsupp.sum_single_index
 -/
 
-#print Dfinsupp.prod_neg_index /-
+#print DFinsupp.prod_neg_index /-
 @[to_additive]
 theorem prod_neg_index [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {g : Π₀ i, β i} {h : ∀ i, β i → γ} (h0 : ∀ i, h i 0 = 1) :
     (-g).Prod h = g.Prod fun i b => h i (-b) :=
   prod_mapRange_index h0
-#align dfinsupp.prod_neg_index Dfinsupp.prod_neg_index
-#align dfinsupp.sum_neg_index Dfinsupp.sum_neg_index
+#align dfinsupp.prod_neg_index DFinsupp.prod_neg_index
+#align dfinsupp.sum_neg_index DFinsupp.sum_neg_index
 -/
 
-#print Dfinsupp.prod_comm /-
+#print DFinsupp.prod_comm /-
 @[to_additive]
 theorem prod_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂ : ι₂ → Type _} [DecidableEq ι₁]
     [DecidableEq ι₂] [∀ i, Zero (β₁ i)] [∀ i, Zero (β₂ i)] [∀ (i) (x : β₁ i), Decidable (x ≠ 0)]
@@ -2087,20 +2087,20 @@ theorem prod_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂ : ι
     (f₁.Prod fun i₁ x₁ => f₂.Prod fun i₂ x₂ => h i₁ x₁ i₂ x₂) =
       f₂.Prod fun i₂ x₂ => f₁.Prod fun i₁ x₁ => h i₁ x₁ i₂ x₂ :=
   Finset.prod_comm
-#align dfinsupp.prod_comm Dfinsupp.prod_comm
-#align dfinsupp.sum_comm Dfinsupp.sum_comm
+#align dfinsupp.prod_comm DFinsupp.prod_comm
+#align dfinsupp.sum_comm DFinsupp.sum_comm
 -/
 
-#print Dfinsupp.sum_apply /-
+#print DFinsupp.sum_apply /-
 @[simp]
 theorem sum_apply {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
     [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)] {f : Π₀ i₁, β₁ i₁}
     {g : ∀ i₁, β₁ i₁ → Π₀ i, β i} {i₂ : ι} : (f.Sum g) i₂ = f.Sum fun i₁ b => g i₁ b i₂ :=
   (evalAddMonoidHom i₂ : (Π₀ i, β i) →+ β i₂).map_sum _ f.support
-#align dfinsupp.sum_apply Dfinsupp.sum_apply
+#align dfinsupp.sum_apply DFinsupp.sum_apply
 -/
 
-#print Dfinsupp.support_sum /-
+#print DFinsupp.support_sum /-
 theorem support_sum {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
     [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)]
     [∀ (i) (x : β i), Decidable (x ≠ 0)] {f : Π₀ i₁, β₁ i₁} {g : ∀ i₁, β₁ i₁ → Π₀ i, β i} :
@@ -2113,55 +2113,55 @@ theorem support_sum {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → T
     let ⟨i, hi, Ne⟩ := Finset.exists_ne_zero_of_sum_ne_zero h
     ⟨i, mem_support_iff.1 hi, Ne⟩
   simpa [Finset.subset_iff, mem_support_iff, Finset.mem_biUnion, sum_apply] using this
-#align dfinsupp.support_sum Dfinsupp.support_sum
+#align dfinsupp.support_sum DFinsupp.support_sum
 -/
 
-#print Dfinsupp.prod_one /-
+#print DFinsupp.prod_one /-
 @[simp, to_additive]
 theorem prod_one [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {f : Π₀ i, β i} : (f.Prod fun i b => (1 : γ)) = 1 :=
   Finset.prod_const_one
-#align dfinsupp.prod_one Dfinsupp.prod_one
-#align dfinsupp.sum_zero Dfinsupp.sum_zero
+#align dfinsupp.prod_one DFinsupp.prod_one
+#align dfinsupp.sum_zero DFinsupp.sum_zero
 -/
 
-#print Dfinsupp.prod_mul /-
+#print DFinsupp.prod_mul /-
 @[simp, to_additive]
 theorem prod_mul [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {f : Π₀ i, β i} {h₁ h₂ : ∀ i, β i → γ} :
     (f.Prod fun i b => h₁ i b * h₂ i b) = f.Prod h₁ * f.Prod h₂ :=
   Finset.prod_mul_distrib
-#align dfinsupp.prod_mul Dfinsupp.prod_mul
-#align dfinsupp.sum_add Dfinsupp.sum_add
+#align dfinsupp.prod_mul DFinsupp.prod_mul
+#align dfinsupp.sum_add DFinsupp.sum_add
 -/
 
-#print Dfinsupp.prod_inv /-
+#print DFinsupp.prod_inv /-
 @[simp, to_additive]
 theorem prod_inv [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommGroup γ]
     {f : Π₀ i, β i} {h : ∀ i, β i → γ} : (f.Prod fun i b => (h i b)⁻¹) = (f.Prod h)⁻¹ :=
   ((invMonoidHom : γ →* γ).map_prod _ f.support).symm
-#align dfinsupp.prod_inv Dfinsupp.prod_inv
-#align dfinsupp.sum_neg Dfinsupp.sum_neg
+#align dfinsupp.prod_inv DFinsupp.prod_inv
+#align dfinsupp.sum_neg DFinsupp.sum_neg
 -/
 
-#print Dfinsupp.prod_eq_one /-
+#print DFinsupp.prod_eq_one /-
 @[to_additive]
 theorem prod_eq_one [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {f : Π₀ i, β i} {h : ∀ i, β i → γ} (hyp : ∀ i, h i (f i) = 1) : f.Prod h = 1 :=
   Finset.prod_eq_one fun i hi => hyp i
-#align dfinsupp.prod_eq_one Dfinsupp.prod_eq_one
-#align dfinsupp.sum_eq_zero Dfinsupp.sum_eq_zero
+#align dfinsupp.prod_eq_one DFinsupp.prod_eq_one
+#align dfinsupp.sum_eq_zero DFinsupp.sum_eq_zero
 -/
 
-#print Dfinsupp.smul_sum /-
+#print DFinsupp.smul_sum /-
 theorem smul_sum {α : Type _} [Monoid α] [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     [AddCommMonoid γ] [DistribMulAction α γ] {f : Π₀ i, β i} {h : ∀ i, β i → γ} {c : α} :
     c • f.Sum h = f.Sum fun a b => c • h a b :=
   Finset.smul_sum
-#align dfinsupp.smul_sum Dfinsupp.smul_sum
+#align dfinsupp.smul_sum DFinsupp.smul_sum
 -/
 
-#print Dfinsupp.prod_add_index /-
+#print DFinsupp.prod_add_index /-
 @[to_additive]
 theorem prod_add_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     [CommMonoid γ] {f g : Π₀ i, β i} {h : ∀ i, β i → γ} (h_zero : ∀ i, h i 0 = 1)
@@ -2179,8 +2179,8 @@ theorem prod_add_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decida
     _ = (∏ i in f.support ∪ g.support, h i (f i)) * ∏ i in f.support ∪ g.support, h i (g i) := by
       simp [h_add, Finset.prod_mul_distrib]
     _ = _ := by rw [f_eq, g_eq]
-#align dfinsupp.prod_add_index Dfinsupp.prod_add_index
-#align dfinsupp.sum_add_index Dfinsupp.sum_add_index
+#align dfinsupp.prod_add_index DFinsupp.prod_add_index
+#align dfinsupp.sum_add_index DFinsupp.sum_add_index
 -/
 
 #print dfinsupp_prod_mem /-
@@ -2193,22 +2193,22 @@ theorem dfinsupp_prod_mem [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x
 #align dfinsupp_sum_mem dfinsupp_sum_mem
 -/
 
-#print Dfinsupp.prod_eq_prod_fintype /-
+#print DFinsupp.prod_eq_prod_fintype /-
 @[simp, to_additive]
 theorem prod_eq_prod_fintype [Fintype ι] [∀ i, Zero (β i)] [∀ (i : ι) (x : β i), Decidable (x ≠ 0)]
     [CommMonoid γ] (v : Π₀ i, β i) [f : ∀ i, β i → γ] (hf : ∀ i, f i 0 = 1) :
-    v.Prod f = ∏ i, f i (Dfinsupp.equivFunOnFintype v i) :=
+    v.Prod f = ∏ i, f i (DFinsupp.equivFunOnFintype v i) :=
   by
-  suffices ∏ i in v.support, f i (v i) = ∏ i, f i (v i) by simp [Dfinsupp.prod, this]
+  suffices ∏ i in v.support, f i (v i) = ∏ i, f i (v i) by simp [DFinsupp.prod, this]
   apply Finset.prod_subset v.support.subset_univ
   intro i hi' hi
   rw [mem_support_iff, Classical.not_not] at hi 
   rw [hi, hf]
-#align dfinsupp.prod_eq_prod_fintype Dfinsupp.prod_eq_prod_fintype
-#align dfinsupp.sum_eq_sum_fintype Dfinsupp.sum_eq_sum_fintype
+#align dfinsupp.prod_eq_prod_fintype DFinsupp.prod_eq_prod_fintype
+#align dfinsupp.sum_eq_sum_fintype DFinsupp.sum_eq_sum_fintype
 -/
 
-#print Dfinsupp.sumAddHom /-
+#print DFinsupp.sumAddHom /-
 /--
 When summing over an `add_monoid_hom`, the decidability assumption is not needed, and the result is
 also an `add_monoid_hom`.
@@ -2246,28 +2246,28 @@ def sumAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i
       · intro i H1 H2; simp only [Multiset.mem_toFinset, Multiset.mem_add] at H2 
         rw [(hg i).resolve_left H2, AddMonoidHom.map_zero]
   map_zero' := rfl
-#align dfinsupp.sum_add_hom Dfinsupp.sumAddHom
+#align dfinsupp.sum_add_hom DFinsupp.sumAddHom
 -/
 
-#print Dfinsupp.sumAddHom_single /-
+#print DFinsupp.sumAddHom_single /-
 @[simp]
 theorem sumAddHom_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i →+ γ) (i)
     (x : β i) : sumAddHom φ (single i x) = φ i x :=
   by
   dsimp [sum_add_hom, single, Trunc.lift_mk]
   rw [Multiset.toFinset_singleton, Finset.sum_singleton, Pi.single_eq_same]
-#align dfinsupp.sum_add_hom_single Dfinsupp.sumAddHom_single
+#align dfinsupp.sum_add_hom_single DFinsupp.sumAddHom_single
 -/
 
-#print Dfinsupp.sumAddHom_comp_single /-
+#print DFinsupp.sumAddHom_comp_single /-
 @[simp]
 theorem sumAddHom_comp_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f : ∀ i, β i →+ γ)
     (i : ι) : (sumAddHom f).comp (singleAddHom β i) = f i :=
   AddMonoidHom.ext fun x => sumAddHom_single f i x
-#align dfinsupp.sum_add_hom_comp_single Dfinsupp.sumAddHom_comp_single
+#align dfinsupp.sum_add_hom_comp_single DFinsupp.sumAddHom_comp_single
 -/
 
-#print Dfinsupp.sumAddHom_apply /-
+#print DFinsupp.sumAddHom_apply /-
 /-- While we didn't need decidable instances to define it, we do to reduce it to a sum -/
 theorem sumAddHom_apply [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     [AddCommMonoid γ] (φ : ∀ i, β i →+ γ) (f : Π₀ i, β i) : sumAddHom φ f = f.Sum fun x => φ x :=
@@ -2280,15 +2280,15 @@ theorem sumAddHom_apply [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decida
   split_ifs
   rfl
   rw [not_not.mp h, AddMonoidHom.map_zero]
-#align dfinsupp.sum_add_hom_apply Dfinsupp.sumAddHom_apply
+#align dfinsupp.sum_add_hom_apply DFinsupp.sumAddHom_apply
 -/
 
 #print dfinsupp_sumAddHom_mem /-
 theorem dfinsupp_sumAddHom_mem [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] {S : Type _}
     [SetLike S γ] [AddSubmonoidClass S γ] (s : S) (f : Π₀ i, β i) (g : ∀ i, β i →+ γ)
-    (h : ∀ c, f c ≠ 0 → g c (f c) ∈ s) : Dfinsupp.sumAddHom g f ∈ s := by
+    (h : ∀ c, f c ≠ 0 → g c (f c) ∈ s) : DFinsupp.sumAddHom g f ∈ s := by
   classical
-  rw [Dfinsupp.sumAddHom_apply]
+  rw [DFinsupp.sumAddHom_apply]
   convert dfinsupp_sum_mem _ _ _ _
   · infer_instance
   exact h
@@ -2300,12 +2300,12 @@ theorem dfinsupp_sumAddHom_mem [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] {
 `dfinsupp.sum_add_hom`; that is, every element in the `supr` can be produced from taking a finite
 number of non-zero elements of `S i`, coercing them to `γ`, and summing them. -/
 theorem AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom [AddCommMonoid γ] (S : ι → AddSubmonoid γ) :
-    iSup S = (Dfinsupp.sumAddHom fun i => (S i).Subtype).mrange :=
+    iSup S = (DFinsupp.sumAddHom fun i => (S i).Subtype).mrange :=
   by
   apply le_antisymm
   · apply iSup_le _
     intro i y hy
-    exact ⟨Dfinsupp.single i ⟨y, hy⟩, Dfinsupp.sumAddHom_single _ _ _⟩
+    exact ⟨DFinsupp.single i ⟨y, hy⟩, DFinsupp.sumAddHom_single _ _ _⟩
   · rintro x ⟨v, rfl⟩
     exact dfinsupp_sumAddHom_mem _ v _ fun i _ => (le_iSup S i : S i ≤ _) (v i).Prop
 #align add_submonoid.supr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom
@@ -2322,7 +2322,7 @@ theorem AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom (p : ι → Prop) [Decid
       ((sumAddHom fun i => (S i).Subtype).comp (filterAddMonoidHom _ p)).mrange :=
   by
   apply le_antisymm
-  · refine' iSup₂_le fun i hi y hy => ⟨Dfinsupp.single i ⟨y, hy⟩, _⟩
+  · refine' iSup₂_le fun i hi y hy => ⟨DFinsupp.single i ⟨y, hy⟩, _⟩
     rw [AddMonoidHom.comp_apply, filter_add_monoid_hom_apply, filter_single_pos _ _ hi]
     exact sum_add_hom_single _ _ _
   · rintro x ⟨v, rfl⟩
@@ -2336,7 +2336,7 @@ theorem AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom (p : ι → Prop) [Decid
 
 #print AddSubmonoid.mem_iSup_iff_exists_dfinsupp /-
 theorem AddSubmonoid.mem_iSup_iff_exists_dfinsupp [AddCommMonoid γ] (S : ι → AddSubmonoid γ)
-    (x : γ) : x ∈ iSup S ↔ ∃ f : Π₀ i, S i, Dfinsupp.sumAddHom (fun i => (S i).Subtype) f = x :=
+    (x : γ) : x ∈ iSup S ↔ ∃ f : Π₀ i, S i, DFinsupp.sumAddHom (fun i => (S i).Subtype) f = x :=
   SetLike.ext_iff.mp (AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom S) x
 #align add_submonoid.mem_supr_iff_exists_dfinsupp AddSubmonoid.mem_iSup_iff_exists_dfinsupp
 -/
@@ -2357,12 +2357,12 @@ theorem AddSubmonoid.mem_iSup_iff_exists_dfinsupp' [AddCommMonoid γ] (S : ι 
 theorem AddSubmonoid.mem_bsupr_iff_exists_dfinsupp (p : ι → Prop) [DecidablePred p]
     [AddCommMonoid γ] (S : ι → AddSubmonoid γ) (x : γ) :
     (x ∈ ⨆ (i) (h : p i), S i) ↔
-      ∃ f : Π₀ i, S i, Dfinsupp.sumAddHom (fun i => (S i).Subtype) (f.filterₓ p) = x :=
+      ∃ f : Π₀ i, S i, DFinsupp.sumAddHom (fun i => (S i).Subtype) (f.filterₓ p) = x :=
   SetLike.ext_iff.mp (AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom p S) x
 #align add_submonoid.mem_bsupr_iff_exists_dfinsupp AddSubmonoid.mem_bsupr_iff_exists_dfinsupp
 -/
 
-#print Dfinsupp.sumAddHom_comm /-
+#print DFinsupp.sumAddHom_comm /-
 theorem sumAddHom_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂ : ι₂ → Type _} {γ : Type _}
     [DecidableEq ι₁] [DecidableEq ι₂] [∀ i, AddZeroClass (β₁ i)] [∀ i, AddZeroClass (β₂ i)]
     [AddCommMonoid γ] (f₁ : Π₀ i, β₁ i) (f₂ : Π₀ i, β₂ i) (h : ∀ i j, β₁ i →+ β₂ j →+ γ) :
@@ -2373,10 +2373,10 @@ theorem sumAddHom_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂
   simp only [sum_add_hom, AddMonoidHom.finset_sum_apply, Quotient.liftOn_mk, AddMonoidHom.coe_mk,
     AddMonoidHom.flip_apply, Trunc.lift]
   exact Finset.sum_comm
-#align dfinsupp.sum_add_hom_comm Dfinsupp.sumAddHom_comm
+#align dfinsupp.sum_add_hom_comm DFinsupp.sumAddHom_comm
 -/
 
-#print Dfinsupp.liftAddHom /-
+#print DFinsupp.liftAddHom /-
 /-- The `dfinsupp` version of `finsupp.lift_add_hom`,-/
 @[simps apply symm_apply]
 def liftAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] : (∀ i, β i →+ γ) ≃+ ((Π₀ i, β i) →+ γ)
@@ -2386,74 +2386,74 @@ def liftAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] : (∀ i, β i 
   left_inv x := by ext; simp
   right_inv ψ := by ext; simp
   map_add' F G := by ext; simp
-#align dfinsupp.lift_add_hom Dfinsupp.liftAddHom
+#align dfinsupp.lift_add_hom DFinsupp.liftAddHom
 -/
 
-#print Dfinsupp.liftAddHom_singleAddHom /-
+#print DFinsupp.liftAddHom_singleAddHom /-
 /-- The `dfinsupp` version of `finsupp.lift_add_hom_single_add_hom`,-/
 @[simp]
 theorem liftAddHom_singleAddHom [∀ i, AddCommMonoid (β i)] :
     liftAddHom (singleAddHom β) = AddMonoidHom.id (Π₀ i, β i) :=
   liftAddHom.toEquiv.apply_eq_iff_eq_symm_apply.2 rfl
-#align dfinsupp.lift_add_hom_single_add_hom Dfinsupp.liftAddHom_singleAddHom
+#align dfinsupp.lift_add_hom_single_add_hom DFinsupp.liftAddHom_singleAddHom
 -/
 
-#print Dfinsupp.liftAddHom_apply_single /-
+#print DFinsupp.liftAddHom_apply_single /-
 /-- The `dfinsupp` version of `finsupp.lift_add_hom_apply_single`,-/
 theorem liftAddHom_apply_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f : ∀ i, β i →+ γ)
     (i : ι) (x : β i) : liftAddHom f (single i x) = f i x := by simp
-#align dfinsupp.lift_add_hom_apply_single Dfinsupp.liftAddHom_apply_single
+#align dfinsupp.lift_add_hom_apply_single DFinsupp.liftAddHom_apply_single
 -/
 
-#print Dfinsupp.liftAddHom_comp_single /-
+#print DFinsupp.liftAddHom_comp_single /-
 /-- The `dfinsupp` version of `finsupp.lift_add_hom_comp_single`,-/
 theorem liftAddHom_comp_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f : ∀ i, β i →+ γ)
     (i : ι) : (liftAddHom f).comp (singleAddHom β i) = f i := by simp
-#align dfinsupp.lift_add_hom_comp_single Dfinsupp.liftAddHom_comp_single
+#align dfinsupp.lift_add_hom_comp_single DFinsupp.liftAddHom_comp_single
 -/
 
-#print Dfinsupp.comp_liftAddHom /-
+#print DFinsupp.comp_liftAddHom /-
 /-- The `dfinsupp` version of `finsupp.comp_lift_add_hom`,-/
 theorem comp_liftAddHom {δ : Type _} [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] [AddCommMonoid δ]
     (g : γ →+ δ) (f : ∀ i, β i →+ γ) : g.comp (liftAddHom f) = liftAddHom fun a => g.comp (f a) :=
   liftAddHom.symm_apply_eq.1 <|
     funext fun a => by
       rw [lift_add_hom_symm_apply, AddMonoidHom.comp_assoc, lift_add_hom_comp_single]
-#align dfinsupp.comp_lift_add_hom Dfinsupp.comp_liftAddHom
+#align dfinsupp.comp_lift_add_hom DFinsupp.comp_liftAddHom
 -/
 
-#print Dfinsupp.sumAddHom_zero /-
+#print DFinsupp.sumAddHom_zero /-
 @[simp]
 theorem sumAddHom_zero [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] :
     (sumAddHom fun i => (0 : β i →+ γ)) = 0 :=
   (liftAddHom : (∀ i, β i →+ γ) ≃+ _).map_zero
-#align dfinsupp.sum_add_hom_zero Dfinsupp.sumAddHom_zero
+#align dfinsupp.sum_add_hom_zero DFinsupp.sumAddHom_zero
 -/
 
-#print Dfinsupp.sumAddHom_add /-
+#print DFinsupp.sumAddHom_add /-
 @[simp]
 theorem sumAddHom_add [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (g : ∀ i, β i →+ γ)
     (h : ∀ i, β i →+ γ) : (sumAddHom fun i => g i + h i) = sumAddHom g + sumAddHom h :=
   liftAddHom.map_add _ _
-#align dfinsupp.sum_add_hom_add Dfinsupp.sumAddHom_add
+#align dfinsupp.sum_add_hom_add DFinsupp.sumAddHom_add
 -/
 
-#print Dfinsupp.sumAddHom_singleAddHom /-
+#print DFinsupp.sumAddHom_singleAddHom /-
 @[simp]
 theorem sumAddHom_singleAddHom [∀ i, AddCommMonoid (β i)] :
     sumAddHom (singleAddHom β) = AddMonoidHom.id _ :=
   liftAddHom_singleAddHom
-#align dfinsupp.sum_add_hom_single_add_hom Dfinsupp.sumAddHom_singleAddHom
+#align dfinsupp.sum_add_hom_single_add_hom DFinsupp.sumAddHom_singleAddHom
 -/
 
-#print Dfinsupp.comp_sumAddHom /-
+#print DFinsupp.comp_sumAddHom /-
 theorem comp_sumAddHom {δ : Type _} [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] [AddCommMonoid δ]
     (g : γ →+ δ) (f : ∀ i, β i →+ γ) : g.comp (sumAddHom f) = sumAddHom fun a => g.comp (f a) :=
   comp_liftAddHom _ _
-#align dfinsupp.comp_sum_add_hom Dfinsupp.comp_sumAddHom
+#align dfinsupp.comp_sum_add_hom DFinsupp.comp_sumAddHom
 -/
 
-#print Dfinsupp.sum_sub_index /-
+#print DFinsupp.sum_sub_index /-
 theorem sum_sub_index [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [AddCommGroup γ]
     {f g : Π₀ i, β i} {h : ∀ i, β i → γ} (h_sub : ∀ i b₁ b₂, h i (b₁ - b₂) = h i b₁ - h i b₂) :
     (f - g).Sum h = f.Sum h - g.Sum h :=
@@ -2461,10 +2461,10 @@ theorem sum_sub_index [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x
   have := (lift_add_hom fun a => AddMonoidHom.ofMapSub (h a) (h_sub a)).map_sub f g
   rw [lift_add_hom_apply, sum_add_hom_apply, sum_add_hom_apply, sum_add_hom_apply] at this 
   exact this
-#align dfinsupp.sum_sub_index Dfinsupp.sum_sub_index
+#align dfinsupp.sum_sub_index DFinsupp.sum_sub_index
 -/
 
-#print Dfinsupp.prod_finset_sum_index /-
+#print DFinsupp.prod_finset_sum_index /-
 @[to_additive]
 theorem prod_finset_sum_index {γ : Type w} {α : Type x} [∀ i, AddCommMonoid (β i)]
     [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ] {s : Finset α} {g : α → Π₀ i, β i}
@@ -2474,11 +2474,11 @@ theorem prod_finset_sum_index {γ : Type w} {α : Type x} [∀ i, AddCommMonoid
   classical exact
     Finset.induction_on s (by simp [prod_zero_index])
       (by simp (config := { contextual := true }) [prod_add_index, h_zero, h_add])
-#align dfinsupp.prod_finset_sum_index Dfinsupp.prod_finset_sum_index
-#align dfinsupp.sum_finset_sum_index Dfinsupp.sum_finset_sum_index
+#align dfinsupp.prod_finset_sum_index DFinsupp.prod_finset_sum_index
+#align dfinsupp.sum_finset_sum_index DFinsupp.sum_finset_sum_index
 -/
 
-#print Dfinsupp.prod_sum_index /-
+#print DFinsupp.prod_sum_index /-
 @[to_additive]
 theorem prod_sum_index {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
     [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)]
@@ -2487,11 +2487,11 @@ theorem prod_sum_index {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ 
     (h_add : ∀ i b₁ b₂, h i (b₁ + b₂) = h i b₁ * h i b₂) :
     (f.Sum g).Prod h = f.Prod fun i b => (g i b).Prod h :=
   (prod_finset_sum_index h_zero h_add).symm
-#align dfinsupp.prod_sum_index Dfinsupp.prod_sum_index
-#align dfinsupp.sum_sum_index Dfinsupp.sum_sum_index
+#align dfinsupp.prod_sum_index DFinsupp.prod_sum_index
+#align dfinsupp.sum_sum_index DFinsupp.sum_sum_index
 -/
 
-#print Dfinsupp.sum_single /-
+#print DFinsupp.sum_single /-
 @[simp]
 theorem sum_single [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] {f : Π₀ i, β i} :
     f.Sum single = f :=
@@ -2499,35 +2499,35 @@ theorem sum_single [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable
   have := AddMonoidHom.congr_fun lift_add_hom_single_add_hom f
   rw [lift_add_hom_apply, sum_add_hom_apply] at this 
   exact this
-#align dfinsupp.sum_single Dfinsupp.sum_single
+#align dfinsupp.sum_single DFinsupp.sum_single
 -/
 
-#print Dfinsupp.prod_subtypeDomain_index /-
+#print DFinsupp.prod_subtypeDomain_index /-
 @[to_additive]
 theorem prod_subtypeDomain_index [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     [CommMonoid γ] {v : Π₀ i, β i} {p : ι → Prop} [DecidablePred p] {h : ∀ i, β i → γ}
     (hp : ∀ x ∈ v.support, p x) : ((v.subtypeDomain p).Prod fun i b => h i b) = v.Prod h :=
   Finset.prod_bij (fun p _ => p) (by simp) (by simp) (fun ⟨a₀, ha₀⟩ ⟨a₁, ha₁⟩ => by simp)
     fun i hi => ⟨⟨i, hp i hi⟩, by simpa using hi, rfl⟩
-#align dfinsupp.prod_subtype_domain_index Dfinsupp.prod_subtypeDomain_index
-#align dfinsupp.sum_subtype_domain_index Dfinsupp.sum_subtypeDomain_index
+#align dfinsupp.prod_subtype_domain_index DFinsupp.prod_subtypeDomain_index
+#align dfinsupp.sum_subtype_domain_index DFinsupp.sum_subtypeDomain_index
 -/
 
-#print Dfinsupp.subtypeDomain_sum /-
+#print DFinsupp.subtypeDomain_sum /-
 theorem subtypeDomain_sum [∀ i, AddCommMonoid (β i)] {s : Finset γ} {h : γ → Π₀ i, β i}
     {p : ι → Prop} [DecidablePred p] :
     (∑ c in s, h c).subtypeDomain p = ∑ c in s, (h c).subtypeDomain p :=
   (subtypeDomainAddMonoidHom β p).map_sum _ s
-#align dfinsupp.subtype_domain_sum Dfinsupp.subtypeDomain_sum
+#align dfinsupp.subtype_domain_sum DFinsupp.subtypeDomain_sum
 -/
 
-#print Dfinsupp.subtypeDomain_finsupp_sum /-
+#print DFinsupp.subtypeDomain_finsupp_sum /-
 theorem subtypeDomain_finsupp_sum {δ : γ → Type x} [DecidableEq γ] [∀ c, Zero (δ c)]
     [∀ (c) (x : δ c), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)] {p : ι → Prop} [DecidablePred p]
     {s : Π₀ c, δ c} {h : ∀ c, δ c → Π₀ i, β i} :
     (s.Sum h).subtypeDomain p = s.Sum fun c d => (h c d).subtypeDomain p :=
   subtypeDomain_sum
-#align dfinsupp.subtype_domain_finsupp_sum Dfinsupp.subtypeDomain_finsupp_sum
+#align dfinsupp.subtype_domain_finsupp_sum DFinsupp.subtypeDomain_finsupp_sum
 -/
 
 end ProdAndSum
@@ -2542,17 +2542,17 @@ section MapRange
 
 variable [∀ i, AddZeroClass (β i)] [∀ i, AddZeroClass (β₁ i)] [∀ i, AddZeroClass (β₂ i)]
 
-#print Dfinsupp.mapRange_add /-
+#print DFinsupp.mapRange_add /-
 theorem mapRange_add (f : ∀ i, β₁ i → β₂ i) (hf : ∀ i, f i 0 = 0)
     (hf' : ∀ i x y, f i (x + y) = f i x + f i y) (g₁ g₂ : Π₀ i, β₁ i) :
     mapRange f hf (g₁ + g₂) = mapRange f hf g₁ + mapRange f hf g₂ :=
   by
   ext
   simp only [map_range_apply f, coe_add, Pi.add_apply, hf']
-#align dfinsupp.map_range_add Dfinsupp.mapRange_add
+#align dfinsupp.map_range_add DFinsupp.mapRange_add
 -/
 
-#print Dfinsupp.mapRange.addMonoidHom /-
+#print DFinsupp.mapRange.addMonoidHom /-
 /-- `dfinsupp.map_range` as an `add_monoid_hom`. -/
 @[simps apply]
 def mapRange.addMonoidHom (f : ∀ i, β₁ i →+ β₂ i) : (Π₀ i, β₁ i) →+ Π₀ i, β₂ i
@@ -2560,26 +2560,26 @@ def mapRange.addMonoidHom (f : ∀ i, β₁ i →+ β₂ i) : (Π₀ i, β₁ i)
   toFun := mapRange (fun i x => f i x) fun i => (f i).map_zero
   map_zero' := mapRange_zero _ _
   map_add' := mapRange_add _ _ fun i => (f i).map_add
-#align dfinsupp.map_range.add_monoid_hom Dfinsupp.mapRange.addMonoidHom
+#align dfinsupp.map_range.add_monoid_hom DFinsupp.mapRange.addMonoidHom
 -/
 
-#print Dfinsupp.mapRange.addMonoidHom_id /-
+#print DFinsupp.mapRange.addMonoidHom_id /-
 @[simp]
 theorem mapRange.addMonoidHom_id :
     (mapRange.addMonoidHom fun i => AddMonoidHom.id (β₂ i)) = AddMonoidHom.id _ :=
   AddMonoidHom.ext mapRange_id
-#align dfinsupp.map_range.add_monoid_hom_id Dfinsupp.mapRange.addMonoidHom_id
+#align dfinsupp.map_range.add_monoid_hom_id DFinsupp.mapRange.addMonoidHom_id
 -/
 
-#print Dfinsupp.mapRange.addMonoidHom_comp /-
+#print DFinsupp.mapRange.addMonoidHom_comp /-
 theorem mapRange.addMonoidHom_comp (f : ∀ i, β₁ i →+ β₂ i) (f₂ : ∀ i, β i →+ β₁ i) :
     (mapRange.addMonoidHom fun i => (f i).comp (f₂ i)) =
       (mapRange.addMonoidHom f).comp (mapRange.addMonoidHom f₂) :=
   AddMonoidHom.ext <| mapRange_comp (fun i x => f i x) (fun i x => f₂ i x) _ _ _
-#align dfinsupp.map_range.add_monoid_hom_comp Dfinsupp.mapRange.addMonoidHom_comp
+#align dfinsupp.map_range.add_monoid_hom_comp DFinsupp.mapRange.addMonoidHom_comp
 -/
 
-#print Dfinsupp.mapRange.addEquiv /-
+#print DFinsupp.mapRange.addEquiv /-
 /-- `dfinsupp.map_range.add_monoid_hom` as an `add_equiv`. -/
 @[simps apply]
 def mapRange.addEquiv (e : ∀ i, β₁ i ≃+ β₂ i) : (Π₀ i, β₁ i) ≃+ Π₀ i, β₂ i :=
@@ -2590,36 +2590,36 @@ def mapRange.addEquiv (e : ∀ i, β₁ i ≃+ β₂ i) : (Π₀ i, β₁ i) ≃
     invFun := mapRange (fun i x => (e i).symm x) fun i => (e i).symm.map_zero
     left_inv := fun x => by rw [← map_range_comp] <;> · simp_rw [AddEquiv.symm_comp_self]; simp
     right_inv := fun x => by rw [← map_range_comp] <;> · simp_rw [AddEquiv.self_comp_symm]; simp }
-#align dfinsupp.map_range.add_equiv Dfinsupp.mapRange.addEquiv
+#align dfinsupp.map_range.add_equiv DFinsupp.mapRange.addEquiv
 -/
 
-#print Dfinsupp.mapRange.addEquiv_refl /-
+#print DFinsupp.mapRange.addEquiv_refl /-
 @[simp]
 theorem mapRange.addEquiv_refl :
     (mapRange.addEquiv fun i => AddEquiv.refl (β₁ i)) = AddEquiv.refl _ :=
   AddEquiv.ext mapRange_id
-#align dfinsupp.map_range.add_equiv_refl Dfinsupp.mapRange.addEquiv_refl
+#align dfinsupp.map_range.add_equiv_refl DFinsupp.mapRange.addEquiv_refl
 -/
 
-#print Dfinsupp.mapRange.addEquiv_trans /-
+#print DFinsupp.mapRange.addEquiv_trans /-
 theorem mapRange.addEquiv_trans (f : ∀ i, β i ≃+ β₁ i) (f₂ : ∀ i, β₁ i ≃+ β₂ i) :
     (mapRange.addEquiv fun i => (f i).trans (f₂ i)) =
       (mapRange.addEquiv f).trans (mapRange.addEquiv f₂) :=
   AddEquiv.ext <| mapRange_comp (fun i x => f₂ i x) (fun i x => f i x) _ _ _
-#align dfinsupp.map_range.add_equiv_trans Dfinsupp.mapRange.addEquiv_trans
+#align dfinsupp.map_range.add_equiv_trans DFinsupp.mapRange.addEquiv_trans
 -/
 
-#print Dfinsupp.mapRange.addEquiv_symm /-
+#print DFinsupp.mapRange.addEquiv_symm /-
 @[simp]
 theorem mapRange.addEquiv_symm (e : ∀ i, β₁ i ≃+ β₂ i) :
     (mapRange.addEquiv e).symm = mapRange.addEquiv fun i => (e i).symm :=
   rfl
-#align dfinsupp.map_range.add_equiv_symm Dfinsupp.mapRange.addEquiv_symm
+#align dfinsupp.map_range.add_equiv_symm DFinsupp.mapRange.addEquiv_symm
 -/
 
 end MapRange
 
-end Dfinsupp
+end DFinsupp
 
 /-! ### Product and sum lemmas for bundled morphisms.
 
@@ -2720,7 +2720,7 @@ namespace AddMonoidHom
 
 variable {R S : Type _}
 
-open Dfinsupp
+open DFinsupp
 
 #print AddMonoidHom.map_dfinsupp_sumAddHom /-
 @[simp]
@@ -2754,7 +2754,7 @@ namespace RingHom
 
 variable {R S : Type _}
 
-open Dfinsupp
+open DFinsupp
 
 #print RingHom.map_dfinsupp_sumAddHom /-
 @[simp]
@@ -2771,7 +2771,7 @@ namespace AddEquiv
 
 variable {R S : Type _}
 
-open Dfinsupp
+open DFinsupp
 
 #print AddEquiv.map_dfinsupp_sumAddHom /-
 @[simp]
@@ -2788,37 +2788,37 @@ end
 
 section FiniteInfinite
 
-#print Dfinsupp.fintype /-
-instance Dfinsupp.fintype {ι : Sort _} {π : ι → Sort _} [DecidableEq ι] [∀ i, Zero (π i)]
+#print DFinsupp.fintype /-
+instance DFinsupp.fintype {ι : Sort _} {π : ι → Sort _} [DecidableEq ι] [∀ i, Zero (π i)]
     [Fintype ι] [∀ i, Fintype (π i)] : Fintype (Π₀ i, π i) :=
-  Fintype.ofEquiv (∀ i, π i) Dfinsupp.equivFunOnFintype.symm
-#align dfinsupp.fintype Dfinsupp.fintype
+  Fintype.ofEquiv (∀ i, π i) DFinsupp.equivFunOnFintype.symm
+#align dfinsupp.fintype DFinsupp.fintype
 -/
 
-#print Dfinsupp.infinite_of_left /-
-instance Dfinsupp.infinite_of_left {ι : Sort _} {π : ι → Sort _} [∀ i, Nontrivial (π i)]
+#print DFinsupp.infinite_of_left /-
+instance DFinsupp.infinite_of_left {ι : Sort _} {π : ι → Sort _} [∀ i, Nontrivial (π i)]
     [∀ i, Zero (π i)] [Infinite ι] : Infinite (Π₀ i, π i) := by
   letI := Classical.decEq ι <;> choose m hm using fun i => exists_ne (0 : π i) <;>
-    exact Infinite.of_injective _ (Dfinsupp.single_left_injective hm)
-#align dfinsupp.infinite_of_left Dfinsupp.infinite_of_left
+    exact Infinite.of_injective _ (DFinsupp.single_left_injective hm)
+#align dfinsupp.infinite_of_left DFinsupp.infinite_of_left
 -/
 
-#print Dfinsupp.infinite_of_exists_right /-
+#print DFinsupp.infinite_of_exists_right /-
 /-- See `dfinsupp.infinite_of_right` for this in instance form, with the drawback that
 it needs all `π i` to be infinite. -/
-theorem Dfinsupp.infinite_of_exists_right {ι : Sort _} {π : ι → Sort _} (i : ι) [Infinite (π i)]
+theorem DFinsupp.infinite_of_exists_right {ι : Sort _} {π : ι → Sort _} (i : ι) [Infinite (π i)]
     [∀ i, Zero (π i)] : Infinite (Π₀ i, π i) :=
   letI := Classical.decEq ι
-  Infinite.of_injective (fun j => Dfinsupp.single i j) Dfinsupp.single_injective
-#align dfinsupp.infinite_of_exists_right Dfinsupp.infinite_of_exists_right
+  Infinite.of_injective (fun j => DFinsupp.single i j) DFinsupp.single_injective
+#align dfinsupp.infinite_of_exists_right DFinsupp.infinite_of_exists_right
 -/
 
-#print Dfinsupp.infinite_of_right /-
+#print DFinsupp.infinite_of_right /-
 /-- See `dfinsupp.infinite_of_exists_right` for the case that only one `π ι` is infinite. -/
-instance Dfinsupp.infinite_of_right {ι : Sort _} {π : ι → Sort _} [∀ i, Infinite (π i)]
+instance DFinsupp.infinite_of_right {ι : Sort _} {π : ι → Sort _} [∀ i, Infinite (π i)]
     [∀ i, Zero (π i)] [Nonempty ι] : Infinite (Π₀ i, π i) :=
-  Dfinsupp.infinite_of_exists_right (Classical.arbitrary ι)
-#align dfinsupp.infinite_of_right Dfinsupp.infinite_of_right
+  DFinsupp.infinite_of_exists_right (Classical.arbitrary ι)
+#align dfinsupp.infinite_of_right DFinsupp.infinite_of_right
 -/
 
 end FiniteInfinite
Diff
@@ -1772,7 +1772,7 @@ theorem sigmaCurry_apply [∀ i j, Zero (δ i j)] (f : Π₀ i : Σ i, _, δ i.1
 #print Dfinsupp.sigmaCurry_zero /-
 @[simp]
 theorem sigmaCurry_zero [∀ i j, Zero (δ i j)] : sigmaCurry (0 : Π₀ i : Σ i, _, δ i.1 i.2) = 0 := by
-  ext (i j); rw [sigma_curry_apply]; rfl
+  ext i j; rw [sigma_curry_apply]; rfl
 #align dfinsupp.sigma_curry_zero Dfinsupp.sigmaCurry_zero
 -/
 
@@ -1781,7 +1781,7 @@ theorem sigmaCurry_zero [∀ i j, Zero (δ i j)] : sigmaCurry (0 : Π₀ i : Σ
 theorem sigmaCurry_add [∀ i j, AddZeroClass (δ i j)] (f g : Π₀ i : Σ i, α i, δ i.1 i.2) :
     @sigmaCurry _ _ δ _ (f + g) = @sigmaCurry _ _ δ _ f + @sigmaCurry ι α δ _ g :=
   by
-  ext (i j)
+  ext i j
   rw [@add_apply _ (fun i => Π₀ j, δ i j) _ (sigma_curry _), add_apply, sigma_curry_apply,
     sigma_curry_apply, sigma_curry_apply, add_apply]
 #align dfinsupp.sigma_curry_add Dfinsupp.sigmaCurry_add
@@ -1793,7 +1793,7 @@ theorem sigmaCurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)] [∀ i j, Dist
     (r : γ) (f : Π₀ i : Σ i, α i, δ i.1 i.2) :
     @sigmaCurry _ _ δ _ (r • f) = r • @sigmaCurry _ _ δ _ f :=
   by
-  ext (i j)
+  ext i j
   rw [@smul_apply _ _ (fun i => Π₀ j, δ i j) _ _ _ _ (sigma_curry _), smul_apply, sigma_curry_apply,
     sigma_curry_apply, smul_apply]
 #align dfinsupp.sigma_curry_smul Dfinsupp.sigmaCurry_smul
@@ -1806,7 +1806,7 @@ theorem sigmaCurry_single [DecidableEq ι] [∀ i, DecidableEq (α i)] [∀ i j,
     @sigmaCurry _ _ _ _ (single ij x) = single ij.1 (single ij.2 x : Π₀ j, δ ij.1 j) :=
   by
   obtain ⟨i, j⟩ := ij
-  ext (i' j')
+  ext i' j'
   dsimp only
   rw [sigma_curry_apply]
   obtain rfl | hi := eq_or_ne i i'
@@ -1913,7 +1913,7 @@ noncomputable def sigmaCurryEquiv [∀ i j, Zero (δ i j)] [∀ i, DecidableEq (
   toFun := sigmaCurry
   invFun := sigmaUncurry
   left_inv f := by ext ⟨i, j⟩; rw [sigma_uncurry_apply, sigma_curry_apply]
-  right_inv f := by ext (i j); rw [sigma_curry_apply, sigma_uncurry_apply]
+  right_inv f := by ext i j; rw [sigma_curry_apply, sigma_uncurry_apply]
 #align dfinsupp.sigma_curry_equiv Dfinsupp.sigmaCurryEquiv
 -/
 
Diff
@@ -74,10 +74,8 @@ structure Dfinsupp [∀ i, Zero (β i)] : Type max u v where mk' ::
 
 variable {β}
 
--- mathport name: «exprΠ₀ , »
 notation3"Π₀ "(...)", "r:(scoped f => Dfinsupp f) => r
 
--- mathport name: «expr →ₚ »
 infixl:25 " →ₚ " => Dfinsupp
 
 namespace Dfinsupp
@@ -258,37 +256,48 @@ section Algebra
 instance [∀ i, AddZeroClass (β i)] : Add (Π₀ i, β i) :=
   ⟨zipWith (fun _ => (· + ·)) fun _ => add_zero 0⟩
 
+#print Dfinsupp.add_apply /-
 theorem add_apply [∀ i, AddZeroClass (β i)] (g₁ g₂ : Π₀ i, β i) (i : ι) :
     (g₁ + g₂) i = g₁ i + g₂ i :=
   rfl
 #align dfinsupp.add_apply Dfinsupp.add_apply
+-/
 
+#print Dfinsupp.coe_add /-
 @[simp]
 theorem coe_add [∀ i, AddZeroClass (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g₁ + g₂) = g₁ + g₂ :=
   rfl
 #align dfinsupp.coe_add Dfinsupp.coe_add
+-/
 
 instance [∀ i, AddZeroClass (β i)] : AddZeroClass (Π₀ i, β i) :=
   FunLike.coe_injective.AddZeroClass _ coe_zero coe_add
 
+#print Dfinsupp.hasNatScalar /-
 /-- Note the general `dfinsupp.has_smul` instance doesn't apply as `ℕ` is not distributive
 unless `β i`'s addition is commutative. -/
 instance hasNatScalar [∀ i, AddMonoid (β i)] : SMul ℕ (Π₀ i, β i) :=
   ⟨fun c v => v.mapRange (fun _ => (· • ·) c) fun _ => nsmul_zero _⟩
 #align dfinsupp.has_nat_scalar Dfinsupp.hasNatScalar
+-/
 
+#print Dfinsupp.nsmul_apply /-
 theorem nsmul_apply [∀ i, AddMonoid (β i)] (b : ℕ) (v : Π₀ i, β i) (i : ι) : (b • v) i = b • v i :=
   rfl
 #align dfinsupp.nsmul_apply Dfinsupp.nsmul_apply
+-/
 
+#print Dfinsupp.coe_nsmul /-
 @[simp]
 theorem coe_nsmul [∀ i, AddMonoid (β i)] (b : ℕ) (v : Π₀ i, β i) : ⇑(b • v) = b • v :=
   rfl
 #align dfinsupp.coe_nsmul Dfinsupp.coe_nsmul
+-/
 
 instance [∀ i, AddMonoid (β i)] : AddMonoid (Π₀ i, β i) :=
   FunLike.coe_injective.AddMonoid _ coe_zero coe_add fun _ _ => coe_nsmul _ _
 
+#print Dfinsupp.coeFnAddMonoidHom /-
 /-- Coercion from a `dfinsupp` to a pi type is an `add_monoid_hom`. -/
 def coeFnAddMonoidHom [∀ i, AddZeroClass (β i)] : (Π₀ i, β i) →+ ∀ i, β i
     where
@@ -296,66 +305,87 @@ def coeFnAddMonoidHom [∀ i, AddZeroClass (β i)] : (Π₀ i, β i) →+ ∀ i,
   map_zero' := coe_zero
   map_add' := coe_add
 #align dfinsupp.coe_fn_add_monoid_hom Dfinsupp.coeFnAddMonoidHom
+-/
 
+#print Dfinsupp.evalAddMonoidHom /-
 /-- Evaluation at a point is an `add_monoid_hom`. This is the finitely-supported version of
 `pi.eval_add_monoid_hom`. -/
 def evalAddMonoidHom [∀ i, AddZeroClass (β i)] (i : ι) : (Π₀ i, β i) →+ β i :=
   (Pi.evalAddMonoidHom β i).comp coeFnAddMonoidHom
 #align dfinsupp.eval_add_monoid_hom Dfinsupp.evalAddMonoidHom
+-/
 
 instance [∀ i, AddCommMonoid (β i)] : AddCommMonoid (Π₀ i, β i) :=
   FunLike.coe_injective.AddCommMonoid _ coe_zero coe_add fun _ _ => coe_nsmul _ _
 
+#print Dfinsupp.coe_finset_sum /-
 @[simp]
 theorem coe_finset_sum {α} [∀ i, AddCommMonoid (β i)] (s : Finset α) (g : α → Π₀ i, β i) :
     ⇑(∑ a in s, g a) = ∑ a in s, g a :=
   (coeFnAddMonoidHom : _ →+ ∀ i, β i).map_sum g s
 #align dfinsupp.coe_finset_sum Dfinsupp.coe_finset_sum
+-/
 
+#print Dfinsupp.finset_sum_apply /-
 @[simp]
 theorem finset_sum_apply {α} [∀ i, AddCommMonoid (β i)] (s : Finset α) (g : α → Π₀ i, β i) (i : ι) :
     (∑ a in s, g a) i = ∑ a in s, g a i :=
   (evalAddMonoidHom i : _ →+ β i).map_sum g s
 #align dfinsupp.finset_sum_apply Dfinsupp.finset_sum_apply
+-/
 
 instance [∀ i, AddGroup (β i)] : Neg (Π₀ i, β i) :=
   ⟨fun f => f.mapRange (fun _ => Neg.neg) fun _ => neg_zero⟩
 
+#print Dfinsupp.neg_apply /-
 theorem neg_apply [∀ i, AddGroup (β i)] (g : Π₀ i, β i) (i : ι) : (-g) i = -g i :=
   rfl
 #align dfinsupp.neg_apply Dfinsupp.neg_apply
+-/
 
+#print Dfinsupp.coe_neg /-
 @[simp]
 theorem coe_neg [∀ i, AddGroup (β i)] (g : Π₀ i, β i) : ⇑(-g) = -g :=
   rfl
 #align dfinsupp.coe_neg Dfinsupp.coe_neg
+-/
 
 instance [∀ i, AddGroup (β i)] : Sub (Π₀ i, β i) :=
   ⟨zipWith (fun _ => Sub.sub) fun _ => sub_zero 0⟩
 
+#print Dfinsupp.sub_apply /-
 theorem sub_apply [∀ i, AddGroup (β i)] (g₁ g₂ : Π₀ i, β i) (i : ι) : (g₁ - g₂) i = g₁ i - g₂ i :=
   rfl
 #align dfinsupp.sub_apply Dfinsupp.sub_apply
+-/
 
+#print Dfinsupp.coe_sub /-
 @[simp]
 theorem coe_sub [∀ i, AddGroup (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g₁ - g₂) = g₁ - g₂ :=
   rfl
 #align dfinsupp.coe_sub Dfinsupp.coe_sub
+-/
 
+#print Dfinsupp.hasIntScalar /-
 /-- Note the general `dfinsupp.has_smul` instance doesn't apply as `ℤ` is not distributive
 unless `β i`'s addition is commutative. -/
 instance hasIntScalar [∀ i, AddGroup (β i)] : SMul ℤ (Π₀ i, β i) :=
   ⟨fun c v => v.mapRange (fun _ => (· • ·) c) fun _ => zsmul_zero _⟩
 #align dfinsupp.has_int_scalar Dfinsupp.hasIntScalar
+-/
 
+#print Dfinsupp.zsmul_apply /-
 theorem zsmul_apply [∀ i, AddGroup (β i)] (b : ℤ) (v : Π₀ i, β i) (i : ι) : (b • v) i = b • v i :=
   rfl
 #align dfinsupp.zsmul_apply Dfinsupp.zsmul_apply
+-/
 
+#print Dfinsupp.coe_zsmul /-
 @[simp]
 theorem coe_zsmul [∀ i, AddGroup (β i)] (b : ℤ) (v : Π₀ i, β i) : ⇑(b • v) = b • v :=
   rfl
 #align dfinsupp.coe_zsmul Dfinsupp.coe_zsmul
+-/
 
 instance [∀ i, AddGroup (β i)] : AddGroup (Π₀ i, β i) :=
   FunLike.coe_injective.AddGroup _ coe_zero coe_add coe_neg coe_sub (fun _ _ => coe_nsmul _ _)
@@ -370,16 +400,20 @@ coordinate. -/
 instance [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] : SMul γ (Π₀ i, β i) :=
   ⟨fun c v => v.mapRange (fun _ => (· • ·) c) fun _ => smul_zero _⟩
 
+#print Dfinsupp.smul_apply /-
 theorem smul_apply [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] (b : γ)
     (v : Π₀ i, β i) (i : ι) : (b • v) i = b • v i :=
   rfl
 #align dfinsupp.smul_apply Dfinsupp.smul_apply
+-/
 
+#print Dfinsupp.coe_smul /-
 @[simp]
 theorem coe_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] (b : γ)
     (v : Π₀ i, β i) : ⇑(b • v) = b • v :=
   rfl
 #align dfinsupp.coe_smul Dfinsupp.coe_smul
+-/
 
 instance {δ : Type _} [Monoid γ] [Monoid δ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
     [∀ i, DistribMulAction δ (β i)] [∀ i, SMulCommClass γ δ (β i)] : SMulCommClass γ δ (Π₀ i, β i)
@@ -442,11 +476,13 @@ theorem filter_apply_neg [∀ i, Zero (β i)] {p : ι → Prop} [DecidablePred p
 #align dfinsupp.filter_apply_neg Dfinsupp.filter_apply_neg
 -/
 
+#print Dfinsupp.filter_pos_add_filter_neg /-
 theorem filter_pos_add_filter_neg [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i) (p : ι → Prop)
     [DecidablePred p] : (f.filterₓ p + f.filterₓ fun i => ¬p i) = f :=
   ext fun i => by
     simp only [add_apply, filter_apply] <;> split_ifs <;> simp only [add_zero, zero_add]
 #align dfinsupp.filter_pos_add_filter_neg Dfinsupp.filter_pos_add_filter_neg
+-/
 
 #print Dfinsupp.filter_zero /-
 @[simp]
@@ -455,19 +491,24 @@ theorem filter_zero [∀ i, Zero (β i)] (p : ι → Prop) [DecidablePred p] :
 #align dfinsupp.filter_zero Dfinsupp.filter_zero
 -/
 
+#print Dfinsupp.filter_add /-
 @[simp]
 theorem filter_add [∀ i, AddZeroClass (β i)] (p : ι → Prop) [DecidablePred p] (f g : Π₀ i, β i) :
     (f + g).filterₓ p = f.filterₓ p + g.filterₓ p := by ext; simp [ite_add_zero]
 #align dfinsupp.filter_add Dfinsupp.filter_add
+-/
 
+#print Dfinsupp.filter_smul /-
 @[simp]
 theorem filter_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] (p : ι → Prop)
     [DecidablePred p] (r : γ) (f : Π₀ i, β i) : (r • f).filterₓ p = r • f.filterₓ p := by ext;
   simp [smul_ite]
 #align dfinsupp.filter_smul Dfinsupp.filter_smul
+-/
 
 variable (γ β)
 
+#print Dfinsupp.filterAddMonoidHom /-
 /-- `dfinsupp.filter` as an `add_monoid_hom`. -/
 @[simps]
 def filterAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [DecidablePred p] :
@@ -476,7 +517,9 @@ def filterAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [Decidable
   map_zero' := filter_zero p
   map_add' := filter_add p
 #align dfinsupp.filter_add_monoid_hom Dfinsupp.filterAddMonoidHom
+-/
 
+#print Dfinsupp.filterLinearMap /-
 /-- `dfinsupp.filter` as a `linear_map`. -/
 @[simps]
 def filterLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (β i)] (p : ι → Prop)
@@ -486,20 +529,25 @@ def filterLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module 
   map_add' := filter_add p
   map_smul' := filter_smul p
 #align dfinsupp.filter_linear_map Dfinsupp.filterLinearMap
+-/
 
 variable {γ β}
 
+#print Dfinsupp.filter_neg /-
 @[simp]
 theorem filter_neg [∀ i, AddGroup (β i)] (p : ι → Prop) [DecidablePred p] (f : Π₀ i, β i) :
     (-f).filterₓ p = -f.filterₓ p :=
   (filterAddMonoidHom β p).map_neg f
 #align dfinsupp.filter_neg Dfinsupp.filter_neg
+-/
 
+#print Dfinsupp.filter_sub /-
 @[simp]
 theorem filter_sub [∀ i, AddGroup (β i)] (p : ι → Prop) [DecidablePred p] (f g : Π₀ i, β i) :
     (f - g).filterₓ p = f.filterₓ p - g.filterₓ p :=
   (filterAddMonoidHom β p).map_sub f g
 #align dfinsupp.filter_sub Dfinsupp.filter_sub
+-/
 
 #print Dfinsupp.subtypeDomain /-
 /-- `subtype_domain p f` is the restriction of the finitely supported function
@@ -531,21 +579,26 @@ theorem subtypeDomain_apply [∀ i, Zero (β i)] {p : ι → Prop} [DecidablePre
 #align dfinsupp.subtype_domain_apply Dfinsupp.subtypeDomain_apply
 -/
 
+#print Dfinsupp.subtypeDomain_add /-
 @[simp]
 theorem subtypeDomain_add [∀ i, AddZeroClass (β i)] {p : ι → Prop} [DecidablePred p]
     (v v' : Π₀ i, β i) : (v + v').subtypeDomain p = v.subtypeDomain p + v'.subtypeDomain p :=
   coeFn_injective rfl
 #align dfinsupp.subtype_domain_add Dfinsupp.subtypeDomain_add
+-/
 
+#print Dfinsupp.subtypeDomain_smul /-
 @[simp]
 theorem subtypeDomain_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
     {p : ι → Prop} [DecidablePred p] (r : γ) (f : Π₀ i, β i) :
     (r • f).subtypeDomain p = r • f.subtypeDomain p :=
   coeFn_injective rfl
 #align dfinsupp.subtype_domain_smul Dfinsupp.subtypeDomain_smul
+-/
 
 variable (γ β)
 
+#print Dfinsupp.subtypeDomainAddMonoidHom /-
 /-- `subtype_domain` but as an `add_monoid_hom`. -/
 @[simps]
 def subtypeDomainAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [DecidablePred p] :
@@ -555,7 +608,9 @@ def subtypeDomainAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [De
   map_zero' := subtypeDomain_zero
   map_add' := subtypeDomain_add
 #align dfinsupp.subtype_domain_add_monoid_hom Dfinsupp.subtypeDomainAddMonoidHom
+-/
 
+#print Dfinsupp.subtypeDomainLinearMap /-
 /-- `dfinsupp.subtype_domain` as a `linear_map`. -/
 @[simps]
 def subtypeDomainLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (β i)]
@@ -565,33 +620,34 @@ def subtypeDomainLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, M
   map_add' := subtypeDomain_add
   map_smul' := subtypeDomain_smul
 #align dfinsupp.subtype_domain_linear_map Dfinsupp.subtypeDomainLinearMap
+-/
 
 variable {γ β}
 
+#print Dfinsupp.subtypeDomain_neg /-
 @[simp]
 theorem subtypeDomain_neg [∀ i, AddGroup (β i)] {p : ι → Prop} [DecidablePred p] {v : Π₀ i, β i} :
     (-v).subtypeDomain p = -v.subtypeDomain p :=
   coeFn_injective rfl
 #align dfinsupp.subtype_domain_neg Dfinsupp.subtypeDomain_neg
+-/
 
+#print Dfinsupp.subtypeDomain_sub /-
 @[simp]
 theorem subtypeDomain_sub [∀ i, AddGroup (β i)] {p : ι → Prop} [DecidablePred p]
     {v v' : Π₀ i, β i} : (v - v').subtypeDomain p = v.subtypeDomain p - v'.subtypeDomain p :=
   coeFn_injective rfl
 #align dfinsupp.subtype_domain_sub Dfinsupp.subtypeDomain_sub
+-/
 
 end FilterAndSubtypeDomain
 
 variable [dec : DecidableEq ι]
 
-include dec
-
 section Basic
 
 variable [∀ i, Zero (β i)]
 
-omit dec
-
 #print Dfinsupp.finite_support /-
 theorem finite_support (f : Π₀ i, β i) : Set.Finite {i | f i ≠ 0} := by
   classical exact
@@ -601,8 +657,6 @@ theorem finite_support (f : Π₀ i, β i) : Set.Finite {i | f i ≠ 0} := by
 #align dfinsupp.finite_support Dfinsupp.finite_support
 -/
 
-include dec
-
 #print Dfinsupp.mk /-
 /-- Create an element of `Π₀ i, β i` from a finset `s` and a function `x`
 defined on this `finset`. -/
@@ -646,8 +700,6 @@ theorem mk_injective (s : Finset ι) : Function.Injective (@mk ι β _ _ s) :=
 #align dfinsupp.mk_injective Dfinsupp.mk_injective
 -/
 
-omit dec
-
 #print Dfinsupp.unique /-
 instance unique [∀ i, Subsingleton (β i)] : Unique (Π₀ i, β i) :=
   FunLike.coe_injective.unique
@@ -680,8 +732,6 @@ theorem equivFunOnFintype_symm_coe [Fintype ι] (f : Π₀ i, β i) : equivFunOn
 #align dfinsupp.equiv_fun_on_fintype_symm_coe Dfinsupp.equivFunOnFintype_symm_coe
 -/
 
-include dec
-
 #print Dfinsupp.single /-
 /-- The function `single i b : Π₀ i, β i` sends `i` to `b`
 and all other points to `0`. -/
@@ -851,6 +901,7 @@ theorem erase_ne {i i' : ι} {f : Π₀ i, β i} (h : i' ≠ i) : (f.eraseₓ i)
 #align dfinsupp.erase_ne Dfinsupp.erase_ne
 -/
 
+#print Dfinsupp.piecewise_single_erase /-
 theorem piecewise_single_erase (x : Π₀ i, β i) (i : ι) :
     (single i (x i)).piecewise (x.eraseₓ i) {i} = x :=
   by
@@ -858,7 +909,9 @@ theorem piecewise_single_erase (x : Π₀ i, β i) (i : ι) :
   · rw [(id h : j = i), single_eq_same]
   · exact erase_ne h
 #align dfinsupp.piecewise_single_erase Dfinsupp.piecewise_single_erase
+-/
 
+#print Dfinsupp.erase_eq_sub_single /-
 theorem erase_eq_sub_single {β : ι → Type _} [∀ i, AddGroup (β i)] (f : Π₀ i, β i) (i : ι) :
     f.eraseₓ i = f - single i (f i) := by
   ext j
@@ -866,6 +919,7 @@ theorem erase_eq_sub_single {β : ι → Type _} [∀ i, AddGroup (β i)] (f : 
   · simp
   · simp [erase_ne h.symm, single_eq_of_ne h]
 #align dfinsupp.erase_eq_sub_single Dfinsupp.erase_eq_sub_single
+-/
 
 #print Dfinsupp.erase_zero /-
 @[simp]
@@ -962,6 +1016,7 @@ theorem update_eq_erase : f.update i 0 = f.eraseₓ i :=
 #align dfinsupp.update_eq_erase Dfinsupp.update_eq_erase
 -/
 
+#print Dfinsupp.update_eq_single_add_erase /-
 theorem update_eq_single_add_erase {β : ι → Type _} [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i)
     (i : ι) (b : β i) : f.update i b = single i b + f.eraseₓ i :=
   by
@@ -970,7 +1025,9 @@ theorem update_eq_single_add_erase {β : ι → Type _} [∀ i, AddZeroClass (β
   · simp
   · simp [Function.update_noteq h.symm, h, erase_ne, h.symm]
 #align dfinsupp.update_eq_single_add_erase Dfinsupp.update_eq_single_add_erase
+-/
 
+#print Dfinsupp.update_eq_erase_add_single /-
 theorem update_eq_erase_add_single {β : ι → Type _} [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i)
     (i : ι) (b : β i) : f.update i b = f.eraseₓ i + single i b :=
   by
@@ -979,11 +1036,14 @@ theorem update_eq_erase_add_single {β : ι → Type _} [∀ i, AddZeroClass (β
   · simp
   · simp [Function.update_noteq h.symm, h, erase_ne, h.symm]
 #align dfinsupp.update_eq_erase_add_single Dfinsupp.update_eq_erase_add_single
+-/
 
+#print Dfinsupp.update_eq_sub_add_single /-
 theorem update_eq_sub_add_single {β : ι → Type _} [∀ i, AddGroup (β i)] (f : Π₀ i, β i) (i : ι)
     (b : β i) : f.update i b = f - single i (f i) + single i b := by
   rw [update_eq_erase_add_single f i b, erase_eq_sub_single f i]
 #align dfinsupp.update_eq_sub_add_single Dfinsupp.update_eq_sub_add_single
+-/
 
 end Update
 
@@ -993,6 +1053,7 @@ section AddMonoid
 
 variable [∀ i, AddZeroClass (β i)]
 
+#print Dfinsupp.single_add /-
 @[simp]
 theorem single_add (i : ι) (b₁ b₂ : β i) : single i (b₁ + b₂) = single i b₁ + single i b₂ :=
   ext fun i' => by
@@ -1000,14 +1061,18 @@ theorem single_add (i : ι) (b₁ b₂ : β i) : single i (b₁ + b₂) = single
     · subst h; simp only [add_apply, single_eq_same]
     · simp only [add_apply, single_eq_of_ne h, zero_add]
 #align dfinsupp.single_add Dfinsupp.single_add
+-/
 
+#print Dfinsupp.erase_add /-
 @[simp]
 theorem erase_add (i : ι) (f₁ f₂ : Π₀ i, β i) : erase i (f₁ + f₂) = erase i f₁ + erase i f₂ :=
   ext fun _ => by simp [ite_zero_add]
 #align dfinsupp.erase_add Dfinsupp.erase_add
+-/
 
 variable (β)
 
+#print Dfinsupp.singleAddHom /-
 /-- `dfinsupp.single` as an `add_monoid_hom`. -/
 @[simps]
 def singleAddHom (i : ι) : β i →+ Π₀ i, β i
@@ -1016,7 +1081,9 @@ def singleAddHom (i : ι) : β i →+ Π₀ i, β i
   map_zero' := single_zero i
   map_add' := single_add i
 #align dfinsupp.single_add_hom Dfinsupp.singleAddHom
+-/
 
+#print Dfinsupp.eraseAddHom /-
 /-- `dfinsupp.erase` as an `add_monoid_hom`. -/
 @[simps]
 def eraseAddHom (i : ι) : (Π₀ i, β i) →+ Π₀ i, β i
@@ -1025,33 +1092,43 @@ def eraseAddHom (i : ι) : (Π₀ i, β i) →+ Π₀ i, β i
   map_zero' := erase_zero i
   map_add' := erase_add i
 #align dfinsupp.erase_add_hom Dfinsupp.eraseAddHom
+-/
 
 variable {β}
 
+#print Dfinsupp.single_neg /-
 @[simp]
 theorem single_neg {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (x : β i) :
     single i (-x) = -single i x :=
   (singleAddHom β i).map_neg x
 #align dfinsupp.single_neg Dfinsupp.single_neg
+-/
 
+#print Dfinsupp.single_sub /-
 @[simp]
 theorem single_sub {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (x y : β i) :
     single i (x - y) = single i x - single i y :=
   (singleAddHom β i).map_sub x y
 #align dfinsupp.single_sub Dfinsupp.single_sub
+-/
 
+#print Dfinsupp.erase_neg /-
 @[simp]
 theorem erase_neg {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (f : Π₀ i, β i) :
     (-f).eraseₓ i = -f.eraseₓ i :=
   (eraseAddHom β i).map_neg f
 #align dfinsupp.erase_neg Dfinsupp.erase_neg
+-/
 
+#print Dfinsupp.erase_sub /-
 @[simp]
 theorem erase_sub {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (f g : Π₀ i, β i) :
     (f - g).eraseₓ i = f.eraseₓ i - g.eraseₓ i :=
   (eraseAddHom β i).map_sub f g
 #align dfinsupp.erase_sub Dfinsupp.erase_sub
+-/
 
+#print Dfinsupp.single_add_erase /-
 theorem single_add_erase (i : ι) (f : Π₀ i, β i) : single i (f i) + f.eraseₓ i = f :=
   ext fun i' =>
     if h : i = i' then by
@@ -1059,7 +1136,9 @@ theorem single_add_erase (i : ι) (f : Π₀ i, β i) : single i (f i) + f.erase
     else by
       simp only [add_apply, single_apply, erase_apply, dif_neg h, if_neg (Ne.symm h), zero_add]
 #align dfinsupp.single_add_erase Dfinsupp.single_add_erase
+-/
 
+#print Dfinsupp.erase_add_single /-
 theorem erase_add_single (i : ι) (f : Π₀ i, β i) : f.eraseₓ i + single i (f i) = f :=
   ext fun i' =>
     if h : i = i' then by
@@ -1067,7 +1146,9 @@ theorem erase_add_single (i : ι) (f : Π₀ i, β i) : f.eraseₓ i + single i
     else by
       simp only [add_apply, single_apply, erase_apply, dif_neg h, if_neg (Ne.symm h), add_zero]
 #align dfinsupp.erase_add_single Dfinsupp.erase_add_single
+-/
 
+#print Dfinsupp.induction /-
 protected theorem induction {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (h0 : p 0)
     (ha : ∀ (i b) (f : Π₀ i, β i), f i = 0 → b ≠ 0 → p f → p (single i b + f)) : p f :=
   by
@@ -1102,7 +1183,9 @@ protected theorem induction {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (
   refine' ha _ _ _ _ h H2
   rw [erase_same]
 #align dfinsupp.induction Dfinsupp.induction
+-/
 
+#print Dfinsupp.induction₂ /-
 theorem induction₂ {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (h0 : p 0)
     (ha : ∀ (i b) (f : Π₀ i, β i), f i = 0 → b ≠ 0 → p f → p (f + single i b)) : p f :=
   Dfinsupp.induction f h0 fun i b f h1 h2 h3 =>
@@ -1113,7 +1196,9 @@ theorem induction₂ {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (h0 : p
       · simp [H]
     Eq.recOn h4 <| ha i b f h1 h2 h3
 #align dfinsupp.induction₂ Dfinsupp.induction₂
+-/
 
+#print Dfinsupp.add_closure_iUnion_range_single /-
 @[simp]
 theorem add_closure_iUnion_range_single :
     AddSubmonoid.closure (⋃ i : ι, Set.range (single i : β i → Π₀ i, β i)) = ⊤ :=
@@ -1124,7 +1209,9 @@ theorem add_closure_iUnion_range_single :
       AddSubmonoid.add_mem _
         (AddSubmonoid.subset_closure <| Set.mem_iUnion.2 ⟨a, Set.mem_range_self _⟩) hf
 #align dfinsupp.add_closure_Union_range_single Dfinsupp.add_closure_iUnion_range_single
+-/
 
+#print Dfinsupp.addHom_ext /-
 /-- If two additive homomorphisms from `Π₀ i, β i` are equal on each `single a b`, then
 they are equal. -/
 theorem addHom_ext {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+ γ⦄
@@ -1135,7 +1222,9 @@ theorem addHom_ext {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+
   rcases hf with ⟨x, y, rfl⟩
   apply H
 #align dfinsupp.add_hom_ext Dfinsupp.addHom_ext
+-/
 
+#print Dfinsupp.addHom_ext' /-
 /-- If two additive homomorphisms from `Π₀ i, β i` are equal on each `single a b`, then
 they are equal.
 
@@ -1145,14 +1234,17 @@ theorem addHom_ext' {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →
     (H : ∀ x, f.comp (singleAddHom β x) = g.comp (singleAddHom β x)) : f = g :=
   addHom_ext fun x => AddMonoidHom.congr_fun (H x)
 #align dfinsupp.add_hom_ext' Dfinsupp.addHom_ext'
+-/
 
 end AddMonoid
 
+#print Dfinsupp.mk_add /-
 @[simp]
 theorem mk_add [∀ i, AddZeroClass (β i)] {s : Finset ι} {x y : ∀ i : (↑s : Set ι), β i} :
     mk s (x + y) = mk s x + mk s y :=
   ext fun i => by simp only [add_apply, mk_apply] <;> split_ifs <;> [rfl; rw [zero_add]]
 #align dfinsupp.mk_add Dfinsupp.mk_add
+-/
 
 #print Dfinsupp.mk_zero /-
 @[simp]
@@ -1161,18 +1253,23 @@ theorem mk_zero [∀ i, Zero (β i)] {s : Finset ι} : mk s (0 : ∀ i : (↑s :
 #align dfinsupp.mk_zero Dfinsupp.mk_zero
 -/
 
+#print Dfinsupp.mk_neg /-
 @[simp]
 theorem mk_neg [∀ i, AddGroup (β i)] {s : Finset ι} {x : ∀ i : (↑s : Set ι), β i.1} :
     mk s (-x) = -mk s x :=
   ext fun i => by simp only [neg_apply, mk_apply] <;> split_ifs <;> [rfl; rw [neg_zero]]
 #align dfinsupp.mk_neg Dfinsupp.mk_neg
+-/
 
+#print Dfinsupp.mk_sub /-
 @[simp]
 theorem mk_sub [∀ i, AddGroup (β i)] {s : Finset ι} {x y : ∀ i : (↑s : Set ι), β i.1} :
     mk s (x - y) = mk s x - mk s y :=
   ext fun i => by simp only [sub_apply, mk_apply] <;> split_ifs <;> [rfl; rw [sub_zero]]
 #align dfinsupp.mk_sub Dfinsupp.mk_sub
+-/
 
+#print Dfinsupp.mkAddGroupHom /-
 /-- If `s` is a subset of `ι` then `mk_add_group_hom s` is the canonical additive
 group homomorphism from $\prod_{i\in s}\beta_i$ to $\prod_{\mathtt{i : \iota}}\beta_i.$-/
 def mkAddGroupHom [∀ i, AddGroup (β i)] (s : Finset ι) : (∀ i : (s : Set ι), β ↑i) →+ Π₀ i : ι, β i
@@ -1181,22 +1278,27 @@ def mkAddGroupHom [∀ i, AddGroup (β i)] (s : Finset ι) : (∀ i : (s : Set 
   map_zero' := mk_zero
   map_add' _ _ := mk_add
 #align dfinsupp.mk_add_group_hom Dfinsupp.mkAddGroupHom
+-/
 
 section
 
 variable [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
 
+#print Dfinsupp.mk_smul /-
 @[simp]
 theorem mk_smul {s : Finset ι} (c : γ) (x : ∀ i : (↑s : Set ι), β (i : ι)) :
     mk s (c • x) = c • mk s x :=
   ext fun i => by simp only [smul_apply, mk_apply] <;> split_ifs <;> [rfl; rw [smul_zero]]
 #align dfinsupp.mk_smul Dfinsupp.mk_smul
+-/
 
+#print Dfinsupp.single_smul /-
 @[simp]
 theorem single_smul {i : ι} (c : γ) (x : β i) : single i (c • x) = c • single i x :=
   ext fun i => by
     simp only [smul_apply, single_apply] <;> split_ifs <;> [cases h; rw [smul_zero]] <;> rfl
 #align dfinsupp.single_smul Dfinsupp.single_smul
+-/
 
 end
 
@@ -1417,35 +1519,45 @@ theorem support_filter (f : Π₀ i, β i) : (f.filterₓ p).support = f.support
 #align dfinsupp.support_filter Dfinsupp.support_filter
 -/
 
+#print Dfinsupp.subtypeDomain_def /-
 theorem subtypeDomain_def (f : Π₀ i, β i) :
     f.subtypeDomain p = mk (f.support.Subtype p) fun i => f i := by
   ext i <;> by_cases h2 : f i ≠ 0 <;> try simp at h2  <;> dsimp <;> simp [h2]
 #align dfinsupp.subtype_domain_def Dfinsupp.subtypeDomain_def
+-/
 
+#print Dfinsupp.support_subtypeDomain /-
 @[simp]
 theorem support_subtypeDomain {f : Π₀ i, β i} : (subtypeDomain p f).support = f.support.Subtype p :=
   by ext i; simp
 #align dfinsupp.support_subtype_domain Dfinsupp.support_subtypeDomain
+-/
 
 end FilterAndSubtypeDomain
 
 end SupportBasic
 
+#print Dfinsupp.support_add /-
 theorem support_add [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     {g₁ g₂ : Π₀ i, β i} : (g₁ + g₂).support ⊆ g₁.support ∪ g₂.support :=
   support_zipWith
 #align dfinsupp.support_add Dfinsupp.support_add
+-/
 
+#print Dfinsupp.support_neg /-
 @[simp]
 theorem support_neg [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] {f : Π₀ i, β i} :
     support (-f) = support f := by ext i <;> simp
 #align dfinsupp.support_neg Dfinsupp.support_neg
+-/
 
+#print Dfinsupp.support_smul /-
 theorem support_smul {γ : Type w} [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (β i)]
     [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (b : γ) (v : Π₀ i, β i) :
     (b • v).support ⊆ v.support :=
   support_mapRange
 #align dfinsupp.support_smul Dfinsupp.support_smul
+-/
 
 instance [∀ i, Zero (β i)] [∀ i, DecidableEq (β i)] : DecidableEq (Π₀ i, β i) := fun f g =>
   decidable_of_iff (f.support = g.support ∧ ∀ i ∈ f.support, f i = g i)
@@ -1476,30 +1588,39 @@ noncomputable def comapDomain [∀ i, Zero (β i)] (h : κ → ι) (hh : Functio
 #align dfinsupp.comap_domain Dfinsupp.comapDomain
 -/
 
+#print Dfinsupp.comapDomain_apply /-
 @[simp]
 theorem comapDomain_apply [∀ i, Zero (β i)] (h : κ → ι) (hh : Function.Injective h) (f : Π₀ i, β i)
     (k : κ) : comapDomain h hh f k = f (h k) :=
   rfl
 #align dfinsupp.comap_domain_apply Dfinsupp.comapDomain_apply
+-/
 
+#print Dfinsupp.comapDomain_zero /-
 @[simp]
 theorem comapDomain_zero [∀ i, Zero (β i)] (h : κ → ι) (hh : Function.Injective h) :
     comapDomain h hh (0 : Π₀ i, β i) = 0 := by ext; rw [zero_apply, comap_domain_apply, zero_apply]
 #align dfinsupp.comap_domain_zero Dfinsupp.comapDomain_zero
+-/
 
+#print Dfinsupp.comapDomain_add /-
 @[simp]
 theorem comapDomain_add [∀ i, AddZeroClass (β i)] (h : κ → ι) (hh : Function.Injective h)
     (f g : Π₀ i, β i) : comapDomain h hh (f + g) = comapDomain h hh f + comapDomain h hh g := by
   ext; rw [add_apply, comap_domain_apply, comap_domain_apply, comap_domain_apply, add_apply]
 #align dfinsupp.comap_domain_add Dfinsupp.comapDomain_add
+-/
 
+#print Dfinsupp.comapDomain_smul /-
 @[simp]
 theorem comapDomain_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
     (h : κ → ι) (hh : Function.Injective h) (r : γ) (f : Π₀ i, β i) :
     comapDomain h hh (r • f) = r • comapDomain h hh f := by ext;
   rw [smul_apply, comap_domain_apply, smul_apply, comap_domain_apply]
 #align dfinsupp.comap_domain_smul Dfinsupp.comapDomain_smul
+-/
 
+#print Dfinsupp.comapDomain_single /-
 @[simp]
 theorem comapDomain_single [DecidableEq κ] [∀ i, Zero (β i)] (h : κ → ι) (hh : Function.Injective h)
     (k : κ) (x : β (h k)) : comapDomain h hh (single (h k) x) = single k x :=
@@ -1510,8 +1631,7 @@ theorem comapDomain_single [DecidableEq κ] [∀ i, Zero (β i)] (h : κ → ι)
   · rw [single_eq_same, single_eq_same]
   · rw [single_eq_of_ne hik.symm, single_eq_of_ne (hh.ne hik.symm)]
 #align dfinsupp.comap_domain_single Dfinsupp.comapDomain_single
-
-omit dec
+-/
 
 #print Dfinsupp.comapDomain' /-
 /-- A computable version of comap_domain when an explicit left inverse is provided.-/
@@ -1525,32 +1645,41 @@ def comapDomain' [∀ i, Zero (β i)] (h : κ → ι) {h' : ι → κ} (hh' : Fu
 #align dfinsupp.comap_domain' Dfinsupp.comapDomain'
 -/
 
+#print Dfinsupp.comapDomain'_apply /-
 @[simp]
 theorem comapDomain'_apply [∀ i, Zero (β i)] (h : κ → ι) {h' : ι → κ}
     (hh' : Function.LeftInverse h' h) (f : Π₀ i, β i) (k : κ) : comapDomain' h hh' f k = f (h k) :=
   rfl
 #align dfinsupp.comap_domain'_apply Dfinsupp.comapDomain'_apply
+-/
 
+#print Dfinsupp.comapDomain'_zero /-
 @[simp]
 theorem comapDomain'_zero [∀ i, Zero (β i)] (h : κ → ι) {h' : ι → κ}
     (hh' : Function.LeftInverse h' h) : comapDomain' h hh' (0 : Π₀ i, β i) = 0 := by ext;
   rw [zero_apply, comap_domain'_apply, zero_apply]
 #align dfinsupp.comap_domain'_zero Dfinsupp.comapDomain'_zero
+-/
 
+#print Dfinsupp.comapDomain'_add /-
 @[simp]
 theorem comapDomain'_add [∀ i, AddZeroClass (β i)] (h : κ → ι) {h' : ι → κ}
     (hh' : Function.LeftInverse h' h) (f g : Π₀ i, β i) :
     comapDomain' h hh' (f + g) = comapDomain' h hh' f + comapDomain' h hh' g := by ext;
   rw [add_apply, comap_domain'_apply, comap_domain'_apply, comap_domain'_apply, add_apply]
 #align dfinsupp.comap_domain'_add Dfinsupp.comapDomain'_add
+-/
 
+#print Dfinsupp.comapDomain'_smul /-
 @[simp]
 theorem comapDomain'_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
     (h : κ → ι) {h' : ι → κ} (hh' : Function.LeftInverse h' h) (r : γ) (f : Π₀ i, β i) :
     comapDomain' h hh' (r • f) = r • comapDomain' h hh' f := by ext;
   rw [smul_apply, comap_domain'_apply, smul_apply, comap_domain'_apply]
 #align dfinsupp.comap_domain'_smul Dfinsupp.comapDomain'_smul
+-/
 
+#print Dfinsupp.comapDomain'_single /-
 @[simp]
 theorem comapDomain'_single [DecidableEq ι] [DecidableEq κ] [∀ i, Zero (β i)] (h : κ → ι)
     {h' : ι → κ} (hh' : Function.LeftInverse h' h) (k : κ) (x : β (h k)) :
@@ -1562,6 +1691,7 @@ theorem comapDomain'_single [DecidableEq ι] [DecidableEq κ] [∀ i, Zero (β i
   · rw [single_eq_same, single_eq_same]
   · rw [single_eq_of_ne hik.symm, single_eq_of_ne (hh'.injective.ne hik.symm)]
 #align dfinsupp.comap_domain'_single Dfinsupp.comapDomain'_single
+-/
 
 #print Dfinsupp.equivCongrLeft /-
 /-- Reindexing terms of a dfinsupp.
@@ -1590,23 +1720,31 @@ section Curry
 
 variable {α : ι → Type _} {δ : ∀ i, α i → Type v}
 
+#print Dfinsupp.hasAdd₂ /-
 -- lean can't find these instances
 instance hasAdd₂ [∀ i j, AddZeroClass (δ i j)] : Add (Π₀ (i : ι) (j : α i), δ i j) :=
   @Dfinsupp.hasAdd ι (fun i => Π₀ j, δ i j) _
 #align dfinsupp.has_add₂ Dfinsupp.hasAdd₂
+-/
 
+#print Dfinsupp.addZeroClass₂ /-
 instance addZeroClass₂ [∀ i j, AddZeroClass (δ i j)] : AddZeroClass (Π₀ (i : ι) (j : α i), δ i j) :=
   @Dfinsupp.addZeroClass ι (fun i => Π₀ j, δ i j) _
 #align dfinsupp.add_zero_class₂ Dfinsupp.addZeroClass₂
+-/
 
+#print Dfinsupp.addMonoid₂ /-
 instance addMonoid₂ [∀ i j, AddMonoid (δ i j)] : AddMonoid (Π₀ (i : ι) (j : α i), δ i j) :=
   @Dfinsupp.addMonoid ι (fun i => Π₀ j, δ i j) _
 #align dfinsupp.add_monoid₂ Dfinsupp.addMonoid₂
+-/
 
+#print Dfinsupp.distribMulAction₂ /-
 instance distribMulAction₂ [Monoid γ] [∀ i j, AddMonoid (δ i j)]
     [∀ i j, DistribMulAction γ (δ i j)] : DistribMulAction γ (Π₀ (i : ι) (j : α i), δ i j) :=
   @Dfinsupp.distribMulAction ι _ (fun i => Π₀ j, δ i j) _ _ _
 #align dfinsupp.distrib_mul_action₂ Dfinsupp.distribMulAction₂
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 #print Dfinsupp.sigmaCurry /-
@@ -1619,6 +1757,7 @@ noncomputable def sigmaCurry [∀ i j, Zero (δ i j)] (f : Π₀ i : Σ i, _, δ
 #align dfinsupp.sigma_curry Dfinsupp.sigmaCurry
 -/
 
+#print Dfinsupp.sigmaCurry_apply /-
 @[simp]
 theorem sigmaCurry_apply [∀ i j, Zero (δ i j)] (f : Π₀ i : Σ i, _, δ i.1 i.2) (i : ι) (j : α i) :
     sigmaCurry f i j = f ⟨i, j⟩ := by
@@ -1628,12 +1767,16 @@ theorem sigmaCurry_apply [∀ i j, Zero (δ i j)] (f : Π₀ i : Σ i, _, δ i.1
     · rw [mem_preimage, mem_support_to_fun]; exact h
     · rw [mem_image]; refine' ⟨⟨i, j⟩, _, rfl⟩; rw [mem_support_to_fun]; exact h
 #align dfinsupp.sigma_curry_apply Dfinsupp.sigmaCurry_apply
+-/
 
+#print Dfinsupp.sigmaCurry_zero /-
 @[simp]
 theorem sigmaCurry_zero [∀ i j, Zero (δ i j)] : sigmaCurry (0 : Π₀ i : Σ i, _, δ i.1 i.2) = 0 := by
   ext (i j); rw [sigma_curry_apply]; rfl
 #align dfinsupp.sigma_curry_zero Dfinsupp.sigmaCurry_zero
+-/
 
+#print Dfinsupp.sigmaCurry_add /-
 @[simp]
 theorem sigmaCurry_add [∀ i j, AddZeroClass (δ i j)] (f g : Π₀ i : Σ i, α i, δ i.1 i.2) :
     @sigmaCurry _ _ δ _ (f + g) = @sigmaCurry _ _ δ _ f + @sigmaCurry ι α δ _ g :=
@@ -1642,7 +1785,9 @@ theorem sigmaCurry_add [∀ i j, AddZeroClass (δ i j)] (f g : Π₀ i : Σ i, 
   rw [@add_apply _ (fun i => Π₀ j, δ i j) _ (sigma_curry _), add_apply, sigma_curry_apply,
     sigma_curry_apply, sigma_curry_apply, add_apply]
 #align dfinsupp.sigma_curry_add Dfinsupp.sigmaCurry_add
+-/
 
+#print Dfinsupp.sigmaCurry_smul /-
 @[simp]
 theorem sigmaCurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)] [∀ i j, DistribMulAction γ (δ i j)]
     (r : γ) (f : Π₀ i : Σ i, α i, δ i.1 i.2) :
@@ -1652,7 +1797,9 @@ theorem sigmaCurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)] [∀ i j, Dist
   rw [@smul_apply _ _ (fun i => Π₀ j, δ i j) _ _ _ _ (sigma_curry _), smul_apply, sigma_curry_apply,
     sigma_curry_apply, smul_apply]
 #align dfinsupp.sigma_curry_smul Dfinsupp.sigmaCurry_smul
+-/
 
+#print Dfinsupp.sigmaCurry_single /-
 @[simp]
 theorem sigmaCurry_single [DecidableEq ι] [∀ i, DecidableEq (α i)] [∀ i j, Zero (δ i j)]
     (ij : Σ i, α i) (x : δ ij.1 ij.2) :
@@ -1671,6 +1818,7 @@ theorem sigmaCurry_single [DecidableEq ι] [∀ i, DecidableEq (α i)] [∀ i j,
   · rw [single_eq_of_ne, single_eq_of_ne hi, zero_apply]
     simpa using hi
 #align dfinsupp.sigma_curry_single Dfinsupp.sigmaCurry_single
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 #print Dfinsupp.sigmaUncurry /-
@@ -1696,36 +1844,45 @@ def sigmaUncurry [∀ i j, Zero (δ i j)] [∀ i, DecidableEq (α i)]
 -/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Dfinsupp.sigmaUncurry_apply /-
 @[simp]
 theorem sigmaUncurry_apply [∀ i j, Zero (δ i j)] [∀ i, DecidableEq (α i)]
     [∀ (i j) (x : δ i j), Decidable (x ≠ 0)] (f : Π₀ (i) (j), δ i j) (i : ι) (j : α i) :
     sigmaUncurry f ⟨i, j⟩ = f i j :=
   rfl
 #align dfinsupp.sigma_uncurry_apply Dfinsupp.sigmaUncurry_apply
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Dfinsupp.sigmaUncurry_zero /-
 @[simp]
 theorem sigmaUncurry_zero [∀ i j, Zero (δ i j)] [∀ i, DecidableEq (α i)]
     [∀ (i j) (x : δ i j), Decidable (x ≠ 0)] : sigmaUncurry (0 : Π₀ (i) (j), δ i j) = 0 :=
   rfl
 #align dfinsupp.sigma_uncurry_zero Dfinsupp.sigmaUncurry_zero
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Dfinsupp.sigmaUncurry_add /-
 @[simp]
 theorem sigmaUncurry_add [∀ i j, AddZeroClass (δ i j)] [∀ i, DecidableEq (α i)]
     [∀ (i j) (x : δ i j), Decidable (x ≠ 0)] (f g : Π₀ (i) (j), δ i j) :
     sigmaUncurry (f + g) = sigmaUncurry f + sigmaUncurry g :=
   coeFn_injective rfl
 #align dfinsupp.sigma_uncurry_add Dfinsupp.sigmaUncurry_add
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Dfinsupp.sigmaUncurry_smul /-
 @[simp]
 theorem sigmaUncurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)] [∀ i, DecidableEq (α i)]
     [∀ (i j) (x : δ i j), Decidable (x ≠ 0)] [∀ i j, DistribMulAction γ (δ i j)] (r : γ)
     (f : Π₀ (i) (j), δ i j) : sigmaUncurry (r • f) = r • sigmaUncurry f :=
   coeFn_injective rfl
 #align dfinsupp.sigma_uncurry_smul Dfinsupp.sigmaUncurry_smul
+-/
 
+#print Dfinsupp.sigmaUncurry_single /-
 @[simp]
 theorem sigmaUncurry_single [∀ i j, Zero (δ i j)] [DecidableEq ι] [∀ i, DecidableEq (α i)]
     [∀ (i j) (x : δ i j), Decidable (x ≠ 0)] (i) (j : α i) (x : δ i j) :
@@ -1743,6 +1900,7 @@ theorem sigmaUncurry_single [∀ i j, Zero (δ i j)] [DecidableEq ι] [∀ i, De
   · rw [single_eq_of_ne hi, single_eq_of_ne, zero_apply]
     simpa using hi
 #align dfinsupp.sigma_uncurry_single Dfinsupp.sigmaUncurry_single
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 #print Dfinsupp.sigmaCurryEquiv /-
@@ -1796,6 +1954,7 @@ theorem extendWith_some [∀ i, Zero (α i)] (f : Π₀ i, α (some i)) (a : α
 #align dfinsupp.extend_with_some Dfinsupp.extendWith_some
 -/
 
+#print Dfinsupp.extendWith_single_zero /-
 @[simp]
 theorem extendWith_single_zero [DecidableEq ι] [∀ i, Zero (α i)] (i : ι) (x : α (some i)) :
     (single i x).extendWith 0 = single (some i) x :=
@@ -1807,6 +1966,7 @@ theorem extendWith_single_zero [DecidableEq ι] [∀ i, Zero (α i)] (i : ι) (x
     · rw [single_eq_same, single_eq_same]
     · rw [single_eq_of_ne hij, single_eq_of_ne ((Option.some_injective _).Ne hij)]
 #align dfinsupp.extend_with_single_zero Dfinsupp.extendWith_single_zero
+-/
 
 #print Dfinsupp.extendWith_zero /-
 @[simp]
@@ -1819,8 +1979,6 @@ theorem extendWith_zero [DecidableEq ι] [∀ i, Zero (α i)] (x : α none) :
 #align dfinsupp.extend_with_zero Dfinsupp.extendWith_zero
 -/
 
-include dec
-
 #print Dfinsupp.equivProdDfinsupp /-
 /-- Bijection obtained by separating the term of index `none` of a dfinsupp over `option ι`.
 
@@ -1842,15 +2000,19 @@ noncomputable def equivProdDfinsupp [∀ i, Zero (α i)] : (Π₀ i, α i) ≃ 
 #align dfinsupp.equiv_prod_dfinsupp Dfinsupp.equivProdDfinsupp
 -/
 
+#print Dfinsupp.equivProdDfinsupp_add /-
 theorem equivProdDfinsupp_add [∀ i, AddZeroClass (α i)] (f g : Π₀ i, α i) :
     equivProdDfinsupp (f + g) = equivProdDfinsupp f + equivProdDfinsupp g :=
   Prod.ext (add_apply _ _ _) (comapDomain_add _ _ _ _)
 #align dfinsupp.equiv_prod_dfinsupp_add Dfinsupp.equivProdDfinsupp_add
+-/
 
+#print Dfinsupp.equivProdDfinsupp_smul /-
 theorem equivProdDfinsupp_smul [Monoid γ] [∀ i, AddMonoid (α i)] [∀ i, DistribMulAction γ (α i)]
     (r : γ) (f : Π₀ i, α i) : equivProdDfinsupp (r • f) = r • equivProdDfinsupp f :=
   Prod.ext (smul_apply _ _ _) (comapDomain_smul _ _ _ _)
 #align dfinsupp.equiv_prod_dfinsupp_smul Dfinsupp.equivProdDfinsupp_smul
+-/
 
 end Equiv
 
@@ -1866,6 +2028,7 @@ def prod [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMon
 #align dfinsupp.sum Dfinsupp.sum
 -/
 
+#print Dfinsupp.prod_mapRange_index /-
 @[to_additive]
 theorem prod_mapRange_index {β₁ : ι → Type v₁} {β₂ : ι → Type v₂} [∀ i, Zero (β₁ i)]
     [∀ i, Zero (β₂ i)] [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ (i) (x : β₂ i), Decidable (x ≠ 0)]
@@ -1882,14 +2045,18 @@ theorem prod_mapRange_index {β₁ : ι → Type v₁} {β₂ : ι → Type v₂
     simp [h1]
 #align dfinsupp.prod_map_range_index Dfinsupp.prod_mapRange_index
 #align dfinsupp.sum_map_range_index Dfinsupp.sum_mapRange_index
+-/
 
+#print Dfinsupp.prod_zero_index /-
 @[to_additive]
 theorem prod_zero_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     [CommMonoid γ] {h : ∀ i, β i → γ} : (0 : Π₀ i, β i).Prod h = 1 :=
   rfl
 #align dfinsupp.prod_zero_index Dfinsupp.prod_zero_index
 #align dfinsupp.sum_zero_index Dfinsupp.sum_zero_index
+-/
 
+#print Dfinsupp.prod_single_index /-
 @[to_additive]
 theorem prod_single_index [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {i : ι} {b : β i} {h : ∀ i, β i → γ} (h_zero : h i 0 = 1) : (single i b).Prod h = h i b :=
@@ -1899,7 +2066,9 @@ theorem prod_single_index [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x
   · rw [Classical.not_not] at h ; simp [h, prod_zero_index, h_zero]; rfl
 #align dfinsupp.prod_single_index Dfinsupp.prod_single_index
 #align dfinsupp.sum_single_index Dfinsupp.sum_single_index
+-/
 
+#print Dfinsupp.prod_neg_index /-
 @[to_additive]
 theorem prod_neg_index [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {g : Π₀ i, β i} {h : ∀ i, β i → γ} (h0 : ∀ i, h i 0 = 1) :
@@ -1907,9 +2076,9 @@ theorem prod_neg_index [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (
   prod_mapRange_index h0
 #align dfinsupp.prod_neg_index Dfinsupp.prod_neg_index
 #align dfinsupp.sum_neg_index Dfinsupp.sum_neg_index
+-/
 
-omit dec
-
+#print Dfinsupp.prod_comm /-
 @[to_additive]
 theorem prod_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂ : ι₂ → Type _} [DecidableEq ι₁]
     [DecidableEq ι₂] [∀ i, Zero (β₁ i)] [∀ i, Zero (β₂ i)] [∀ (i) (x : β₁ i), Decidable (x ≠ 0)]
@@ -1920,16 +2089,18 @@ theorem prod_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂ : ι
   Finset.prod_comm
 #align dfinsupp.prod_comm Dfinsupp.prod_comm
 #align dfinsupp.sum_comm Dfinsupp.sum_comm
+-/
 
+#print Dfinsupp.sum_apply /-
 @[simp]
 theorem sum_apply {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
     [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)] {f : Π₀ i₁, β₁ i₁}
     {g : ∀ i₁, β₁ i₁ → Π₀ i, β i} {i₂ : ι} : (f.Sum g) i₂ = f.Sum fun i₁ b => g i₁ b i₂ :=
   (evalAddMonoidHom i₂ : (Π₀ i, β i) →+ β i₂).map_sum _ f.support
 #align dfinsupp.sum_apply Dfinsupp.sum_apply
+-/
 
-include dec
-
+#print Dfinsupp.support_sum /-
 theorem support_sum {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
     [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)]
     [∀ (i) (x : β i), Decidable (x ≠ 0)] {f : Π₀ i₁, β₁ i₁} {g : ∀ i₁, β₁ i₁ → Π₀ i, β i} :
@@ -1943,14 +2114,18 @@ theorem support_sum {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → T
     ⟨i, mem_support_iff.1 hi, Ne⟩
   simpa [Finset.subset_iff, mem_support_iff, Finset.mem_biUnion, sum_apply] using this
 #align dfinsupp.support_sum Dfinsupp.support_sum
+-/
 
+#print Dfinsupp.prod_one /-
 @[simp, to_additive]
 theorem prod_one [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {f : Π₀ i, β i} : (f.Prod fun i b => (1 : γ)) = 1 :=
   Finset.prod_const_one
 #align dfinsupp.prod_one Dfinsupp.prod_one
 #align dfinsupp.sum_zero Dfinsupp.sum_zero
+-/
 
+#print Dfinsupp.prod_mul /-
 @[simp, to_additive]
 theorem prod_mul [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {f : Π₀ i, β i} {h₁ h₂ : ∀ i, β i → γ} :
@@ -1958,27 +2133,35 @@ theorem prod_mul [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x
   Finset.prod_mul_distrib
 #align dfinsupp.prod_mul Dfinsupp.prod_mul
 #align dfinsupp.sum_add Dfinsupp.sum_add
+-/
 
+#print Dfinsupp.prod_inv /-
 @[simp, to_additive]
 theorem prod_inv [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommGroup γ]
     {f : Π₀ i, β i} {h : ∀ i, β i → γ} : (f.Prod fun i b => (h i b)⁻¹) = (f.Prod h)⁻¹ :=
   ((invMonoidHom : γ →* γ).map_prod _ f.support).symm
 #align dfinsupp.prod_inv Dfinsupp.prod_inv
 #align dfinsupp.sum_neg Dfinsupp.sum_neg
+-/
 
+#print Dfinsupp.prod_eq_one /-
 @[to_additive]
 theorem prod_eq_one [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {f : Π₀ i, β i} {h : ∀ i, β i → γ} (hyp : ∀ i, h i (f i) = 1) : f.Prod h = 1 :=
   Finset.prod_eq_one fun i hi => hyp i
 #align dfinsupp.prod_eq_one Dfinsupp.prod_eq_one
 #align dfinsupp.sum_eq_zero Dfinsupp.sum_eq_zero
+-/
 
+#print Dfinsupp.smul_sum /-
 theorem smul_sum {α : Type _} [Monoid α] [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     [AddCommMonoid γ] [DistribMulAction α γ] {f : Π₀ i, β i} {h : ∀ i, β i → γ} {c : α} :
     c • f.Sum h = f.Sum fun a b => c • h a b :=
   Finset.smul_sum
 #align dfinsupp.smul_sum Dfinsupp.smul_sum
+-/
 
+#print Dfinsupp.prod_add_index /-
 @[to_additive]
 theorem prod_add_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     [CommMonoid γ] {f g : Π₀ i, β i} {h : ∀ i, β i → γ} (h_zero : ∀ i, h i 0 = 1)
@@ -1998,7 +2181,9 @@ theorem prod_add_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decida
     _ = _ := by rw [f_eq, g_eq]
 #align dfinsupp.prod_add_index Dfinsupp.prod_add_index
 #align dfinsupp.sum_add_index Dfinsupp.sum_add_index
+-/
 
+#print dfinsupp_prod_mem /-
 @[to_additive]
 theorem dfinsupp_prod_mem [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {S : Type _} [SetLike S γ] [SubmonoidClass S γ] (s : S) (f : Π₀ i, β i) (g : ∀ i, β i → γ)
@@ -2006,7 +2191,9 @@ theorem dfinsupp_prod_mem [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x
   prod_mem fun i hi => h _ <| mem_support_iff.1 hi
 #align dfinsupp_prod_mem dfinsupp_prod_mem
 #align dfinsupp_sum_mem dfinsupp_sum_mem
+-/
 
+#print Dfinsupp.prod_eq_prod_fintype /-
 @[simp, to_additive]
 theorem prod_eq_prod_fintype [Fintype ι] [∀ i, Zero (β i)] [∀ (i : ι) (x : β i), Decidable (x ≠ 0)]
     [CommMonoid γ] (v : Π₀ i, β i) [f : ∀ i, β i → γ] (hf : ∀ i, f i 0 = 1) :
@@ -2019,7 +2206,9 @@ theorem prod_eq_prod_fintype [Fintype ι] [∀ i, Zero (β i)] [∀ (i : ι) (x
   rw [hi, hf]
 #align dfinsupp.prod_eq_prod_fintype Dfinsupp.prod_eq_prod_fintype
 #align dfinsupp.sum_eq_sum_fintype Dfinsupp.sum_eq_sum_fintype
+-/
 
+#print Dfinsupp.sumAddHom /-
 /--
 When summing over an `add_monoid_hom`, the decidability assumption is not needed, and the result is
 also an `add_monoid_hom`.
@@ -2058,7 +2247,9 @@ def sumAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i
         rw [(hg i).resolve_left H2, AddMonoidHom.map_zero]
   map_zero' := rfl
 #align dfinsupp.sum_add_hom Dfinsupp.sumAddHom
+-/
 
+#print Dfinsupp.sumAddHom_single /-
 @[simp]
 theorem sumAddHom_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i →+ γ) (i)
     (x : β i) : sumAddHom φ (single i x) = φ i x :=
@@ -2066,6 +2257,7 @@ theorem sumAddHom_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : 
   dsimp [sum_add_hom, single, Trunc.lift_mk]
   rw [Multiset.toFinset_singleton, Finset.sum_singleton, Pi.single_eq_same]
 #align dfinsupp.sum_add_hom_single Dfinsupp.sumAddHom_single
+-/
 
 #print Dfinsupp.sumAddHom_comp_single /-
 @[simp]
@@ -2075,6 +2267,7 @@ theorem sumAddHom_comp_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f
 #align dfinsupp.sum_add_hom_comp_single Dfinsupp.sumAddHom_comp_single
 -/
 
+#print Dfinsupp.sumAddHom_apply /-
 /-- While we didn't need decidable instances to define it, we do to reduce it to a sum -/
 theorem sumAddHom_apply [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     [AddCommMonoid γ] (φ : ∀ i, β i →+ γ) (f : Π₀ i, β i) : sumAddHom φ f = f.Sum fun x => φ x :=
@@ -2088,7 +2281,9 @@ theorem sumAddHom_apply [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decida
   rfl
   rw [not_not.mp h, AddMonoidHom.map_zero]
 #align dfinsupp.sum_add_hom_apply Dfinsupp.sumAddHom_apply
+-/
 
+#print dfinsupp_sumAddHom_mem /-
 theorem dfinsupp_sumAddHom_mem [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] {S : Type _}
     [SetLike S γ] [AddSubmonoidClass S γ] (s : S) (f : Π₀ i, β i) (g : ∀ i, β i →+ γ)
     (h : ∀ c, f c ≠ 0 → g c (f c) ∈ s) : Dfinsupp.sumAddHom g f ∈ s := by
@@ -2098,7 +2293,9 @@ theorem dfinsupp_sumAddHom_mem [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] {
   · infer_instance
   exact h
 #align dfinsupp_sum_add_hom_mem dfinsupp_sumAddHom_mem
+-/
 
+#print AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom /-
 /-- The supremum of a family of commutative additive submonoids is equal to the range of
 `dfinsupp.sum_add_hom`; that is, every element in the `supr` can be produced from taking a finite
 number of non-zero elements of `S i`, coercing them to `γ`, and summing them. -/
@@ -2112,7 +2309,9 @@ theorem AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom [AddCommMonoid γ] (S : 
   · rintro x ⟨v, rfl⟩
     exact dfinsupp_sumAddHom_mem _ v _ fun i _ => (le_iSup S i : S i ≤ _) (v i).Prop
 #align add_submonoid.supr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom
+-/
 
+#print AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom /-
 /-- The bounded supremum of a family of commutative additive submonoids is equal to the range of
 `dfinsupp.sum_add_hom` composed with `dfinsupp.filter_add_monoid_hom`; that is, every element in the
 bounded `supr` can be produced from taking a finite number of non-zero elements from the `S i` that
@@ -2133,12 +2332,16 @@ theorem AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom (p : ι → Prop) [Decid
     · simp [hp]
     · simp [hp]
 #align add_submonoid.bsupr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom
+-/
 
+#print AddSubmonoid.mem_iSup_iff_exists_dfinsupp /-
 theorem AddSubmonoid.mem_iSup_iff_exists_dfinsupp [AddCommMonoid γ] (S : ι → AddSubmonoid γ)
     (x : γ) : x ∈ iSup S ↔ ∃ f : Π₀ i, S i, Dfinsupp.sumAddHom (fun i => (S i).Subtype) f = x :=
   SetLike.ext_iff.mp (AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom S) x
 #align add_submonoid.mem_supr_iff_exists_dfinsupp AddSubmonoid.mem_iSup_iff_exists_dfinsupp
+-/
 
+#print AddSubmonoid.mem_iSup_iff_exists_dfinsupp' /-
 /-- A variant of `add_submonoid.mem_supr_iff_exists_dfinsupp` with the RHS fully unfolded. -/
 theorem AddSubmonoid.mem_iSup_iff_exists_dfinsupp' [AddCommMonoid γ] (S : ι → AddSubmonoid γ)
     [∀ (i) (x : S i), Decidable (x ≠ 0)] (x : γ) :
@@ -2148,16 +2351,18 @@ theorem AddSubmonoid.mem_iSup_iff_exists_dfinsupp' [AddCommMonoid γ] (S : ι 
   simp_rw [sum_add_hom_apply]
   congr
 #align add_submonoid.mem_supr_iff_exists_dfinsupp' AddSubmonoid.mem_iSup_iff_exists_dfinsupp'
+-/
 
+#print AddSubmonoid.mem_bsupr_iff_exists_dfinsupp /-
 theorem AddSubmonoid.mem_bsupr_iff_exists_dfinsupp (p : ι → Prop) [DecidablePred p]
     [AddCommMonoid γ] (S : ι → AddSubmonoid γ) (x : γ) :
     (x ∈ ⨆ (i) (h : p i), S i) ↔
       ∃ f : Π₀ i, S i, Dfinsupp.sumAddHom (fun i => (S i).Subtype) (f.filterₓ p) = x :=
   SetLike.ext_iff.mp (AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom p S) x
 #align add_submonoid.mem_bsupr_iff_exists_dfinsupp AddSubmonoid.mem_bsupr_iff_exists_dfinsupp
+-/
 
-omit dec
-
+#print Dfinsupp.sumAddHom_comm /-
 theorem sumAddHom_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂ : ι₂ → Type _} {γ : Type _}
     [DecidableEq ι₁] [DecidableEq ι₂] [∀ i, AddZeroClass (β₁ i)] [∀ i, AddZeroClass (β₂ i)]
     [AddCommMonoid γ] (f₁ : Π₀ i, β₁ i) (f₂ : Π₀ i, β₂ i) (h : ∀ i j, β₁ i →+ β₂ j →+ γ) :
@@ -2169,9 +2374,9 @@ theorem sumAddHom_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂
     AddMonoidHom.flip_apply, Trunc.lift]
   exact Finset.sum_comm
 #align dfinsupp.sum_add_hom_comm Dfinsupp.sumAddHom_comm
+-/
 
-include dec
-
+#print Dfinsupp.liftAddHom /-
 /-- The `dfinsupp` version of `finsupp.lift_add_hom`,-/
 @[simps apply symm_apply]
 def liftAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] : (∀ i, β i →+ γ) ≃+ ((Π₀ i, β i) →+ γ)
@@ -2182,24 +2387,32 @@ def liftAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] : (∀ i, β i 
   right_inv ψ := by ext; simp
   map_add' F G := by ext; simp
 #align dfinsupp.lift_add_hom Dfinsupp.liftAddHom
+-/
 
+#print Dfinsupp.liftAddHom_singleAddHom /-
 /-- The `dfinsupp` version of `finsupp.lift_add_hom_single_add_hom`,-/
 @[simp]
 theorem liftAddHom_singleAddHom [∀ i, AddCommMonoid (β i)] :
     liftAddHom (singleAddHom β) = AddMonoidHom.id (Π₀ i, β i) :=
   liftAddHom.toEquiv.apply_eq_iff_eq_symm_apply.2 rfl
 #align dfinsupp.lift_add_hom_single_add_hom Dfinsupp.liftAddHom_singleAddHom
+-/
 
+#print Dfinsupp.liftAddHom_apply_single /-
 /-- The `dfinsupp` version of `finsupp.lift_add_hom_apply_single`,-/
 theorem liftAddHom_apply_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f : ∀ i, β i →+ γ)
     (i : ι) (x : β i) : liftAddHom f (single i x) = f i x := by simp
 #align dfinsupp.lift_add_hom_apply_single Dfinsupp.liftAddHom_apply_single
+-/
 
+#print Dfinsupp.liftAddHom_comp_single /-
 /-- The `dfinsupp` version of `finsupp.lift_add_hom_comp_single`,-/
 theorem liftAddHom_comp_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f : ∀ i, β i →+ γ)
     (i : ι) : (liftAddHom f).comp (singleAddHom β i) = f i := by simp
 #align dfinsupp.lift_add_hom_comp_single Dfinsupp.liftAddHom_comp_single
+-/
 
+#print Dfinsupp.comp_liftAddHom /-
 /-- The `dfinsupp` version of `finsupp.comp_lift_add_hom`,-/
 theorem comp_liftAddHom {δ : Type _} [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] [AddCommMonoid δ]
     (g : γ →+ δ) (f : ∀ i, β i →+ γ) : g.comp (liftAddHom f) = liftAddHom fun a => g.comp (f a) :=
@@ -2207,30 +2420,40 @@ theorem comp_liftAddHom {δ : Type _} [∀ i, AddZeroClass (β i)] [AddCommMonoi
     funext fun a => by
       rw [lift_add_hom_symm_apply, AddMonoidHom.comp_assoc, lift_add_hom_comp_single]
 #align dfinsupp.comp_lift_add_hom Dfinsupp.comp_liftAddHom
+-/
 
+#print Dfinsupp.sumAddHom_zero /-
 @[simp]
 theorem sumAddHom_zero [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] :
     (sumAddHom fun i => (0 : β i →+ γ)) = 0 :=
   (liftAddHom : (∀ i, β i →+ γ) ≃+ _).map_zero
 #align dfinsupp.sum_add_hom_zero Dfinsupp.sumAddHom_zero
+-/
 
+#print Dfinsupp.sumAddHom_add /-
 @[simp]
 theorem sumAddHom_add [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (g : ∀ i, β i →+ γ)
     (h : ∀ i, β i →+ γ) : (sumAddHom fun i => g i + h i) = sumAddHom g + sumAddHom h :=
   liftAddHom.map_add _ _
 #align dfinsupp.sum_add_hom_add Dfinsupp.sumAddHom_add
+-/
 
+#print Dfinsupp.sumAddHom_singleAddHom /-
 @[simp]
 theorem sumAddHom_singleAddHom [∀ i, AddCommMonoid (β i)] :
     sumAddHom (singleAddHom β) = AddMonoidHom.id _ :=
   liftAddHom_singleAddHom
 #align dfinsupp.sum_add_hom_single_add_hom Dfinsupp.sumAddHom_singleAddHom
+-/
 
+#print Dfinsupp.comp_sumAddHom /-
 theorem comp_sumAddHom {δ : Type _} [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] [AddCommMonoid δ]
     (g : γ →+ δ) (f : ∀ i, β i →+ γ) : g.comp (sumAddHom f) = sumAddHom fun a => g.comp (f a) :=
   comp_liftAddHom _ _
 #align dfinsupp.comp_sum_add_hom Dfinsupp.comp_sumAddHom
+-/
 
+#print Dfinsupp.sum_sub_index /-
 theorem sum_sub_index [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [AddCommGroup γ]
     {f g : Π₀ i, β i} {h : ∀ i, β i → γ} (h_sub : ∀ i b₁ b₂, h i (b₁ - b₂) = h i b₁ - h i b₂) :
     (f - g).Sum h = f.Sum h - g.Sum h :=
@@ -2239,7 +2462,9 @@ theorem sum_sub_index [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x
   rw [lift_add_hom_apply, sum_add_hom_apply, sum_add_hom_apply, sum_add_hom_apply] at this 
   exact this
 #align dfinsupp.sum_sub_index Dfinsupp.sum_sub_index
+-/
 
+#print Dfinsupp.prod_finset_sum_index /-
 @[to_additive]
 theorem prod_finset_sum_index {γ : Type w} {α : Type x} [∀ i, AddCommMonoid (β i)]
     [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ] {s : Finset α} {g : α → Π₀ i, β i}
@@ -2251,7 +2476,9 @@ theorem prod_finset_sum_index {γ : Type w} {α : Type x} [∀ i, AddCommMonoid
       (by simp (config := { contextual := true }) [prod_add_index, h_zero, h_add])
 #align dfinsupp.prod_finset_sum_index Dfinsupp.prod_finset_sum_index
 #align dfinsupp.sum_finset_sum_index Dfinsupp.sum_finset_sum_index
+-/
 
+#print Dfinsupp.prod_sum_index /-
 @[to_additive]
 theorem prod_sum_index {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
     [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)]
@@ -2262,7 +2489,9 @@ theorem prod_sum_index {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ 
   (prod_finset_sum_index h_zero h_add).symm
 #align dfinsupp.prod_sum_index Dfinsupp.prod_sum_index
 #align dfinsupp.sum_sum_index Dfinsupp.sum_sum_index
+-/
 
+#print Dfinsupp.sum_single /-
 @[simp]
 theorem sum_single [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] {f : Π₀ i, β i} :
     f.Sum single = f :=
@@ -2271,6 +2500,7 @@ theorem sum_single [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable
   rw [lift_add_hom_apply, sum_add_hom_apply] at this 
   exact this
 #align dfinsupp.sum_single Dfinsupp.sum_single
+-/
 
 #print Dfinsupp.prod_subtypeDomain_index /-
 @[to_additive]
@@ -2283,20 +2513,22 @@ theorem prod_subtypeDomain_index [∀ i, Zero (β i)] [∀ (i) (x : β i), Decid
 #align dfinsupp.sum_subtype_domain_index Dfinsupp.sum_subtypeDomain_index
 -/
 
-omit dec
-
+#print Dfinsupp.subtypeDomain_sum /-
 theorem subtypeDomain_sum [∀ i, AddCommMonoid (β i)] {s : Finset γ} {h : γ → Π₀ i, β i}
     {p : ι → Prop} [DecidablePred p] :
     (∑ c in s, h c).subtypeDomain p = ∑ c in s, (h c).subtypeDomain p :=
   (subtypeDomainAddMonoidHom β p).map_sum _ s
 #align dfinsupp.subtype_domain_sum Dfinsupp.subtypeDomain_sum
+-/
 
+#print Dfinsupp.subtypeDomain_finsupp_sum /-
 theorem subtypeDomain_finsupp_sum {δ : γ → Type x} [DecidableEq γ] [∀ c, Zero (δ c)]
     [∀ (c) (x : δ c), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)] {p : ι → Prop} [DecidablePred p]
     {s : Π₀ c, δ c} {h : ∀ c, δ c → Π₀ i, β i} :
     (s.Sum h).subtypeDomain p = s.Sum fun c d => (h c d).subtypeDomain p :=
   subtypeDomain_sum
 #align dfinsupp.subtype_domain_finsupp_sum Dfinsupp.subtypeDomain_finsupp_sum
+-/
 
 end ProdAndSum
 
@@ -2308,10 +2540,9 @@ The names should match the equivalent bundled `finsupp.map_range` definitions.
 
 section MapRange
 
-omit dec
-
 variable [∀ i, AddZeroClass (β i)] [∀ i, AddZeroClass (β₁ i)] [∀ i, AddZeroClass (β₂ i)]
 
+#print Dfinsupp.mapRange_add /-
 theorem mapRange_add (f : ∀ i, β₁ i → β₂ i) (hf : ∀ i, f i 0 = 0)
     (hf' : ∀ i x y, f i (x + y) = f i x + f i y) (g₁ g₂ : Π₀ i, β₁ i) :
     mapRange f hf (g₁ + g₂) = mapRange f hf g₁ + mapRange f hf g₂ :=
@@ -2319,7 +2550,9 @@ theorem mapRange_add (f : ∀ i, β₁ i → β₂ i) (hf : ∀ i, f i 0 = 0)
   ext
   simp only [map_range_apply f, coe_add, Pi.add_apply, hf']
 #align dfinsupp.map_range_add Dfinsupp.mapRange_add
+-/
 
+#print Dfinsupp.mapRange.addMonoidHom /-
 /-- `dfinsupp.map_range` as an `add_monoid_hom`. -/
 @[simps apply]
 def mapRange.addMonoidHom (f : ∀ i, β₁ i →+ β₂ i) : (Π₀ i, β₁ i) →+ Π₀ i, β₂ i
@@ -2328,19 +2561,25 @@ def mapRange.addMonoidHom (f : ∀ i, β₁ i →+ β₂ i) : (Π₀ i, β₁ i)
   map_zero' := mapRange_zero _ _
   map_add' := mapRange_add _ _ fun i => (f i).map_add
 #align dfinsupp.map_range.add_monoid_hom Dfinsupp.mapRange.addMonoidHom
+-/
 
+#print Dfinsupp.mapRange.addMonoidHom_id /-
 @[simp]
 theorem mapRange.addMonoidHom_id :
     (mapRange.addMonoidHom fun i => AddMonoidHom.id (β₂ i)) = AddMonoidHom.id _ :=
   AddMonoidHom.ext mapRange_id
 #align dfinsupp.map_range.add_monoid_hom_id Dfinsupp.mapRange.addMonoidHom_id
+-/
 
+#print Dfinsupp.mapRange.addMonoidHom_comp /-
 theorem mapRange.addMonoidHom_comp (f : ∀ i, β₁ i →+ β₂ i) (f₂ : ∀ i, β i →+ β₁ i) :
     (mapRange.addMonoidHom fun i => (f i).comp (f₂ i)) =
       (mapRange.addMonoidHom f).comp (mapRange.addMonoidHom f₂) :=
   AddMonoidHom.ext <| mapRange_comp (fun i x => f i x) (fun i x => f₂ i x) _ _ _
 #align dfinsupp.map_range.add_monoid_hom_comp Dfinsupp.mapRange.addMonoidHom_comp
+-/
 
+#print Dfinsupp.mapRange.addEquiv /-
 /-- `dfinsupp.map_range.add_monoid_hom` as an `add_equiv`. -/
 @[simps apply]
 def mapRange.addEquiv (e : ∀ i, β₁ i ≃+ β₂ i) : (Π₀ i, β₁ i) ≃+ Π₀ i, β₂ i :=
@@ -2352,24 +2591,31 @@ def mapRange.addEquiv (e : ∀ i, β₁ i ≃+ β₂ i) : (Π₀ i, β₁ i) ≃
     left_inv := fun x => by rw [← map_range_comp] <;> · simp_rw [AddEquiv.symm_comp_self]; simp
     right_inv := fun x => by rw [← map_range_comp] <;> · simp_rw [AddEquiv.self_comp_symm]; simp }
 #align dfinsupp.map_range.add_equiv Dfinsupp.mapRange.addEquiv
+-/
 
+#print Dfinsupp.mapRange.addEquiv_refl /-
 @[simp]
 theorem mapRange.addEquiv_refl :
     (mapRange.addEquiv fun i => AddEquiv.refl (β₁ i)) = AddEquiv.refl _ :=
   AddEquiv.ext mapRange_id
 #align dfinsupp.map_range.add_equiv_refl Dfinsupp.mapRange.addEquiv_refl
+-/
 
+#print Dfinsupp.mapRange.addEquiv_trans /-
 theorem mapRange.addEquiv_trans (f : ∀ i, β i ≃+ β₁ i) (f₂ : ∀ i, β₁ i ≃+ β₂ i) :
     (mapRange.addEquiv fun i => (f i).trans (f₂ i)) =
       (mapRange.addEquiv f).trans (mapRange.addEquiv f₂) :=
   AddEquiv.ext <| mapRange_comp (fun i x => f₂ i x) (fun i x => f i x) _ _ _
 #align dfinsupp.map_range.add_equiv_trans Dfinsupp.mapRange.addEquiv_trans
+-/
 
+#print Dfinsupp.mapRange.addEquiv_symm /-
 @[simp]
 theorem mapRange.addEquiv_symm (e : ∀ i, β₁ i ≃+ β₂ i) :
     (mapRange.addEquiv e).symm = mapRange.addEquiv fun i => (e i).symm :=
   rfl
 #align dfinsupp.map_range.add_equiv_symm Dfinsupp.mapRange.addEquiv_symm
+-/
 
 end MapRange
 
@@ -2397,26 +2643,32 @@ variable {R S : Type _}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
+#print MonoidHom.map_dfinsupp_prod /-
 @[simp, to_additive]
 theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R →* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Prod g) = f.Prod fun a b => h (g a b) :=
   h.map_prod _ _
 #align monoid_hom.map_dfinsupp_prod MonoidHom.map_dfinsupp_prod
 #align add_monoid_hom.map_dfinsupp_sum AddMonoidHom.map_dfinsupp_sum
+-/
 
+#print MonoidHom.coe_dfinsupp_prod /-
 @[to_additive]
 theorem coe_dfinsupp_prod [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀ i, β i → R →* S) :
     ⇑(f.Prod g) = f.Prod fun a b => g a b :=
   coe_finset_prod _ _
 #align monoid_hom.coe_dfinsupp_prod MonoidHom.coe_dfinsupp_prod
 #align add_monoid_hom.coe_dfinsupp_sum AddMonoidHom.coe_dfinsupp_sum
+-/
 
+#print MonoidHom.dfinsupp_prod_apply /-
 @[simp, to_additive]
 theorem dfinsupp_prod_apply [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀ i, β i → R →* S)
     (r : R) : (f.Prod g) r = f.Prod fun a b => (g a b) r :=
   finset_prod_apply _ _ _
 #align monoid_hom.dfinsupp_prod_apply MonoidHom.dfinsupp_prod_apply
 #align add_monoid_hom.dfinsupp_sum_apply AddMonoidHom.dfinsupp_sum_apply
+-/
 
 end MonoidHom
 
@@ -2426,17 +2678,21 @@ variable {R S : Type _}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
+#print RingHom.map_dfinsupp_prod /-
 @[simp]
 theorem map_dfinsupp_prod [CommSemiring R] [CommSemiring S] (h : R →+* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Prod g) = f.Prod fun a b => h (g a b) :=
   h.map_prod _ _
 #align ring_hom.map_dfinsupp_prod RingHom.map_dfinsupp_prod
+-/
 
+#print RingHom.map_dfinsupp_sum /-
 @[simp]
 theorem map_dfinsupp_sum [NonAssocSemiring R] [NonAssocSemiring S] (h : R →+* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Sum g) = f.Sum fun a b => h (g a b) :=
   h.map_sum _ _
 #align ring_hom.map_dfinsupp_sum RingHom.map_dfinsupp_sum
+-/
 
 end RingHom
 
@@ -2446,12 +2702,14 @@ variable {R S : Type _}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
+#print MulEquiv.map_dfinsupp_prod /-
 @[simp, to_additive]
 theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R ≃* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Prod g) = f.Prod fun a b => h (g a b) :=
   h.map_prod _ _
 #align mul_equiv.map_dfinsupp_prod MulEquiv.map_dfinsupp_prod
 #align add_equiv.map_dfinsupp_sum AddEquiv.map_dfinsupp_sum
+-/
 
 end MulEquiv
 
@@ -2464,25 +2722,31 @@ variable {R S : Type _}
 
 open Dfinsupp
 
+#print AddMonoidHom.map_dfinsupp_sumAddHom /-
 @[simp]
 theorem map_dfinsupp_sumAddHom [AddCommMonoid R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (h : R →+ S) (f : Π₀ i, β i) (g : ∀ i, β i →+ R) :
     h (sumAddHom g f) = sumAddHom (fun i => h.comp (g i)) f :=
   congr_fun (comp_liftAddHom h g) f
 #align add_monoid_hom.map_dfinsupp_sum_add_hom AddMonoidHom.map_dfinsupp_sumAddHom
+-/
 
+#print AddMonoidHom.dfinsupp_sumAddHom_apply /-
 @[simp]
 theorem dfinsupp_sumAddHom_apply [AddZeroClass R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (f : Π₀ i, β i) (g : ∀ i, β i →+ R →+ S) (r : R) :
     (sumAddHom g f) r = sumAddHom (fun i => (eval r).comp (g i)) f :=
   map_dfinsupp_sumAddHom (eval r) f g
 #align add_monoid_hom.dfinsupp_sum_add_hom_apply AddMonoidHom.dfinsupp_sumAddHom_apply
+-/
 
+#print AddMonoidHom.coe_dfinsupp_sumAddHom /-
 theorem coe_dfinsupp_sumAddHom [AddZeroClass R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (f : Π₀ i, β i) (g : ∀ i, β i →+ R →+ S) :
     ⇑(sumAddHom g f) = sumAddHom (fun i => (coeFn R S).comp (g i)) f :=
   map_dfinsupp_sumAddHom (coeFn R S) f g
 #align add_monoid_hom.coe_dfinsupp_sum_add_hom AddMonoidHom.coe_dfinsupp_sumAddHom
+-/
 
 end AddMonoidHom
 
@@ -2492,12 +2756,14 @@ variable {R S : Type _}
 
 open Dfinsupp
 
+#print RingHom.map_dfinsupp_sumAddHom /-
 @[simp]
 theorem map_dfinsupp_sumAddHom [NonAssocSemiring R] [NonAssocSemiring S] [∀ i, AddZeroClass (β i)]
     (h : R →+* S) (f : Π₀ i, β i) (g : ∀ i, β i →+ R) :
     h (sumAddHom g f) = sumAddHom (fun i => h.toAddMonoidHom.comp (g i)) f :=
   AddMonoidHom.congr_fun (comp_liftAddHom h.toAddMonoidHom g) f
 #align ring_hom.map_dfinsupp_sum_add_hom RingHom.map_dfinsupp_sumAddHom
+-/
 
 end RingHom
 
@@ -2507,12 +2773,14 @@ variable {R S : Type _}
 
 open Dfinsupp
 
+#print AddEquiv.map_dfinsupp_sumAddHom /-
 @[simp]
 theorem map_dfinsupp_sumAddHom [AddCommMonoid R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (h : R ≃+ S) (f : Π₀ i, β i) (g : ∀ i, β i →+ R) :
     h (sumAddHom g f) = sumAddHom (fun i => h.toAddMonoidHom.comp (g i)) f :=
   AddMonoidHom.congr_fun (comp_liftAddHom h.toAddMonoidHom g) f
 #align add_equiv.map_dfinsupp_sum_add_hom AddEquiv.map_dfinsupp_sumAddHom
+-/
 
 end AddEquiv
 
@@ -2535,6 +2803,7 @@ instance Dfinsupp.infinite_of_left {ι : Sort _} {π : ι → Sort _} [∀ i, No
 #align dfinsupp.infinite_of_left Dfinsupp.infinite_of_left
 -/
 
+#print Dfinsupp.infinite_of_exists_right /-
 /-- See `dfinsupp.infinite_of_right` for this in instance form, with the drawback that
 it needs all `π i` to be infinite. -/
 theorem Dfinsupp.infinite_of_exists_right {ι : Sort _} {π : ι → Sort _} (i : ι) [Infinite (π i)]
@@ -2542,6 +2811,7 @@ theorem Dfinsupp.infinite_of_exists_right {ι : Sort _} {π : ι → Sort _} (i
   letI := Classical.decEq ι
   Infinite.of_injective (fun j => Dfinsupp.single i j) Dfinsupp.single_injective
 #align dfinsupp.infinite_of_exists_right Dfinsupp.infinite_of_exists_right
+-/
 
 #print Dfinsupp.infinite_of_right /-
 /-- See `dfinsupp.infinite_of_exists_right` for the case that only one `π ι` is infinite. -/
Diff
@@ -1983,14 +1983,14 @@ theorem smul_sum {α : Type _} [Monoid α] [∀ i, Zero (β i)] [∀ (i) (x : β
 theorem prod_add_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     [CommMonoid γ] {f g : Π₀ i, β i} {h : ∀ i, β i → γ} (h_zero : ∀ i, h i 0 = 1)
     (h_add : ∀ i b₁ b₂, h i (b₁ + b₂) = h i b₁ * h i b₂) : (f + g).Prod h = f.Prod h * g.Prod h :=
-  have f_eq : (∏ i in f.support ∪ g.support, h i (f i)) = f.Prod h :=
+  have f_eq : ∏ i in f.support ∪ g.support, h i (f i) = f.Prod h :=
     (Finset.prod_subset (Finset.subset_union_left _ _) <| by
         simp (config := { contextual := true }) [mem_support_iff, h_zero]).symm
-  have g_eq : (∏ i in f.support ∪ g.support, h i (g i)) = g.Prod h :=
+  have g_eq : ∏ i in f.support ∪ g.support, h i (g i) = g.Prod h :=
     (Finset.prod_subset (Finset.subset_union_right _ _) <| by
         simp (config := { contextual := true }) [mem_support_iff, h_zero]).symm
   calc
-    (∏ i in (f + g).support, h i ((f + g) i)) = ∏ i in f.support ∪ g.support, h i ((f + g) i) :=
+    ∏ i in (f + g).support, h i ((f + g) i) = ∏ i in f.support ∪ g.support, h i ((f + g) i) :=
       Finset.prod_subset support_add <| by
         simp (config := { contextual := true }) [mem_support_iff, h_zero]
     _ = (∏ i in f.support ∪ g.support, h i (f i)) * ∏ i in f.support ∪ g.support, h i (g i) := by
@@ -2012,7 +2012,7 @@ theorem prod_eq_prod_fintype [Fintype ι] [∀ i, Zero (β i)] [∀ (i : ι) (x
     [CommMonoid γ] (v : Π₀ i, β i) [f : ∀ i, β i → γ] (hf : ∀ i, f i 0 = 1) :
     v.Prod f = ∏ i, f i (Dfinsupp.equivFunOnFintype v i) :=
   by
-  suffices (∏ i in v.support, f i (v i)) = ∏ i, f i (v i) by simp [Dfinsupp.prod, this]
+  suffices ∏ i in v.support, f i (v i) = ∏ i, f i (v i) by simp [Dfinsupp.prod, this]
   apply Finset.prod_subset v.support.subset_univ
   intro i hi' hi
   rw [mem_support_iff, Classical.not_not] at hi 
@@ -2045,7 +2045,7 @@ def sumAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i
         rw [(hx i).resolve_left (mt (fun H3 => And.intro H3 H1) H2), AddMonoidHom.map_zero]
   map_add' := by
     rintro ⟨f, sf, hf⟩ ⟨g, sg, hg⟩
-    change (∑ i in _, _) = (∑ i in _, _) + ∑ i in _, _
+    change ∑ i in _, _ = ∑ i in _, _ + ∑ i in _, _
     simp only [coe_add, coe_mk', Subtype.coe_mk, Pi.add_apply, map_add, Finset.sum_add_distrib]
     congr 1
     · refine' (Finset.sum_subset _ _).symm
@@ -2080,7 +2080,7 @@ theorem sumAddHom_apply [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decida
     [AddCommMonoid γ] (φ : ∀ i, β i →+ γ) (f : Π₀ i, β i) : sumAddHom φ f = f.Sum fun x => φ x :=
   by
   rcases f with ⟨f, s, hf⟩
-  change (∑ i in _, _) = ∑ i in Finset.filter _ _, _
+  change ∑ i in _, _ = ∑ i in Finset.filter _ _, _
   rw [Finset.sum_filter, Finset.sum_congr rfl]
   intro i _
   dsimp only [coe_mk', Subtype.coe_mk] at *
@@ -2245,7 +2245,7 @@ theorem prod_finset_sum_index {γ : Type w} {α : Type x} [∀ i, AddCommMonoid
     [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ] {s : Finset α} {g : α → Π₀ i, β i}
     {h : ∀ i, β i → γ} (h_zero : ∀ i, h i 0 = 1)
     (h_add : ∀ i b₁ b₂, h i (b₁ + b₂) = h i b₁ * h i b₂) :
-    (∏ i in s, (g i).Prod h) = (∑ i in s, g i).Prod h := by
+    ∏ i in s, (g i).Prod h = (∑ i in s, g i).Prod h := by
   classical exact
     Finset.induction_on s (by simp [prod_zero_index])
       (by simp (config := { contextual := true }) [prod_add_index, h_zero, h_add])
Diff
@@ -1996,7 +1996,6 @@ theorem prod_add_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decida
     _ = (∏ i in f.support ∪ g.support, h i (f i)) * ∏ i in f.support ∪ g.support, h i (g i) := by
       simp [h_add, Finset.prod_mul_distrib]
     _ = _ := by rw [f_eq, g_eq]
-    
 #align dfinsupp.prod_add_index Dfinsupp.prod_add_index
 #align dfinsupp.sum_add_index Dfinsupp.sum_add_index
 
Diff
@@ -1289,7 +1289,7 @@ instance decidableZero : DecidablePred (Eq (0 : Π₀ i, β i)) := fun f =>
 #align dfinsupp.decidable_zero Dfinsupp.decidableZero
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:638:2: warning: expanding binder collection (i «expr ∉ » s) -/
 #print Dfinsupp.support_subset_iff /-
 theorem support_subset_iff {s : Set ι} {f : Π₀ i, β i} :
     ↑f.support ⊆ s ↔ ∀ (i) (_ : i ∉ s), f i = 0 := by
Diff
@@ -593,11 +593,11 @@ variable [∀ i, Zero (β i)]
 omit dec
 
 #print Dfinsupp.finite_support /-
-theorem finite_support (f : Π₀ i, β i) : Set.Finite { i | f i ≠ 0 } := by
+theorem finite_support (f : Π₀ i, β i) : Set.Finite {i | f i ≠ 0} := by
   classical exact
-      Trunc.induction_on f.support' fun xs =>
-        (Multiset.toFinset ↑xs).finite_toSet.Subset fun i H =>
-          Multiset.mem_toFinset.2 ((xs.Prop i).resolve_right H)
+    Trunc.induction_on f.support' fun xs =>
+      (Multiset.toFinset ↑xs).finite_toSet.Subset fun i H =>
+        Multiset.mem_toFinset.2 ((xs.Prop i).resolve_right H)
 #align dfinsupp.finite_support Dfinsupp.finite_support
 -/
 
@@ -1614,8 +1614,8 @@ instance distribMulAction₂ [Monoid γ] [∀ i j, AddMonoid (δ i j)]
 noncomputable def sigmaCurry [∀ i j, Zero (δ i j)] (f : Π₀ i : Σ i, _, δ i.1 i.2) :
     Π₀ (i) (j), δ i j := by
   classical exact
-      mk (f.support.image fun i => i.1) fun i =>
-        mk (f.support.preimage (Sigma.mk i) <| sigma_mk_injective.inj_on _) fun j => f ⟨i, j⟩
+    mk (f.support.image fun i => i.1) fun i =>
+      mk (f.support.preimage (Sigma.mk i) <| sigma_mk_injective.inj_on _) fun j => f ⟨i, j⟩
 #align dfinsupp.sigma_curry Dfinsupp.sigmaCurry
 -/
 
@@ -2094,10 +2094,10 @@ theorem dfinsupp_sumAddHom_mem [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] {
     [SetLike S γ] [AddSubmonoidClass S γ] (s : S) (f : Π₀ i, β i) (g : ∀ i, β i →+ γ)
     (h : ∀ c, f c ≠ 0 → g c (f c) ∈ s) : Dfinsupp.sumAddHom g f ∈ s := by
   classical
-    rw [Dfinsupp.sumAddHom_apply]
-    convert dfinsupp_sum_mem _ _ _ _
-    · infer_instance
-    exact h
+  rw [Dfinsupp.sumAddHom_apply]
+  convert dfinsupp_sum_mem _ _ _ _
+  · infer_instance
+  exact h
 #align dfinsupp_sum_add_hom_mem dfinsupp_sumAddHom_mem
 
 /-- The supremum of a family of commutative additive submonoids is equal to the range of
@@ -2248,8 +2248,8 @@ theorem prod_finset_sum_index {γ : Type w} {α : Type x} [∀ i, AddCommMonoid
     (h_add : ∀ i b₁ b₂, h i (b₁ + b₂) = h i b₁ * h i b₂) :
     (∏ i in s, (g i).Prod h) = (∑ i in s, g i).Prod h := by
   classical exact
-      Finset.induction_on s (by simp [prod_zero_index])
-        (by simp (config := { contextual := true }) [prod_add_index, h_zero, h_add])
+    Finset.induction_on s (by simp [prod_zero_index])
+      (by simp (config := { contextual := true }) [prod_add_index, h_zero, h_add])
 #align dfinsupp.prod_finset_sum_index Dfinsupp.prod_finset_sum_index
 #align dfinsupp.sum_finset_sum_index Dfinsupp.sum_finset_sum_index
 
Diff
@@ -88,7 +88,7 @@ variable [∀ i, Zero (β i)] [∀ i, Zero (β₁ i)] [∀ i, Zero (β₂ i)]
 
 #print Dfinsupp.funLike /-
 instance funLike : FunLike (Π₀ i, β i) ι β :=
-  ⟨fun f => f.toFun, fun ⟨f₁, s₁⟩ ⟨f₂, s₁⟩ (h : f₁ = f₂) => by subst h; congr ⟩
+  ⟨fun f => f.toFun, fun ⟨f₁, s₁⟩ ⟨f₂, s₁⟩ (h : f₁ = f₂) => by subst h; congr⟩
 #align dfinsupp.fun_like Dfinsupp.funLike
 -/
 
@@ -640,8 +640,8 @@ theorem mk_injective (s : Finset ι) : Function.Injective (@mk ι β _ _ s) :=
   ext i
   have h1 : (mk s x : ∀ i, β i) i = (mk s y : ∀ i, β i) i := by rw [H]
   cases' i with i hi
-  change i ∈ s at hi
-  dsimp only [mk_apply, Subtype.coe_mk] at h1
+  change i ∈ s at hi 
+  dsimp only [mk_apply, Subtype.coe_mk] at h1 
   simpa only [dif_pos hi] using h1
 #align dfinsupp.mk_injective Dfinsupp.mk_injective
 -/
@@ -746,9 +746,9 @@ theorem single_eq_single_iff (i j : ι) (xi : β i) (xj : β j) :
     · have h_coe : ⇑(Dfinsupp.single i xi) = Dfinsupp.single j xj := congr_arg coeFn h
       have hci := congr_fun h_coe i
       have hcj := congr_fun h_coe j
-      rw [Dfinsupp.single_eq_same] at hci hcj
-      rw [Dfinsupp.single_eq_of_ne (Ne.symm hij)] at hci
-      rw [Dfinsupp.single_eq_of_ne hij] at hcj
+      rw [Dfinsupp.single_eq_same] at hci hcj 
+      rw [Dfinsupp.single_eq_of_ne (Ne.symm hij)] at hci 
+      rw [Dfinsupp.single_eq_of_ne hij] at hcj 
       exact Or.inr ⟨hci, hcj.symm⟩
   · rintro (⟨rfl, hxi⟩ | ⟨hi, hj⟩)
     · rw [eq_of_hEq hxi]
@@ -780,7 +780,7 @@ theorem filter_single (p : ι → Prop) [DecidablePred p] (i : ι) (x : β i) :
   by
   ext j
   have := apply_ite (fun x : Π₀ i, β i => x j) (p i) (single i x) 0
-  dsimp at this
+  dsimp at this 
   rw [filter_apply, this]
   obtain rfl | hij := Decidable.eq_or_ne i j
   · rfl
@@ -1088,7 +1088,7 @@ protected theorem induction {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (
       · cases' Multiset.mem_cons.1 H2 with H3 H3
         · right; exact if_pos H3
         · left; exact H3
-      right; split_ifs <;> [rfl;exact H2]
+      right; split_ifs <;> [rfl; exact H2]
     have H3 :
       (⟨fun j : ι => ite (j = i) 0 (f j), Trunc.mk ⟨i ::ₘ s, _⟩⟩ : Π₀ i, β i) =
         ⟨fun j : ι => ite (j = i) 0 (f j), Trunc.mk ⟨s, H2⟩⟩ :=
@@ -1131,7 +1131,7 @@ theorem addHom_ext {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+
     (H : ∀ (i : ι) (y : β i), f (single i y) = g (single i y)) : f = g :=
   by
   refine' AddMonoidHom.eq_of_eqOn_denseM add_closure_Union_range_single fun f hf => _
-  simp only [Set.mem_iUnion, Set.mem_range] at hf
+  simp only [Set.mem_iUnion, Set.mem_range] at hf 
   rcases hf with ⟨x, y, rfl⟩
   apply H
 #align dfinsupp.add_hom_ext Dfinsupp.addHom_ext
@@ -1151,7 +1151,7 @@ end AddMonoid
 @[simp]
 theorem mk_add [∀ i, AddZeroClass (β i)] {s : Finset ι} {x y : ∀ i : (↑s : Set ι), β i} :
     mk s (x + y) = mk s x + mk s y :=
-  ext fun i => by simp only [add_apply, mk_apply] <;> split_ifs <;> [rfl;rw [zero_add]]
+  ext fun i => by simp only [add_apply, mk_apply] <;> split_ifs <;> [rfl; rw [zero_add]]
 #align dfinsupp.mk_add Dfinsupp.mk_add
 
 #print Dfinsupp.mk_zero /-
@@ -1164,13 +1164,13 @@ theorem mk_zero [∀ i, Zero (β i)] {s : Finset ι} : mk s (0 : ∀ i : (↑s :
 @[simp]
 theorem mk_neg [∀ i, AddGroup (β i)] {s : Finset ι} {x : ∀ i : (↑s : Set ι), β i.1} :
     mk s (-x) = -mk s x :=
-  ext fun i => by simp only [neg_apply, mk_apply] <;> split_ifs <;> [rfl;rw [neg_zero]]
+  ext fun i => by simp only [neg_apply, mk_apply] <;> split_ifs <;> [rfl; rw [neg_zero]]
 #align dfinsupp.mk_neg Dfinsupp.mk_neg
 
 @[simp]
 theorem mk_sub [∀ i, AddGroup (β i)] {s : Finset ι} {x y : ∀ i : (↑s : Set ι), β i.1} :
     mk s (x - y) = mk s x - mk s y :=
-  ext fun i => by simp only [sub_apply, mk_apply] <;> split_ifs <;> [rfl;rw [sub_zero]]
+  ext fun i => by simp only [sub_apply, mk_apply] <;> split_ifs <;> [rfl; rw [sub_zero]]
 #align dfinsupp.mk_sub Dfinsupp.mk_sub
 
 /-- If `s` is a subset of `ι` then `mk_add_group_hom s` is the canonical additive
@@ -1189,13 +1189,13 @@ variable [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i
 @[simp]
 theorem mk_smul {s : Finset ι} (c : γ) (x : ∀ i : (↑s : Set ι), β (i : ι)) :
     mk s (c • x) = c • mk s x :=
-  ext fun i => by simp only [smul_apply, mk_apply] <;> split_ifs <;> [rfl;rw [smul_zero]]
+  ext fun i => by simp only [smul_apply, mk_apply] <;> split_ifs <;> [rfl; rw [smul_zero]]
 #align dfinsupp.mk_smul Dfinsupp.mk_smul
 
 @[simp]
 theorem single_smul {i : ι} (c : γ) (x : β i) : single i (c • x) = c • single i x :=
   ext fun i => by
-    simp only [smul_apply, single_apply] <;> split_ifs <;> [cases h;rw [smul_zero]] <;> rfl
+    simp only [smul_apply, single_apply] <;> split_ifs <;> [cases h; rw [smul_zero]] <;> rfl
 #align dfinsupp.single_smul Dfinsupp.single_smul
 
 end
@@ -1253,7 +1253,7 @@ theorem eq_mk_support (f : Π₀ i, β i) : f = mk f.support fun i => f i :=
   by
   change f = mk f.support fun i => f i.1
   ext i
-  by_cases h : f i ≠ 0 <;> [skip;rw [Classical.not_not] at h] <;> simp [h]
+  by_cases h : f i ≠ 0 <;> [skip; rw [Classical.not_not] at h ] <;> simp [h]
 #align dfinsupp.eq_mk_support Dfinsupp.eq_mk_support
 -/
 
@@ -1322,7 +1322,7 @@ theorem mapRange_def [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] {f : ∀ i, β
     mapRange f hf g = mk g.support fun i => f i.1 (g i.1) :=
   by
   ext i
-  by_cases h : g i ≠ 0 <;> simp at h <;> simp [h, hf]
+  by_cases h : g i ≠ 0 <;> simp at h  <;> simp [h, hf]
 #align dfinsupp.map_range_def Dfinsupp.mapRange_def
 -/
 
@@ -1330,7 +1330,7 @@ theorem mapRange_def [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] {f : ∀ i, β
 @[simp]
 theorem mapRange_single {f : ∀ i, β₁ i → β₂ i} {hf : ∀ i, f i 0 = 0} {i : ι} {b : β₁ i} :
     mapRange f hf (single i b) = single i (f i b) :=
-  Dfinsupp.ext fun i' => by by_cases i = i' <;> [· subst i'; simp;simp [h, hf]]
+  Dfinsupp.ext fun i' => by by_cases i = i' <;> [· subst i'; simp; simp [h, hf]]
 #align dfinsupp.map_range_single Dfinsupp.mapRange_single
 -/
 
@@ -1351,7 +1351,7 @@ theorem zipWith_def {ι : Type u} {β : ι → Type v} {β₁ : ι → Type v₁
   by
   ext i
   by_cases h1 : g₁ i ≠ 0 <;> by_cases h2 : g₂ i ≠ 0 <;>
-      simp only [Classical.not_not, Ne.def] at h1 h2 <;>
+      simp only [Classical.not_not, Ne.def] at h1 h2  <;>
     simp [h1, h2, hf]
 #align dfinsupp.zip_with_def Dfinsupp.zipWith_def
 -/
@@ -1367,14 +1367,14 @@ end MapRangeAndZipWith
 
 #print Dfinsupp.erase_def /-
 theorem erase_def (i : ι) (f : Π₀ i, β i) : f.eraseₓ i = mk (f.support.eraseₓ i) fun j => f j.1 :=
-  by ext j; by_cases h1 : j = i <;> by_cases h2 : f j ≠ 0 <;> simp at h2 <;> simp [h1, h2]
+  by ext j; by_cases h1 : j = i <;> by_cases h2 : f j ≠ 0 <;> simp at h2  <;> simp [h1, h2]
 #align dfinsupp.erase_def Dfinsupp.erase_def
 -/
 
 #print Dfinsupp.support_erase /-
 @[simp]
 theorem support_erase (i : ι) (f : Π₀ i, β i) : (f.eraseₓ i).support = f.support.eraseₓ i := by
-  ext j; by_cases h1 : j = i; simp [h1]; by_cases h2 : f j ≠ 0 <;> simp at h2 <;> simp [h1, h2]
+  ext j; by_cases h1 : j = i; simp [h1]; by_cases h2 : f j ≠ 0 <;> simp at h2  <;> simp [h1, h2]
 #align dfinsupp.support_erase Dfinsupp.support_erase
 -/
 
@@ -1406,7 +1406,7 @@ variable {p : ι → Prop} [DecidablePred p]
 
 #print Dfinsupp.filter_def /-
 theorem filter_def (f : Π₀ i, β i) : f.filterₓ p = mk (f.support.filterₓ p) fun i => f i.1 := by
-  ext i <;> by_cases h1 : p i <;> by_cases h2 : f i ≠ 0 <;> simp at h2 <;> simp [h1, h2]
+  ext i <;> by_cases h1 : p i <;> by_cases h2 : f i ≠ 0 <;> simp at h2  <;> simp [h1, h2]
 #align dfinsupp.filter_def Dfinsupp.filter_def
 -/
 
@@ -1419,7 +1419,7 @@ theorem support_filter (f : Π₀ i, β i) : (f.filterₓ p).support = f.support
 
 theorem subtypeDomain_def (f : Π₀ i, β i) :
     f.subtypeDomain p = mk (f.support.Subtype p) fun i => f i := by
-  ext i <;> by_cases h2 : f i ≠ 0 <;> try simp at h2 <;> dsimp <;> simp [h2]
+  ext i <;> by_cases h2 : f i ≠ 0 <;> try simp at h2  <;> dsimp <;> simp [h2]
 #align dfinsupp.subtype_domain_def Dfinsupp.subtypeDomain_def
 
 @[simp]
@@ -1453,8 +1453,8 @@ instance [∀ i, Zero (β i)] [∀ i, DecidableEq (β i)] : DecidableEq (Π₀ i
       ext fun i =>
         if h : i ∈ f.support then h₂ i h
         else by
-          have hf : f i = 0 := by rwa [mem_support_iff, Classical.not_not] at h
-          have hg : g i = 0 := by rwa [h₁, mem_support_iff, Classical.not_not] at h
+          have hf : f i = 0 := by rwa [mem_support_iff, Classical.not_not] at h 
+          have hg : g i = 0 := by rwa [h₁, mem_support_iff, Classical.not_not] at h 
           rw [hf, hg],
       by rintro rfl; simp⟩
 
@@ -1611,7 +1611,7 @@ instance distribMulAction₂ [Monoid γ] [∀ i j, AddMonoid (δ i j)]
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 #print Dfinsupp.sigmaCurry /-
 /-- The natural map between `Π₀ (i : Σ i, α i), δ i.1 i.2` and `Π₀ i (j : α i), δ i j`.  -/
-noncomputable def sigmaCurry [∀ i j, Zero (δ i j)] (f : Π₀ i : Σi, _, δ i.1 i.2) :
+noncomputable def sigmaCurry [∀ i j, Zero (δ i j)] (f : Π₀ i : Σ i, _, δ i.1 i.2) :
     Π₀ (i) (j), δ i j := by
   classical exact
       mk (f.support.image fun i => i.1) fun i =>
@@ -1620,7 +1620,7 @@ noncomputable def sigmaCurry [∀ i j, Zero (δ i j)] (f : Π₀ i : Σi, _, δ
 -/
 
 @[simp]
-theorem sigmaCurry_apply [∀ i j, Zero (δ i j)] (f : Π₀ i : Σi, _, δ i.1 i.2) (i : ι) (j : α i) :
+theorem sigmaCurry_apply [∀ i j, Zero (δ i j)] (f : Π₀ i : Σ i, _, δ i.1 i.2) (i : ι) (j : α i) :
     sigmaCurry f i j = f ⟨i, j⟩ := by
   dsimp only [sigma_curry]; by_cases h : f ⟨i, j⟩ = 0
   · rw [h, mk_apply]; split_ifs; · rw [mk_apply]; split_ifs; · exact h; · rfl; · rfl
@@ -1630,12 +1630,12 @@ theorem sigmaCurry_apply [∀ i j, Zero (δ i j)] (f : Π₀ i : Σi, _, δ i.1
 #align dfinsupp.sigma_curry_apply Dfinsupp.sigmaCurry_apply
 
 @[simp]
-theorem sigmaCurry_zero [∀ i j, Zero (δ i j)] : sigmaCurry (0 : Π₀ i : Σi, _, δ i.1 i.2) = 0 := by
+theorem sigmaCurry_zero [∀ i j, Zero (δ i j)] : sigmaCurry (0 : Π₀ i : Σ i, _, δ i.1 i.2) = 0 := by
   ext (i j); rw [sigma_curry_apply]; rfl
 #align dfinsupp.sigma_curry_zero Dfinsupp.sigmaCurry_zero
 
 @[simp]
-theorem sigmaCurry_add [∀ i j, AddZeroClass (δ i j)] (f g : Π₀ i : Σi, α i, δ i.1 i.2) :
+theorem sigmaCurry_add [∀ i j, AddZeroClass (δ i j)] (f g : Π₀ i : Σ i, α i, δ i.1 i.2) :
     @sigmaCurry _ _ δ _ (f + g) = @sigmaCurry _ _ δ _ f + @sigmaCurry ι α δ _ g :=
   by
   ext (i j)
@@ -1645,7 +1645,7 @@ theorem sigmaCurry_add [∀ i j, AddZeroClass (δ i j)] (f g : Π₀ i : Σi, α
 
 @[simp]
 theorem sigmaCurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)] [∀ i j, DistribMulAction γ (δ i j)]
-    (r : γ) (f : Π₀ i : Σi, α i, δ i.1 i.2) :
+    (r : γ) (f : Π₀ i : Σ i, α i, δ i.1 i.2) :
     @sigmaCurry _ _ δ _ (r • f) = r • @sigmaCurry _ _ δ _ f :=
   by
   ext (i j)
@@ -1655,7 +1655,7 @@ theorem sigmaCurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)] [∀ i j, Dist
 
 @[simp]
 theorem sigmaCurry_single [DecidableEq ι] [∀ i, DecidableEq (α i)] [∀ i j, Zero (δ i j)]
-    (ij : Σi, α i) (x : δ ij.1 ij.2) :
+    (ij : Σ i, α i) (x : δ ij.1 ij.2) :
     @sigmaCurry _ _ _ _ (single ij x) = single ij.1 (single ij.2 x : Π₀ j, δ ij.1 j) :=
   by
   obtain ⟨i, j⟩ := ij
@@ -1677,7 +1677,7 @@ theorem sigmaCurry_single [DecidableEq ι] [∀ i, DecidableEq (α i)] [∀ i j,
 /-- The natural map between `Π₀ i (j : α i), δ i j` and `Π₀ (i : Σ i, α i), δ i.1 i.2`, inverse of
 `curry`.-/
 def sigmaUncurry [∀ i j, Zero (δ i j)] [∀ i, DecidableEq (α i)]
-    [∀ (i j) (x : δ i j), Decidable (x ≠ 0)] (f : Π₀ (i) (j), δ i j) : Π₀ i : Σi, _, δ i.1 i.2
+    [∀ (i j) (x : δ i j), Decidable (x ≠ 0)] (f : Π₀ (i) (j), δ i j) : Π₀ i : Σ i, _, δ i.1 i.2
     where
   toFun i := f i.1 i.2
   support' :=
@@ -1750,7 +1750,7 @@ theorem sigmaUncurry_single [∀ i j, Zero (δ i j)] [DecidableEq ι] [∀ i, De
 
 This is the dfinsupp version of `equiv.Pi_curry`. -/
 noncomputable def sigmaCurryEquiv [∀ i j, Zero (δ i j)] [∀ i, DecidableEq (α i)]
-    [∀ (i j) (x : δ i j), Decidable (x ≠ 0)] : (Π₀ i : Σi, _, δ i.1 i.2) ≃ Π₀ (i) (j), δ i j
+    [∀ (i j) (x : δ i j), Decidable (x ≠ 0)] : (Π₀ i : Σ i, _, δ i.1 i.2) ≃ Π₀ (i) (j), δ i j
     where
   toFun := sigmaCurry
   invFun := sigmaUncurry
@@ -1875,7 +1875,7 @@ theorem prod_mapRange_index {β₁ : ι → Type v₁} {β₂ : ι → Type v₂
   rw [map_range_def]
   refine' (Finset.prod_subset support_mk_subset _).trans _
   · intro i h1 h2
-    dsimp; simp [h1] at h2; dsimp at h2
+    dsimp; simp [h1] at h2 ; dsimp at h2 
     simp [h1, h2, h0]
   · refine' Finset.prod_congr rfl _
     intro i h1
@@ -1896,7 +1896,7 @@ theorem prod_single_index [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x
   by
   by_cases h : b ≠ 0
   · simp [Dfinsupp.prod, support_single_ne_zero h]
-  · rw [Classical.not_not] at h; simp [h, prod_zero_index, h_zero]; rfl
+  · rw [Classical.not_not] at h ; simp [h, prod_zero_index, h_zero]; rfl
 #align dfinsupp.prod_single_index Dfinsupp.prod_single_index
 #align dfinsupp.sum_single_index Dfinsupp.sum_single_index
 
@@ -2016,7 +2016,7 @@ theorem prod_eq_prod_fintype [Fintype ι] [∀ i, Zero (β i)] [∀ (i : ι) (x
   suffices (∏ i in v.support, f i (v i)) = ∏ i, f i (v i) by simp [Dfinsupp.prod, this]
   apply Finset.prod_subset v.support.subset_univ
   intro i hi' hi
-  rw [mem_support_iff, Classical.not_not] at hi
+  rw [mem_support_iff, Classical.not_not] at hi 
   rw [hi, hf]
 #align dfinsupp.prod_eq_prod_fintype Dfinsupp.prod_eq_prod_fintype
 #align dfinsupp.sum_eq_sum_fintype Dfinsupp.sum_eq_sum_fintype
@@ -2037,12 +2037,12 @@ def sumAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i
       refine'
         (Finset.sum_subset H1 _).symm.trans
           ((Finset.sum_congr rfl _).trans (Finset.sum_subset H2 _))
-      · intro i H1 H2; rw [Finset.mem_inter] at H2
-        simp only [Multiset.mem_toFinset] at H1 H2
+      · intro i H1 H2; rw [Finset.mem_inter] at H2 
+        simp only [Multiset.mem_toFinset] at H1 H2 
         rw [(hy i).resolve_left (mt (And.intro H1) H2), AddMonoidHom.map_zero]
       · intro i H1; rfl
-      · intro i H1 H2; rw [Finset.mem_inter] at H2
-        simp only [Multiset.mem_toFinset] at H1 H2
+      · intro i H1 H2; rw [Finset.mem_inter] at H2 
+        simp only [Multiset.mem_toFinset] at H1 H2 
         rw [(hx i).resolve_left (mt (fun H3 => And.intro H3 H1) H2), AddMonoidHom.map_zero]
   map_add' := by
     rintro ⟨f, sf, hf⟩ ⟨g, sg, hg⟩
@@ -2051,11 +2051,11 @@ def sumAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i
     congr 1
     · refine' (Finset.sum_subset _ _).symm
       · intro i; simp only [Multiset.mem_toFinset, Multiset.mem_add]; exact Or.inl
-      · intro i H1 H2; simp only [Multiset.mem_toFinset, Multiset.mem_add] at H2
+      · intro i H1 H2; simp only [Multiset.mem_toFinset, Multiset.mem_add] at H2 
         rw [(hf i).resolve_left H2, AddMonoidHom.map_zero]
     · refine' (Finset.sum_subset _ _).symm
       · intro i; simp only [Multiset.mem_toFinset, Multiset.mem_add]; exact Or.inr
-      · intro i H1 H2; simp only [Multiset.mem_toFinset, Multiset.mem_add] at H2
+      · intro i H1 H2; simp only [Multiset.mem_toFinset, Multiset.mem_add] at H2 
         rw [(hg i).resolve_left H2, AddMonoidHom.map_zero]
   map_zero' := rfl
 #align dfinsupp.sum_add_hom Dfinsupp.sumAddHom
@@ -2237,7 +2237,7 @@ theorem sum_sub_index [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x
     (f - g).Sum h = f.Sum h - g.Sum h :=
   by
   have := (lift_add_hom fun a => AddMonoidHom.ofMapSub (h a) (h_sub a)).map_sub f g
-  rw [lift_add_hom_apply, sum_add_hom_apply, sum_add_hom_apply, sum_add_hom_apply] at this
+  rw [lift_add_hom_apply, sum_add_hom_apply, sum_add_hom_apply, sum_add_hom_apply] at this 
   exact this
 #align dfinsupp.sum_sub_index Dfinsupp.sum_sub_index
 
@@ -2269,7 +2269,7 @@ theorem sum_single [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable
     f.Sum single = f :=
   by
   have := AddMonoidHom.congr_fun lift_add_hom_single_add_hom f
-  rw [lift_add_hom_apply, sum_add_hom_apply] at this
+  rw [lift_add_hom_apply, sum_add_hom_apply] at this 
   exact this
 #align dfinsupp.sum_single Dfinsupp.sum_single
 
Diff
@@ -54,7 +54,7 @@ definitions, or introduce two more definitions for the other combinations of dec
 
 universe u u₁ u₂ v v₁ v₂ v₃ w x y l
 
-open BigOperators
+open scoped BigOperators
 
 variable {ι : Type u} {γ : Type w} {β : ι → Type v} {β₁ : ι → Type v₁} {β₂ : ι → Type v₂}
 
Diff
@@ -258,23 +258,11 @@ section Algebra
 instance [∀ i, AddZeroClass (β i)] : Add (Π₀ i, β i) :=
   ⟨zipWith (fun _ => (· + ·)) fun _ => add_zero 0⟩
 
-/- warning: dfinsupp.add_apply -> Dfinsupp.add_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (g₁ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (g₂ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (i : ι), Eq.{succ u2} (β i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) g₁ g₂) i) (HAdd.hAdd.{u2, u2, u2} (β i) (β i) (β i) (instHAdd.{u2} (β i) (AddZeroClass.toHasAdd.{u2} (β i) (_inst_1 i))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) g₁ i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) g₂ i))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (g₁ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (g₂ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (i : ι), Eq.{succ u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) g₁ g₂) i) (HAdd.hAdd.{u2, u2, u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => (fun (i : ι) => β i) i) i) (instHAdd.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddZeroClass.toAdd.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (_inst_1 i))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) g₁ i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) g₂ i))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.add_apply Dfinsupp.add_applyₓ'. -/
 theorem add_apply [∀ i, AddZeroClass (β i)] (g₁ g₂ : Π₀ i, β i) (i : ι) :
     (g₁ + g₂) i = g₁ i + g₂ i :=
   rfl
 #align dfinsupp.add_apply Dfinsupp.add_apply
 
-/- warning: dfinsupp.coe_add -> Dfinsupp.coe_add is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (g₁ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (g₂ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{succ (max u1 u2)} (forall (i : ι), β i) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) g₁ g₂)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (forall (i : ι), β i) (forall (i : ι), β i) (forall (i : ι), β i) (instHAdd.{max u1 u2} (forall (i : ι), β i) (Pi.instAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasAdd.{u2} (β i) (_inst_1 i)))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) g₁) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) g₂))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (g₁ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (g₂ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{max (succ u1) (succ u2)} (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) g₁ g₂)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (instHAdd.{max u1 u2} (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (Pi.instAdd.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => AddZeroClass.toAdd.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (_inst_1 i)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) g₁) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) g₂))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.coe_add Dfinsupp.coe_addₓ'. -/
 @[simp]
 theorem coe_add [∀ i, AddZeroClass (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g₁ + g₂) = g₁ + g₂ :=
   rfl
@@ -283,34 +271,16 @@ theorem coe_add [∀ i, AddZeroClass (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g
 instance [∀ i, AddZeroClass (β i)] : AddZeroClass (Π₀ i, β i) :=
   FunLike.coe_injective.AddZeroClass _ coe_zero coe_add
 
-/- warning: dfinsupp.has_nat_scalar -> Dfinsupp.hasNatScalar is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddMonoid.{u2} (β i)], SMul.{0, max u1 u2} Nat (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (_inst_1 i))))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddMonoid.{u2} (β i)], SMul.{0, max u2 u1} Nat (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.has_nat_scalar Dfinsupp.hasNatScalarₓ'. -/
 /-- Note the general `dfinsupp.has_smul` instance doesn't apply as `ℕ` is not distributive
 unless `β i`'s addition is commutative. -/
 instance hasNatScalar [∀ i, AddMonoid (β i)] : SMul ℕ (Π₀ i, β i) :=
   ⟨fun c v => v.mapRange (fun _ => (· • ·) c) fun _ => nsmul_zero _⟩
 #align dfinsupp.has_nat_scalar Dfinsupp.hasNatScalar
 
-/- warning: dfinsupp.nsmul_apply -> Dfinsupp.nsmul_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddMonoid.{u2} (β i)] (b : Nat) (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (i : ι), Eq.{succ u2} (β i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (SMul.smul.{0, max u1 u2} Nat (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (Dfinsupp.hasNatScalar.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) b v) i) (SMul.smul.{0, u2} Nat (β i) (AddMonoid.SMul.{u2} (β i) (_inst_1 i)) b (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) v i))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddMonoid.{u2} (β i)] (b : Nat) (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (i : ι), Eq.{succ u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) (HSMul.hSMul.{0, max u1 u2, max u1 u2} Nat (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHSMul.{0, max u1 u2} Nat (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasNatScalar.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) b v) i) (HSMul.hSMul.{0, u2, u2} Nat ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => (fun (i : ι) => β i) i) i) (instHSMul.{0, u2} Nat ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddMonoid.SMul.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (_inst_1 i))) b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) v i))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.nsmul_apply Dfinsupp.nsmul_applyₓ'. -/
 theorem nsmul_apply [∀ i, AddMonoid (β i)] (b : ℕ) (v : Π₀ i, β i) (i : ι) : (b • v) i = b • v i :=
   rfl
 #align dfinsupp.nsmul_apply Dfinsupp.nsmul_apply
 
-/- warning: dfinsupp.coe_nsmul -> Dfinsupp.coe_nsmul is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddMonoid.{u2} (β i)] (b : Nat) (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))), Eq.{succ (max u1 u2)} (forall (i : ι), β i) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (SMul.smul.{0, max u1 u2} Nat (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (Dfinsupp.hasNatScalar.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) b v)) (SMul.smul.{0, max u1 u2} Nat (forall (i : ι), β i) (Pi.instSMul.{u1, u2, 0} ι Nat (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.SMul.{u2} (β i) (_inst_1 i))) b (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) v))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddMonoid.{u2} (β i)] (b : Nat) (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{max (succ u1) (succ u2)} (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) (HSMul.hSMul.{0, max u1 u2, max u1 u2} Nat (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHSMul.{0, max u1 u2} Nat (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasNatScalar.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) b v)) (HSMul.hSMul.{0, max u1 u2, max u1 u2} Nat (forall (a : ι), (fun (i : ι) => (fun (i : ι) => β i) i) a) (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (instHSMul.{0, max u1 u2} Nat (forall (a : ι), (fun (i : ι) => (fun (i : ι) => β i) i) a) (AddMonoid.SMul.{max u1 u2} (forall (a : ι), (fun (i : ι) => (fun (i : ι) => β i) i) a) (Pi.addMonoid.{u1, u2} ι (fun (a : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) a) (fun (i : ι) => _inst_1 i)))) b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) v))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.coe_nsmul Dfinsupp.coe_nsmulₓ'. -/
 @[simp]
 theorem coe_nsmul [∀ i, AddMonoid (β i)] (b : ℕ) (v : Π₀ i, β i) : ⇑(b • v) = b • v :=
   rfl
@@ -319,12 +289,6 @@ theorem coe_nsmul [∀ i, AddMonoid (β i)] (b : ℕ) (v : Π₀ i, β i) : ⇑(
 instance [∀ i, AddMonoid (β i)] : AddMonoid (Π₀ i, β i) :=
   FunLike.coe_injective.AddMonoid _ coe_zero coe_add fun _ _ => coe_nsmul _ _
 
-/- warning: dfinsupp.coe_fn_add_monoid_hom -> Dfinsupp.coeFnAddMonoidHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)], AddMonoidHom.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (forall (i : ι), β i) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)], AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (forall (i : ι), β i) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Pi.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.coe_fn_add_monoid_hom Dfinsupp.coeFnAddMonoidHomₓ'. -/
 /-- Coercion from a `dfinsupp` to a pi type is an `add_monoid_hom`. -/
 def coeFnAddMonoidHom [∀ i, AddZeroClass (β i)] : (Π₀ i, β i) →+ ∀ i, β i
     where
@@ -333,12 +297,6 @@ def coeFnAddMonoidHom [∀ i, AddZeroClass (β i)] : (Π₀ i, β i) →+ ∀ i,
   map_add' := coe_add
 #align dfinsupp.coe_fn_add_monoid_hom Dfinsupp.coeFnAddMonoidHom
 
-/- warning: dfinsupp.eval_add_monoid_hom -> Dfinsupp.evalAddMonoidHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (i : ι), AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (β i) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (_inst_1 i)
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (i : ι), AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (β i) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (_inst_1 i)
-Case conversion may be inaccurate. Consider using '#align dfinsupp.eval_add_monoid_hom Dfinsupp.evalAddMonoidHomₓ'. -/
 /-- Evaluation at a point is an `add_monoid_hom`. This is the finitely-supported version of
 `pi.eval_add_monoid_hom`. -/
 def evalAddMonoidHom [∀ i, AddZeroClass (β i)] (i : ι) : (Π₀ i, β i) →+ β i :=
@@ -348,24 +306,12 @@ def evalAddMonoidHom [∀ i, AddZeroClass (β i)] (i : ι) : (Π₀ i, β i) →
 instance [∀ i, AddCommMonoid (β i)] : AddCommMonoid (Π₀ i, β i) :=
   FunLike.coe_injective.AddCommMonoid _ coe_zero coe_add fun _ _ => coe_nsmul _ _
 
-/- warning: dfinsupp.coe_finset_sum -> Dfinsupp.coe_finset_sum is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} {α : Type.{u3}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (s : Finset.{u3} α) (g : α -> (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))), Eq.{max (succ u1) (succ u2)} (forall (i : ι), β i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (Finset.sum.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) α (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) s (fun (a : α) => g a))) (Finset.sum.{max u1 u2, u3} (forall (i : ι), β i) α (Pi.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) s (fun (a : α) => coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (g a)))
-but is expected to have type
-  forall {ι : Type.{u2}} {β : ι -> Type.{u3}} {α : Type.{u1}} [_inst_1 : forall (i : ι), AddCommMonoid.{u3} (β i)] (s : Finset.{u1} α) (g : α -> (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))))), Eq.{max (succ u2) (succ u3)} (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) i)) (Finset.sum.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)))) α (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) s (fun (a : α) => g a))) (Finset.sum.{max u2 u3, u1} (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) α (Pi.addCommMonoid.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => _inst_1 i)) s (fun (a : α) => FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) i)) (g a)))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.coe_finset_sum Dfinsupp.coe_finset_sumₓ'. -/
 @[simp]
 theorem coe_finset_sum {α} [∀ i, AddCommMonoid (β i)] (s : Finset α) (g : α → Π₀ i, β i) :
     ⇑(∑ a in s, g a) = ∑ a in s, g a :=
   (coeFnAddMonoidHom : _ →+ ∀ i, β i).map_sum g s
 #align dfinsupp.coe_finset_sum Dfinsupp.coe_finset_sum
 
-/- warning: dfinsupp.finset_sum_apply -> Dfinsupp.finset_sum_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} {α : Type.{u3}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] (s : Finset.{u3} α) (g : α -> (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (i : ι), Eq.{succ u2} (β i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (Finset.sum.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) α (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) s (fun (a : α) => g a)) i) (Finset.sum.{u2, u3} (β i) α (_inst_1 i) s (fun (a : α) => coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (g a) i))
-but is expected to have type
-  forall {ι : Type.{u2}} {β : ι -> Type.{u3}} {α : Type.{u1}} [_inst_1 : forall (i : ι), AddCommMonoid.{u3} (β i)] (s : Finset.{u1} α) (g : α -> (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))))) (i : ι), Eq.{succ u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) i)) (Finset.sum.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)))) α (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) s (fun (a : α) => g a)) i) (Finset.sum.{u3, u1} ((fun (i : ι) => (fun (i : ι) => β i) i) i) α (_inst_1 i) s (fun (a : α) => FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) i)) (g a) i))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.finset_sum_apply Dfinsupp.finset_sum_applyₓ'. -/
 @[simp]
 theorem finset_sum_apply {α} [∀ i, AddCommMonoid (β i)] (s : Finset α) (g : α → Π₀ i, β i) (i : ι) :
     (∑ a in s, g a) i = ∑ a in s, g a i :=
@@ -375,22 +321,10 @@ theorem finset_sum_apply {α} [∀ i, AddCommMonoid (β i)] (s : Finset α) (g :
 instance [∀ i, AddGroup (β i)] : Neg (Π₀ i, β i) :=
   ⟨fun f => f.mapRange (fun _ => Neg.neg) fun _ => neg_zero⟩
 
-/- warning: dfinsupp.neg_apply -> Dfinsupp.neg_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (i : ι), Eq.{succ u2} (β i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.hasNeg.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) g) i) (Neg.neg.{u2} (β i) (SubNegMonoid.toHasNeg.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) g i))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (i : ι), Eq.{succ u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.instNegDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) g) i) (Neg.neg.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (NegZeroClass.toNeg.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (_inst_1 i))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) g i))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.neg_apply Dfinsupp.neg_applyₓ'. -/
 theorem neg_apply [∀ i, AddGroup (β i)] (g : Π₀ i, β i) (i : ι) : (-g) i = -g i :=
   rfl
 #align dfinsupp.neg_apply Dfinsupp.neg_apply
 
-/- warning: dfinsupp.coe_neg -> Dfinsupp.coe_neg is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))), Eq.{succ (max u1 u2)} (forall (i : ι), β i) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.hasNeg.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) g)) (Neg.neg.{max u1 u2} (forall (i : ι), β i) (Pi.instNeg.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => SubNegMonoid.toHasNeg.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i)))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) g))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))), Eq.{max (succ u1) (succ u2)} (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.instNegDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) g)) (Neg.neg.{max u1 u2} (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (Pi.instNeg.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => NegZeroClass.toNeg.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (_inst_1 i)))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) g))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.coe_neg Dfinsupp.coe_negₓ'. -/
 @[simp]
 theorem coe_neg [∀ i, AddGroup (β i)] (g : Π₀ i, β i) : ⇑(-g) = -g :=
   rfl
@@ -399,49 +333,25 @@ theorem coe_neg [∀ i, AddGroup (β i)] (g : Π₀ i, β i) : ⇑(-g) = -g :=
 instance [∀ i, AddGroup (β i)] : Sub (Π₀ i, β i) :=
   ⟨zipWith (fun _ => Sub.sub) fun _ => sub_zero 0⟩
 
-/- warning: dfinsupp.sub_apply -> Dfinsupp.sub_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sub_apply Dfinsupp.sub_applyₓ'. -/
 theorem sub_apply [∀ i, AddGroup (β i)] (g₁ g₂ : Π₀ i, β i) (i : ι) : (g₁ - g₂) i = g₁ i - g₂ i :=
   rfl
 #align dfinsupp.sub_apply Dfinsupp.sub_apply
 
-/- warning: dfinsupp.coe_sub -> Dfinsupp.coe_sub is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.coe_sub Dfinsupp.coe_subₓ'. -/
 @[simp]
 theorem coe_sub [∀ i, AddGroup (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g₁ - g₂) = g₁ - g₂ :=
   rfl
 #align dfinsupp.coe_sub Dfinsupp.coe_sub
 
-/- warning: dfinsupp.has_int_scalar -> Dfinsupp.hasIntScalar is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)], SMul.{0, max u1 u2} Int (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i))))))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)], SMul.{0, max u2 u1} Int (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.has_int_scalar Dfinsupp.hasIntScalarₓ'. -/
 /-- Note the general `dfinsupp.has_smul` instance doesn't apply as `ℤ` is not distributive
 unless `β i`'s addition is commutative. -/
 instance hasIntScalar [∀ i, AddGroup (β i)] : SMul ℤ (Π₀ i, β i) :=
   ⟨fun c v => v.mapRange (fun _ => (· • ·) c) fun _ => zsmul_zero _⟩
 #align dfinsupp.has_int_scalar Dfinsupp.hasIntScalar
 
-/- warning: dfinsupp.zsmul_apply -> Dfinsupp.zsmul_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] (b : Int) (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (i : ι), Eq.{succ u2} (β i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (SMul.smul.{0, max u1 u2} Int (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.hasIntScalar.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) b v) i) (SMul.smul.{0, u2} Int (β i) (SubNegMonoid.SMulInt.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i))) b (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) v i))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] (b : Int) (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (i : ι), Eq.{succ u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) (HSMul.hSMul.{0, max u1 u2, max u1 u2} Int (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (instHSMul.{0, max u1 u2} Int (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.hasIntScalar.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) b v) i) (HSMul.hSMul.{0, u2, u2} Int ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => (fun (i : ι) => β i) i) i) (instHSMul.{0, u2} Int ((fun (i : ι) => (fun (i : ι) => β i) i) i) (SubNegMonoid.SMulInt.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (_inst_1 i)))) b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) v i))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.zsmul_apply Dfinsupp.zsmul_applyₓ'. -/
 theorem zsmul_apply [∀ i, AddGroup (β i)] (b : ℤ) (v : Π₀ i, β i) (i : ι) : (b • v) i = b • v i :=
   rfl
 #align dfinsupp.zsmul_apply Dfinsupp.zsmul_apply
 
-/- warning: dfinsupp.coe_zsmul -> Dfinsupp.coe_zsmul is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] (b : Int) (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))), Eq.{succ (max u1 u2)} (forall (i : ι), β i) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (SMul.smul.{0, max u1 u2} Int (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.hasIntScalar.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) b v)) (SMul.smul.{0, max u1 u2} Int (forall (i : ι), β i) (Pi.instSMul.{u1, u2, 0} ι Int (fun (i : ι) => β i) (fun (i : ι) => SubNegMonoid.SMulInt.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i)))) b (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) v))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] (b : Int) (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))), Eq.{max (succ u1) (succ u2)} (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) (HSMul.hSMul.{0, max u1 u2, max u1 u2} Int (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (instHSMul.{0, max u1 u2} Int (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.hasIntScalar.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) b v)) (HSMul.hSMul.{0, max u1 u2, max u1 u2} Int (forall (a : ι), (fun (i : ι) => (fun (i : ι) => β i) i) a) (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (instHSMul.{0, max u1 u2} Int (forall (a : ι), (fun (i : ι) => (fun (i : ι) => β i) i) a) (SubNegMonoid.SMulInt.{max u1 u2} (forall (a : ι), (fun (i : ι) => (fun (i : ι) => β i) i) a) (Pi.subNegMonoid.{u1, u2} ι (fun (a : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) a) (fun (i : ι) => AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (_inst_1 i))))) b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) v))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.coe_zsmul Dfinsupp.coe_zsmulₓ'. -/
 @[simp]
 theorem coe_zsmul [∀ i, AddGroup (β i)] (b : ℤ) (v : Π₀ i, β i) : ⇑(b • v) = b • v :=
   rfl
@@ -460,23 +370,11 @@ coordinate. -/
 instance [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] : SMul γ (Π₀ i, β i) :=
   ⟨fun c v => v.mapRange (fun _ => (· • ·) c) fun _ => smul_zero _⟩
 
-/- warning: dfinsupp.smul_apply -> Dfinsupp.smul_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : ι), AddMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), DistribMulAction.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] (b : γ) (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (i : ι), Eq.{succ u2} (β i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (SMul.smul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.hasSmul.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) b v) i) (SMul.smul.{u3, u2} γ (β i) (SMulZeroClass.toHasSmul.{u3, u2} γ (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (_inst_2 i))) (DistribSMul.toSmulZeroClass.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (_inst_2 i)) (DistribMulAction.toDistribSMul.{u3, u2} γ (β i) _inst_1 (_inst_2 i) (_inst_3 i)))) b (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) v i))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : ι), AddMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), DistribMulAction.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] (b : γ) (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (i : ι), Eq.{succ u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)) i)) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i))) b v) i) (HSMul.hSMul.{u3, u2, u2} γ ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => (fun (i : ι) => β i) i) i) (instHSMul.{u3, u2} γ ((fun (i : ι) => (fun (i : ι) => β i) i) i) (SMulZeroClass.toSMul.{u3, u2} γ ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (_inst_2 i)) (DistribSMul.toSMulZeroClass.{u3, u2} γ ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (_inst_2 i)) (DistribMulAction.toDistribSMul.{u3, u2} γ ((fun (i : ι) => (fun (i : ι) => β i) i) i) _inst_1 (_inst_2 i) (_inst_3 i))))) b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)) i)) v i))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.smul_apply Dfinsupp.smul_applyₓ'. -/
 theorem smul_apply [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] (b : γ)
     (v : Π₀ i, β i) (i : ι) : (b • v) i = b • v i :=
   rfl
 #align dfinsupp.smul_apply Dfinsupp.smul_apply
 
-/- warning: dfinsupp.coe_smul -> Dfinsupp.coe_smul is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : ι), AddMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), DistribMulAction.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] (b : γ) (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))), Eq.{succ (max u1 u2)} (forall (i : ι), β i) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (SMul.smul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.hasSmul.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) b v)) (SMul.smul.{u3, max u1 u2} γ (forall (i : ι), β i) (Pi.instSMul.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (i : ι) => SMulZeroClass.toHasSmul.{u3, u2} γ (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (_inst_2 i))) (DistribSMul.toSmulZeroClass.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (_inst_2 i)) (DistribMulAction.toDistribSMul.{u3, u2} γ (β i) _inst_1 (_inst_2 i) (_inst_3 i))))) b (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) v))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : ι), AddMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), DistribMulAction.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] (b : γ) (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))), Eq.{max (succ u1) (succ u2)} (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)) i)) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i))) b v)) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ (forall (a : ι), (fun (i : ι) => (fun (i : ι) => β i) i) a) (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (instHSMul.{u3, max u1 u2} γ (forall (a : ι), (fun (i : ι) => (fun (i : ι) => β i) i) a) (Pi.instSMul.{u1, u2, u3} ι γ (fun (a : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) a) (fun (i : ι) => SMulZeroClass.toSMul.{u3, u2} γ ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddMonoid.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (_inst_2 i)) (DistribSMul.toSMulZeroClass.{u3, u2} γ ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (_inst_2 i)) (DistribMulAction.toDistribSMul.{u3, u2} γ ((fun (i : ι) => (fun (i : ι) => β i) i) i) _inst_1 (_inst_2 i) (_inst_3 i)))))) b (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)) i)) v))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.coe_smul Dfinsupp.coe_smulₓ'. -/
 @[simp]
 theorem coe_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] (b : γ)
     (v : Π₀ i, β i) : ⇑(b • v) = b • v :=
@@ -544,12 +442,6 @@ theorem filter_apply_neg [∀ i, Zero (β i)] {p : ι → Prop} [DecidablePred p
 #align dfinsupp.filter_apply_neg Dfinsupp.filter_apply_neg
 -/
 
-/- warning: dfinsupp.filter_pos_add_filter_neg -> Dfinsupp.filter_pos_add_filter_neg is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (p : ι -> Prop) [_inst_2 : DecidablePred.{succ u1} ι p], Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) p (fun (a : ι) => _inst_2 a) f) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) (fun (i : ι) => Not (p i)) (fun (a : ι) => Not.decidable (p a) (_inst_2 a)) f)) f
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (p : ι -> Prop) [_inst_2 : DecidablePred.{succ u1} ι p], Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) p (fun (a : ι) => _inst_2 a) f) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) (fun (i : ι) => Not (p i)) (fun (a : ι) => instDecidableNot (p a) (_inst_2 a)) f)) f
-Case conversion may be inaccurate. Consider using '#align dfinsupp.filter_pos_add_filter_neg Dfinsupp.filter_pos_add_filter_negₓ'. -/
 theorem filter_pos_add_filter_neg [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i) (p : ι → Prop)
     [DecidablePred p] : (f.filterₓ p + f.filterₓ fun i => ¬p i) = f :=
   ext fun i => by
@@ -563,23 +455,11 @@ theorem filter_zero [∀ i, Zero (β i)] (p : ι → Prop) [DecidablePred p] :
 #align dfinsupp.filter_zero Dfinsupp.filter_zero
 -/
 
-/- warning: dfinsupp.filter_add -> Dfinsupp.filter_add is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (p : ι -> Prop) [_inst_2 : DecidablePred.{succ u1} ι p] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) p (fun (a : ι) => _inst_2 a) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) p (fun (a : ι) => _inst_2 a) f) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) p (fun (a : ι) => _inst_2 a) g))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (p : ι -> Prop) [_inst_2 : DecidablePred.{succ u1} ι p] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) p (fun (a : ι) => _inst_2 a) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) p (fun (a : ι) => _inst_2 a) f) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) p (fun (a : ι) => _inst_2 a) g))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.filter_add Dfinsupp.filter_addₓ'. -/
 @[simp]
 theorem filter_add [∀ i, AddZeroClass (β i)] (p : ι → Prop) [DecidablePred p] (f g : Π₀ i, β i) :
     (f + g).filterₓ p = f.filterₓ p + g.filterₓ p := by ext; simp [ite_add_zero]
 #align dfinsupp.filter_add Dfinsupp.filter_add
 
-/- warning: dfinsupp.filter_smul -> Dfinsupp.filter_smul is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : ι), AddMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), DistribMulAction.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] (p : ι -> Prop) [_inst_4 : DecidablePred.{succ u1} ι p] (r : γ) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) p (fun (a : ι) => _inst_4 a) (SMul.smul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.hasSmul.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) r f)) (SMul.smul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.hasSmul.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) r (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) p (fun (a : ι) => _inst_4 a) f))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : ι), AddMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), DistribMulAction.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] (p : ι -> Prop) [_inst_4 : DecidablePred.{succ u1} ι p] (r : γ) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)) p (fun (a : ι) => _inst_4 a) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i))) r f)) (HSMul.hSMul.{u3, max u2 u1, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i))) r (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)) p (fun (a : ι) => _inst_4 a) f))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.filter_smul Dfinsupp.filter_smulₓ'. -/
 @[simp]
 theorem filter_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] (p : ι → Prop)
     [DecidablePred p] (r : γ) (f : Π₀ i, β i) : (r • f).filterₓ p = r • f.filterₓ p := by ext;
@@ -588,12 +468,6 @@ theorem filter_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulActi
 
 variable (γ β)
 
-/- warning: dfinsupp.filter_add_monoid_hom -> Dfinsupp.filterAddMonoidHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (p : ι -> Prop) [_inst_2 : DecidablePred.{succ u1} ι p], AddMonoidHom.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))
-but is expected to have type
-  forall {ι : Type.{u1}} (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (p : ι -> Prop) [_inst_2 : DecidablePred.{succ u1} ι p], AddMonoidHom.{max u2 u1, max u2 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.filter_add_monoid_hom Dfinsupp.filterAddMonoidHomₓ'. -/
 /-- `dfinsupp.filter` as an `add_monoid_hom`. -/
 @[simps]
 def filterAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [DecidablePred p] :
@@ -603,12 +477,6 @@ def filterAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [Decidable
   map_add' := filter_add p
 #align dfinsupp.filter_add_monoid_hom Dfinsupp.filterAddMonoidHom
 
-/- warning: dfinsupp.filter_linear_map -> Dfinsupp.filterLinearMap is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} (γ : Type.{u3}) (β : ι -> Type.{u2}) [_inst_1 : Semiring.{u3} γ] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), Module.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] (p : ι -> Prop) [_inst_4 : DecidablePred.{succ u1} ι p], LinearMap.{u3, u3, max u1 u2, max u1 u2} γ γ _inst_1 _inst_1 (RingHom.id.{u3} γ (Semiring.toNonAssocSemiring.{u3} γ _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_2 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_2 i))))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.module.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.module.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i))
-but is expected to have type
-  forall {ι : Type.{u1}} (γ : Type.{u3}) (β : ι -> Type.{u2}) [_inst_1 : Semiring.{u3} γ] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), Module.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] (p : ι -> Prop) [_inst_4 : DecidablePred.{succ u1} ι p], LinearMap.{u3, u3, max u2 u1, max u2 u1} γ γ _inst_1 _inst_1 (RingHom.id.{u3} γ (Semiring.toNonAssocSemiring.{u3} γ _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.module.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.module.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.filter_linear_map Dfinsupp.filterLinearMapₓ'. -/
 /-- `dfinsupp.filter` as a `linear_map`. -/
 @[simps]
 def filterLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (β i)] (p : ι → Prop)
@@ -621,24 +489,12 @@ def filterLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module 
 
 variable {γ β}
 
-/- warning: dfinsupp.filter_neg -> Dfinsupp.filter_neg is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] (p : ι -> Prop) [_inst_2 : DecidablePred.{succ u1} ι p] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.hasNeg.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) f)) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.hasNeg.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) f))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] (p : ι -> Prop) [_inst_2 : DecidablePred.{succ u1} ι p] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.instNegDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) f)) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.instNegDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) f))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.filter_neg Dfinsupp.filter_negₓ'. -/
 @[simp]
 theorem filter_neg [∀ i, AddGroup (β i)] (p : ι → Prop) [DecidablePred p] (f : Π₀ i, β i) :
     (-f).filterₓ p = -f.filterₓ p :=
   (filterAddMonoidHom β p).map_neg f
 #align dfinsupp.filter_neg Dfinsupp.filter_neg
 
-/- warning: dfinsupp.filter_sub -> Dfinsupp.filter_sub is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] (p : ι -> Prop) [_inst_2 : DecidablePred.{succ u1} ι p] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.hasSub.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) f g)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.hasSub.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) f) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) g))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] (p : ι -> Prop) [_inst_2 : DecidablePred.{succ u1} ι p] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) f g)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) f) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) g))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.filter_sub Dfinsupp.filter_subₓ'. -/
 @[simp]
 theorem filter_sub [∀ i, AddGroup (β i)] (p : ι → Prop) [DecidablePred p] (f g : Π₀ i, β i) :
     (f - g).filterₓ p = f.filterₓ p - g.filterₓ p :=
@@ -675,21 +531,12 @@ theorem subtypeDomain_apply [∀ i, Zero (β i)] {p : ι → Prop} [DecidablePre
 #align dfinsupp.subtype_domain_apply Dfinsupp.subtypeDomain_apply
 -/
 
-/- warning: dfinsupp.subtype_domain_add -> Dfinsupp.subtypeDomain_add is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.subtype_domain_add Dfinsupp.subtypeDomain_addₓ'. -/
 @[simp]
 theorem subtypeDomain_add [∀ i, AddZeroClass (β i)] {p : ι → Prop} [DecidablePred p]
     (v v' : Π₀ i, β i) : (v + v').subtypeDomain p = v.subtypeDomain p + v'.subtypeDomain p :=
   coeFn_injective rfl
 #align dfinsupp.subtype_domain_add Dfinsupp.subtypeDomain_add
 
-/- warning: dfinsupp.subtype_domain_smul -> Dfinsupp.subtypeDomain_smul is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : ι), AddMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), DistribMulAction.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] {p : ι -> Prop} [_inst_4 : DecidablePred.{succ u1} ι p] (r : γ) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i))))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) p (fun (a : ι) => _inst_4 a) (SMul.smul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.hasSmul.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) r f)) (SMul.smul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i))))) (Dfinsupp.hasSmul.{u1, u2, u3} (Subtype.{succ u1} ι p) γ (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) _inst_1 (fun (i : Subtype.{succ u1} ι p) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => _inst_3 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i))) r (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) p (fun (a : ι) => _inst_4 a) f))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : ι), AddMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), DistribMulAction.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] {p : ι -> Prop} [_inst_4 : DecidablePred.{succ u1} ι p] (r : γ) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_2 (Subtype.val.{succ u1} ι p i)))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)) p (fun (a : ι) => _inst_4 a) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i))) r f)) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_2 (Subtype.val.{succ u1} ι p i)))) (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_2 (Subtype.val.{succ u1} ι p i)))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_2 (Subtype.val.{succ u1} ι p i)))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} (Subtype.{succ u1} ι p) γ (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) _inst_1 (fun (i : Subtype.{succ u1} ι p) => _inst_2 (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => _inst_3 (Subtype.val.{succ u1} ι p i)))) r (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)) p (fun (a : ι) => _inst_4 a) f))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.subtype_domain_smul Dfinsupp.subtypeDomain_smulₓ'. -/
 @[simp]
 theorem subtypeDomain_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
     {p : ι → Prop} [DecidablePred p] (r : γ) (f : Π₀ i, β i) :
@@ -699,12 +546,6 @@ theorem subtypeDomain_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, Distrib
 
 variable (γ β)
 
-/- warning: dfinsupp.subtype_domain_add_monoid_hom -> Dfinsupp.subtypeDomainAddMonoidHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (p : ι -> Prop) [_inst_2 : DecidablePred.{succ u1} ι p], AddMonoidHom.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.addZeroClass.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))
-but is expected to have type
-  forall {ι : Type.{u1}} (β : ι -> Type.{u2}) [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (p : ι -> Prop) [_inst_2 : DecidablePred.{succ u1} ι p], AddMonoidHom.{max u2 u1, max u2 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toZero.{u2} ((fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) i) (_inst_1 (Subtype.val.{succ u1} ι p i)))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.addZeroClass.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => _inst_1 (Subtype.val.{succ u1} ι p i)))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.subtype_domain_add_monoid_hom Dfinsupp.subtypeDomainAddMonoidHomₓ'. -/
 /-- `subtype_domain` but as an `add_monoid_hom`. -/
 @[simps]
 def subtypeDomainAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [DecidablePred p] :
@@ -715,12 +556,6 @@ def subtypeDomainAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [De
   map_add' := subtypeDomain_add
 #align dfinsupp.subtype_domain_add_monoid_hom Dfinsupp.subtypeDomainAddMonoidHom
 
-/- warning: dfinsupp.subtype_domain_linear_map -> Dfinsupp.subtypeDomainLinearMap is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} (γ : Type.{u3}) (β : ι -> Type.{u2}) [_inst_1 : Semiring.{u3} γ] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), Module.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] (p : ι -> Prop) [_inst_4 : DecidablePred.{succ u1} ι p], LinearMap.{u3, u3, max u1 u2, max u1 u2} γ γ _inst_1 _inst_1 (RingHom.id.{u3} γ (Semiring.toNonAssocSemiring.{u3} γ _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_2 i))))) (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddCommMonoid.toAddMonoid.{u2} (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.addCommMonoid.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i))) (Dfinsupp.module.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.module.{u1, u2, u3} (Subtype.{succ u1} ι p) γ (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) _inst_1 (fun (i : Subtype.{succ u1} ι p) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => _inst_3 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))
-but is expected to have type
-  forall {ι : Type.{u1}} (γ : Type.{u3}) (β : ι -> Type.{u2}) [_inst_1 : Semiring.{u3} γ] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), Module.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] (p : ι -> Prop) [_inst_4 : DecidablePred.{succ u1} ι p], LinearMap.{u3, u3, max u2 u1, max u2 u1} γ γ _inst_1 _inst_1 (RingHom.id.{u3} γ (Semiring.toNonAssocSemiring.{u3} γ _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddMonoid.toZero.{u2} ((fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) i) (_inst_2 (Subtype.val.{succ u1} ι p i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => _inst_2 (Subtype.val.{succ u1} ι p i))) (Dfinsupp.module.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.module.{u1, u2, u3} (Subtype.{succ u1} ι p) γ (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) _inst_1 (fun (i : Subtype.{succ u1} ι p) => _inst_2 (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => _inst_3 (Subtype.val.{succ u1} ι p i)))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.subtype_domain_linear_map Dfinsupp.subtypeDomainLinearMapₓ'. -/
 /-- `dfinsupp.subtype_domain` as a `linear_map`. -/
 @[simps]
 def subtypeDomainLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (β i)]
@@ -733,18 +568,12 @@ def subtypeDomainLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, M
 
 variable {γ β}
 
-/- warning: dfinsupp.subtype_domain_neg -> Dfinsupp.subtypeDomain_neg is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.subtype_domain_neg Dfinsupp.subtypeDomain_negₓ'. -/
 @[simp]
 theorem subtypeDomain_neg [∀ i, AddGroup (β i)] {p : ι → Prop} [DecidablePred p] {v : Π₀ i, β i} :
     (-v).subtypeDomain p = -v.subtypeDomain p :=
   coeFn_injective rfl
 #align dfinsupp.subtype_domain_neg Dfinsupp.subtypeDomain_neg
 
-/- warning: dfinsupp.subtype_domain_sub -> Dfinsupp.subtypeDomain_sub is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.subtype_domain_sub Dfinsupp.subtypeDomain_subₓ'. -/
 @[simp]
 theorem subtypeDomain_sub [∀ i, AddGroup (β i)] {p : ι → Prop} [DecidablePred p]
     {v v' : Π₀ i, β i} : (v - v').subtypeDomain p = v.subtypeDomain p - v'.subtypeDomain p :=
@@ -1022,12 +851,6 @@ theorem erase_ne {i i' : ι} {f : Π₀ i, β i} (h : i' ≠ i) : (f.eraseₓ i)
 #align dfinsupp.erase_ne Dfinsupp.erase_ne
 -/
 
-/- warning: dfinsupp.piecewise_single_erase -> Dfinsupp.piecewise_single_erase is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), Zero.{u2} (β i)] (x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (i : ι), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.piecewise.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) x i)) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i x) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.hasSingleton.{u1} ι) i) (fun (i_1 : ι) => Set.decidableSetOf.{u1} ι i_1 (fun (b : ι) => Eq.{succ u1} ι b i) (dec i_1 i))) x
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), Zero.{u2} (β i)] (x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (i : ι) [inst._@.Mathlib.Data.Dfinsupp.Basic._hyg.10993 : forall (i' : ι), Decidable (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i' (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))], Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.piecewise.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) ι (fun (a : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) a) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) x i)) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i x) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i) (fun (i : ι) => inst._@.Mathlib.Data.Dfinsupp.Basic._hyg.10993 i)) x
-Case conversion may be inaccurate. Consider using '#align dfinsupp.piecewise_single_erase Dfinsupp.piecewise_single_eraseₓ'. -/
 theorem piecewise_single_erase (x : Π₀ i, β i) (i : ι) :
     (single i (x i)).piecewise (x.eraseₓ i) {i} = x :=
   by
@@ -1036,12 +859,6 @@ theorem piecewise_single_erase (x : Π₀ i, β i) (i : ι) :
   · exact erase_ne h
 #align dfinsupp.piecewise_single_erase Dfinsupp.piecewise_single_erase
 
-/- warning: dfinsupp.erase_eq_sub_single -> Dfinsupp.erase_eq_sub_single is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddGroup.{u2} (β i)] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (i : ι), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) i f) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.hasSub.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i))) f (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) i (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) f i)))
-but is expected to have type
-  forall {ι : Type.{u2}} [dec : DecidableEq.{succ u2} ι] {β : ι -> Type.{u1}} [_inst_2 : forall (i : ι), AddGroup.{u1} (β i)] (f : Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (i : ι), Eq.{max (succ u2) (succ u1)} (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.erase.{u2, u1} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i))))) i f) (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u1} (β i) (SubNegZeroMonoid.toNegZeroClass.{u1} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} (β i) (AddGroup.toSubtractionMonoid.{u1} (β i) (_inst_2 i)))))) (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (instHSub.{max u2 u1} (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i))) f (Dfinsupp.single.{u2, u1} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u1} (β i) (SubNegZeroMonoid.toNegZeroClass.{u1} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} (β i) (AddGroup.toSubtractionMonoid.{u1} (β i) (_inst_2 i))))) i (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Dfinsupp.{u2, u1} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i))))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u2, u1} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i))))) i)) f i)))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.erase_eq_sub_single Dfinsupp.erase_eq_sub_singleₓ'. -/
 theorem erase_eq_sub_single {β : ι → Type _} [∀ i, AddGroup (β i)] (f : Π₀ i, β i) (i : ι) :
     f.eraseₓ i = f - single i (f i) := by
   ext j
@@ -1145,12 +962,6 @@ theorem update_eq_erase : f.update i 0 = f.eraseₓ i :=
 #align dfinsupp.update_eq_erase Dfinsupp.update_eq_erase
 -/
 
-/- warning: dfinsupp.update_eq_single_add_erase -> Dfinsupp.update_eq_single_add_erase is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β i)] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (i : ι) (b : β i), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.update.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)) i f b) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i))) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)) i b) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)) i f))
-but is expected to have type
-  forall {ι : Type.{u2}} [dec : DecidableEq.{succ u2} ι] {β : ι -> Type.{u1}} [_inst_2 : forall (i : ι), AddZeroClass.{u1} (β i)] (f : Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (_inst_2 i))) (i : ι) (b : β i), Eq.{max (succ u2) (succ u1)} (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.update.{u2, u1} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (_inst_2 i)) i f b) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u1} (β i) (_inst_2 i))) (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u1} (β i) (_inst_2 i))) (instHAdd.{max u2 u1} (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u1} (β i) (_inst_2 i))) (Dfinsupp.instAddDfinsuppToZero.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i))) (Dfinsupp.single.{u2, u1} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u1} (β i) (_inst_2 i)) i b) (Dfinsupp.erase.{u2, u1} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (_inst_2 i)) i f))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.update_eq_single_add_erase Dfinsupp.update_eq_single_add_eraseₓ'. -/
 theorem update_eq_single_add_erase {β : ι → Type _} [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i)
     (i : ι) (b : β i) : f.update i b = single i b + f.eraseₓ i :=
   by
@@ -1160,12 +971,6 @@ theorem update_eq_single_add_erase {β : ι → Type _} [∀ i, AddZeroClass (β
   · simp [Function.update_noteq h.symm, h, erase_ne, h.symm]
 #align dfinsupp.update_eq_single_add_erase Dfinsupp.update_eq_single_add_erase
 
-/- warning: dfinsupp.update_eq_erase_add_single -> Dfinsupp.update_eq_erase_add_single is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β i)] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (i : ι) (b : β i), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.update.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)) i f b) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i))) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)) i f) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)) i b))
-but is expected to have type
-  forall {ι : Type.{u2}} [dec : DecidableEq.{succ u2} ι] {β : ι -> Type.{u1}} [_inst_2 : forall (i : ι), AddZeroClass.{u1} (β i)] (f : Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (_inst_2 i))) (i : ι) (b : β i), Eq.{max (succ u2) (succ u1)} (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.update.{u2, u1} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (_inst_2 i)) i f b) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u1} (β i) (_inst_2 i))) (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (_inst_2 i))) (instHAdd.{max u2 u1} (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.instAddDfinsuppToZero.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i))) (Dfinsupp.erase.{u2, u1} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (_inst_2 i)) i f) (Dfinsupp.single.{u2, u1} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u1} (β i) (_inst_2 i)) i b))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.update_eq_erase_add_single Dfinsupp.update_eq_erase_add_singleₓ'. -/
 theorem update_eq_erase_add_single {β : ι → Type _} [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i)
     (i : ι) (b : β i) : f.update i b = f.eraseₓ i + single i b :=
   by
@@ -1175,9 +980,6 @@ theorem update_eq_erase_add_single {β : ι → Type _} [∀ i, AddZeroClass (β
   · simp [Function.update_noteq h.symm, h, erase_ne, h.symm]
 #align dfinsupp.update_eq_erase_add_single Dfinsupp.update_eq_erase_add_single
 
-/- warning: dfinsupp.update_eq_sub_add_single -> Dfinsupp.update_eq_sub_add_single is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.update_eq_sub_add_single Dfinsupp.update_eq_sub_add_singleₓ'. -/
 theorem update_eq_sub_add_single {β : ι → Type _} [∀ i, AddGroup (β i)] (f : Π₀ i, β i) (i : ι)
     (b : β i) : f.update i b = f - single i (f i) + single i b := by
   rw [update_eq_erase_add_single f i b, erase_eq_sub_single f i]
@@ -1191,12 +993,6 @@ section AddMonoid
 
 variable [∀ i, AddZeroClass (β i)]
 
-/- warning: dfinsupp.single_add -> Dfinsupp.single_add is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (i : ι) (b₁ : β i) (b₂ : β i), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i)) i (HAdd.hAdd.{u2, u2, u2} (β i) (β i) (β i) (instHAdd.{u2} (β i) (AddZeroClass.toHasAdd.{u2} (β i) (_inst_1 i))) b₁ b₂)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i)) i b₁) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i)) i b₂))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (i : ι) (b₁ : β i) (b₂ : β i), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i)) i (HAdd.hAdd.{u2, u2, u2} (β i) (β i) (β i) (instHAdd.{u2} (β i) (AddZeroClass.toAdd.{u2} (β i) (_inst_1 i))) b₁ b₂)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i)) i b₁) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i)) i b₂))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.single_add Dfinsupp.single_addₓ'. -/
 @[simp]
 theorem single_add (i : ι) (b₁ b₂ : β i) : single i (b₁ + b₂) = single i b₁ + single i b₂ :=
   ext fun i' => by
@@ -1205,12 +1001,6 @@ theorem single_add (i : ι) (b₁ b₂ : β i) : single i (b₁ + b₂) = single
     · simp only [add_apply, single_eq_of_ne h, zero_add]
 #align dfinsupp.single_add Dfinsupp.single_add
 
-/- warning: dfinsupp.erase_add -> Dfinsupp.erase_add is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (i : ι) (f₁ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (f₂ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) f₁ f₂)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i f₁) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i f₂))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (i : ι) (f₁ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (f₂ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) f₁ f₂)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i f₁) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i f₂))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.erase_add Dfinsupp.erase_addₓ'. -/
 @[simp]
 theorem erase_add (i : ι) (f₁ f₂ : Π₀ i, β i) : erase i (f₁ + f₂) = erase i f₁ + erase i f₂ :=
   ext fun _ => by simp [ite_zero_add]
@@ -1218,12 +1008,6 @@ theorem erase_add (i : ι) (f₁ f₂ : Π₀ i, β i) : erase i (f₁ + f₂) =
 
 variable (β)
 
-/- warning: dfinsupp.single_add_hom -> Dfinsupp.singleAddHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} (β : ι -> Type.{u2}) [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (_inst_1 i) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))
-but is expected to have type
-  forall {ι : Type.{u1}} (β : ι -> Type.{u2}) [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (i : ι), AddMonoidHom.{u2, max u2 u1} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (_inst_1 i) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.single_add_hom Dfinsupp.singleAddHomₓ'. -/
 /-- `dfinsupp.single` as an `add_monoid_hom`. -/
 @[simps]
 def singleAddHom (i : ι) : β i →+ Π₀ i, β i
@@ -1233,12 +1017,6 @@ def singleAddHom (i : ι) : β i →+ Π₀ i, β i
   map_add' := single_add i
 #align dfinsupp.single_add_hom Dfinsupp.singleAddHom
 
-/- warning: dfinsupp.erase_add_hom -> Dfinsupp.eraseAddHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} (β : ι -> Type.{u2}) [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)], ι -> (AddMonoidHom.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))
-but is expected to have type
-  forall {ι : Type.{u1}} (β : ι -> Type.{u2}) [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)], ι -> (AddMonoidHom.{max u2 u1, max u2 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.erase_add_hom Dfinsupp.eraseAddHomₓ'. -/
 /-- `dfinsupp.erase` as an `add_monoid_hom`. -/
 @[simps]
 def eraseAddHom (i : ι) : (Π₀ i, β i) →+ Π₀ i, β i
@@ -1250,60 +1028,30 @@ def eraseAddHom (i : ι) : (Π₀ i, β i) →+ Π₀ i, β i
 
 variable {β}
 
-/- warning: dfinsupp.single_neg -> Dfinsupp.single_neg is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddGroup.{u2} (β i)] (i : ι) (x : β i), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_2 i)))))) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_2 i))))) i (Neg.neg.{u2} (β i) (SubNegMonoid.toHasNeg.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_2 i))) x)) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_2 i)))))) (Dfinsupp.hasNeg.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_2 i))))) i x))
-but is expected to have type
-  forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddGroup.{u2} (β i)] (i : ι) (x : β i), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_2 i)))))) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_2 i))))) i (Neg.neg.{u2} (β i) (NegZeroClass.toNeg.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_2 i))))) x)) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_2 i)))))) (Dfinsupp.instNegDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_2 i))))) i x))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.single_neg Dfinsupp.single_negₓ'. -/
 @[simp]
 theorem single_neg {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (x : β i) :
     single i (-x) = -single i x :=
   (singleAddHom β i).map_neg x
 #align dfinsupp.single_neg Dfinsupp.single_neg
 
-/- warning: dfinsupp.single_sub -> Dfinsupp.single_sub is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddGroup.{u2} (β i)] (i : ι) (x : β i) (y : β i), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_2 i)))))) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_2 i))))) i (HSub.hSub.{u2, u2, u2} (β i) (β i) (β i) (instHSub.{u2} (β i) (SubNegMonoid.toHasSub.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_2 i)))) x y)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_2 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_2 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_2 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_2 i)))))) (Dfinsupp.hasSub.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i))) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_2 i))))) i x) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_2 i))))) i y))
-but is expected to have type
-  forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddGroup.{u2} (β i)] (i : ι) (x : β i) (y : β i), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_2 i)))))) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_2 i))))) i (HSub.hSub.{u2, u2, u2} (β i) (β i) (β i) (instHSub.{u2} (β i) (SubNegMonoid.toSub.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_2 i)))) x y)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_2 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_2 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_2 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_2 i)))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i))) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_2 i))))) i x) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_2 i))))) i y))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.single_sub Dfinsupp.single_subₓ'. -/
 @[simp]
 theorem single_sub {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (x y : β i) :
     single i (x - y) = single i x - single i y :=
   (singleAddHom β i).map_sub x y
 #align dfinsupp.single_sub Dfinsupp.single_sub
 
-/- warning: dfinsupp.erase_neg -> Dfinsupp.erase_neg is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddGroup.{u2} (β i)] (i : ι) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) i (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.hasNeg.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) f)) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.hasNeg.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) i f))
-but is expected to have type
-  forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddGroup.{u2} (β i)] (i : ι) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) i (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.instNegDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) f)) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.instNegDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) i f))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.erase_neg Dfinsupp.erase_negₓ'. -/
 @[simp]
 theorem erase_neg {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (f : Π₀ i, β i) :
     (-f).eraseₓ i = -f.eraseₓ i :=
   (eraseAddHom β i).map_neg f
 #align dfinsupp.erase_neg Dfinsupp.erase_neg
 
-/- warning: dfinsupp.erase_sub -> Dfinsupp.erase_sub is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddGroup.{u2} (β i)] (i : ι) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) i (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.hasSub.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i))) f g)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.hasSub.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i))) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) i f) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) i g))
-but is expected to have type
-  forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddGroup.{u2} (β i)] (i : ι) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) i (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i))) f g)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i))) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) i f) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) i g))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.erase_sub Dfinsupp.erase_subₓ'. -/
 @[simp]
 theorem erase_sub {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (f g : Π₀ i, β i) :
     (f - g).eraseₓ i = f.eraseₓ i - g.eraseₓ i :=
   (eraseAddHom β i).map_sub f g
 #align dfinsupp.erase_sub Dfinsupp.erase_sub
 
-/- warning: dfinsupp.single_add_erase -> Dfinsupp.single_add_erase is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (i : ι) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) f i)) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i f)) f
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (i : ι) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i)) i (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) f i)) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i f)) f
-Case conversion may be inaccurate. Consider using '#align dfinsupp.single_add_erase Dfinsupp.single_add_eraseₓ'. -/
 theorem single_add_erase (i : ι) (f : Π₀ i, β i) : single i (f i) + f.eraseₓ i = f :=
   ext fun i' =>
     if h : i = i' then by
@@ -1312,12 +1060,6 @@ theorem single_add_erase (i : ι) (f : Π₀ i, β i) : single i (f i) + f.erase
       simp only [add_apply, single_apply, erase_apply, dif_neg h, if_neg (Ne.symm h), zero_add]
 #align dfinsupp.single_add_erase Dfinsupp.single_add_erase
 
-/- warning: dfinsupp.erase_add_single -> Dfinsupp.erase_add_single is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (i : ι) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i f) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) f i))) f
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (i : ι) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i f) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i)) i (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) f i))) f
-Case conversion may be inaccurate. Consider using '#align dfinsupp.erase_add_single Dfinsupp.erase_add_singleₓ'. -/
 theorem erase_add_single (i : ι) (f : Π₀ i, β i) : f.eraseₓ i + single i (f i) = f :=
   ext fun i' =>
     if h : i = i' then by
@@ -1326,12 +1068,6 @@ theorem erase_add_single (i : ι) (f : Π₀ i, β i) : f.eraseₓ i + single i
       simp only [add_apply, single_apply, erase_apply, dif_neg h, if_neg (Ne.symm h), add_zero]
 #align dfinsupp.erase_add_single Dfinsupp.erase_add_single
 
-/- warning: dfinsupp.induction -> Dfinsupp.induction is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] {p : (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) -> Prop} (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), (p (OfNat.ofNat.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) 0 (OfNat.mk.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) 0 (Zero.zero.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))))) -> (forall (i : ι) (b : β i) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), (Eq.{succ u2} (β i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) f i) (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i)))))) -> (Ne.{succ u2} (β i) b (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i)))))) -> (p f) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i b) f))) -> (p f)
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] {p : (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) -> Prop} (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), (p (OfNat.ofNat.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) 0 (Zero.toOfNat0.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.instZeroDfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) -> (forall (i : ι) (b : β i) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), (Eq.{succ u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) f i) (OfNat.ofNat.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) 0 (Zero.toOfNat0.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddZeroClass.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (_inst_1 i))))) -> (Ne.{succ u2} (β i) b (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddZeroClass.toZero.{u2} (β i) (_inst_1 i))))) -> (p f) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i b) f))) -> (p f)
-Case conversion may be inaccurate. Consider using '#align dfinsupp.induction Dfinsupp.inductionₓ'. -/
 protected theorem induction {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (h0 : p 0)
     (ha : ∀ (i b) (f : Π₀ i, β i), f i = 0 → b ≠ 0 → p f → p (single i b + f)) : p f :=
   by
@@ -1367,12 +1103,6 @@ protected theorem induction {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (
   rw [erase_same]
 #align dfinsupp.induction Dfinsupp.induction
 
-/- warning: dfinsupp.induction₂ -> Dfinsupp.induction₂ is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] {p : (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) -> Prop} (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), (p (OfNat.ofNat.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) 0 (OfNat.mk.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) 0 (Zero.zero.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))))) -> (forall (i : ι) (b : β i) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), (Eq.{succ u2} (β i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) f i) (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i)))))) -> (Ne.{succ u2} (β i) b (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i)))))) -> (p f) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) f (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i b)))) -> (p f)
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] {p : (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) -> Prop} (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), (p (OfNat.ofNat.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) 0 (Zero.toOfNat0.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.instZeroDfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) -> (forall (i : ι) (b : β i) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), (Eq.{succ u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) f i) (OfNat.ofNat.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) 0 (Zero.toOfNat0.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddZeroClass.toZero.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (_inst_1 i))))) -> (Ne.{succ u2} (β i) b (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddZeroClass.toZero.{u2} (β i) (_inst_1 i))))) -> (p f) -> (p (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) f (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i b)))) -> (p f)
-Case conversion may be inaccurate. Consider using '#align dfinsupp.induction₂ Dfinsupp.induction₂ₓ'. -/
 theorem induction₂ {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (h0 : p 0)
     (ha : ∀ (i b) (f : Π₀ i, β i), f i = 0 → b ≠ 0 → p f → p (f + single i b)) : p f :=
   Dfinsupp.induction f h0 fun i b f h1 h2 h3 =>
@@ -1384,12 +1114,6 @@ theorem induction₂ {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (h0 : p
     Eq.recOn h4 <| ha i b f h1 h2 h3
 #align dfinsupp.induction₂ Dfinsupp.induction₂
 
-/- warning: dfinsupp.add_closure_Union_range_single -> Dfinsupp.add_closure_iUnion_range_single is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)], Eq.{succ (max u1 u2)} (AddSubmonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddSubmonoid.closure.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Set.iUnion.{max u1 u2, succ u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) ι (fun (i : ι) => Set.range.{max u1 u2, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (β i) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)))) (Top.top.{max u1 u2} (AddSubmonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddSubmonoid.hasTop.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)], Eq.{max (succ u1) (succ u2)} (AddSubmonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddSubmonoid.closure.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Set.iUnion.{max u1 u2, succ u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) ι (fun (i : ι) => Set.range.{max u1 u2, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (β i) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)))) (Top.top.{max u1 u2} (AddSubmonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddSubmonoid.instTopAddSubmonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.add_closure_Union_range_single Dfinsupp.add_closure_iUnion_range_singleₓ'. -/
 @[simp]
 theorem add_closure_iUnion_range_single :
     AddSubmonoid.closure (⋃ i : ι, Set.range (single i : β i → Π₀ i, β i)) = ⊤ :=
@@ -1401,9 +1125,6 @@ theorem add_closure_iUnion_range_single :
         (AddSubmonoid.subset_closure <| Set.mem_iUnion.2 ⟨a, Set.mem_range_self _⟩) hf
 #align dfinsupp.add_closure_Union_range_single Dfinsupp.add_closure_iUnion_range_single
 
-/- warning: dfinsupp.add_hom_ext -> Dfinsupp.addHom_ext is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.add_hom_ext Dfinsupp.addHom_extₓ'. -/
 /-- If two additive homomorphisms from `Π₀ i, β i` are equal on each `single a b`, then
 they are equal. -/
 theorem addHom_ext {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+ γ⦄
@@ -1415,12 +1136,6 @@ theorem addHom_ext {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+
   apply H
 #align dfinsupp.add_hom_ext Dfinsupp.addHom_ext
 
-/- warning: dfinsupp.add_hom_ext' -> Dfinsupp.addHom_ext' is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddZeroClass.{u3} γ] {{f : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2}} {{g : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2}}, (forall (x : ι), Eq.{max (succ u3) (succ u2)} (AddMonoidHom.{u2, u3} (β x) γ (_inst_1 x) _inst_2) (AddMonoidHom.comp.{u2, max u1 u2, u3} (β x) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (_inst_1 x) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2 f (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) x)) (AddMonoidHom.comp.{u2, max u1 u2, u3} (β x) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (_inst_1 x) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2 g (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) x))) -> (Eq.{max (succ u3) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) f g)
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddZeroClass.{u3} γ] {{f : AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2}} {{g : AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2}}, (forall (x : ι), Eq.{max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (β x) γ (_inst_1 x) _inst_2) (AddMonoidHom.comp.{u2, max u1 u2, u3} (β x) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (_inst_1 x) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2 f (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) x)) (AddMonoidHom.comp.{u2, max u1 u2, u3} (β x) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (_inst_1 x) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2 g (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) x))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) f g)
-Case conversion may be inaccurate. Consider using '#align dfinsupp.add_hom_ext' Dfinsupp.addHom_ext'ₓ'. -/
 /-- If two additive homomorphisms from `Π₀ i, β i` are equal on each `single a b`, then
 they are equal.
 
@@ -1433,9 +1148,6 @@ theorem addHom_ext' {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →
 
 end AddMonoid
 
-/- warning: dfinsupp.mk_add -> Dfinsupp.mk_add is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.mk_add Dfinsupp.mk_addₓ'. -/
 @[simp]
 theorem mk_add [∀ i, AddZeroClass (β i)] {s : Finset ι} {x y : ∀ i : (↑s : Set ι), β i} :
     mk s (x + y) = mk s x + mk s y :=
@@ -1449,27 +1161,18 @@ theorem mk_zero [∀ i, Zero (β i)] {s : Finset ι} : mk s (0 : ∀ i : (↑s :
 #align dfinsupp.mk_zero Dfinsupp.mk_zero
 -/
 
-/- warning: dfinsupp.mk_neg -> Dfinsupp.mk_neg is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.mk_neg Dfinsupp.mk_negₓ'. -/
 @[simp]
 theorem mk_neg [∀ i, AddGroup (β i)] {s : Finset ι} {x : ∀ i : (↑s : Set ι), β i.1} :
     mk s (-x) = -mk s x :=
   ext fun i => by simp only [neg_apply, mk_apply] <;> split_ifs <;> [rfl;rw [neg_zero]]
 #align dfinsupp.mk_neg Dfinsupp.mk_neg
 
-/- warning: dfinsupp.mk_sub -> Dfinsupp.mk_sub is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.mk_sub Dfinsupp.mk_subₓ'. -/
 @[simp]
 theorem mk_sub [∀ i, AddGroup (β i)] {s : Finset ι} {x y : ∀ i : (↑s : Set ι), β i.1} :
     mk s (x - y) = mk s x - mk s y :=
   ext fun i => by simp only [sub_apply, mk_apply] <;> split_ifs <;> [rfl;rw [sub_zero]]
 #align dfinsupp.mk_sub Dfinsupp.mk_sub
 
-/- warning: dfinsupp.mk_add_group_hom -> Dfinsupp.mkAddGroupHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.mk_add_group_hom Dfinsupp.mkAddGroupHomₓ'. -/
 /-- If `s` is a subset of `ι` then `mk_add_group_hom s` is the canonical additive
 group homomorphism from $\prod_{i\in s}\beta_i$ to $\prod_{\mathtt{i : \iota}}\beta_i.$-/
 def mkAddGroupHom [∀ i, AddGroup (β i)] (s : Finset ι) : (∀ i : (s : Set ι), β ↑i) →+ Π₀ i : ι, β i
@@ -1483,21 +1186,12 @@ section
 
 variable [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
 
-/- warning: dfinsupp.mk_smul -> Dfinsupp.mk_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.mk_smul Dfinsupp.mk_smulₓ'. -/
 @[simp]
 theorem mk_smul {s : Finset ι} (c : γ) (x : ∀ i : (↑s : Set ι), β (i : ι)) :
     mk s (c • x) = c • mk s x :=
   ext fun i => by simp only [smul_apply, mk_apply] <;> split_ifs <;> [rfl;rw [smul_zero]]
 #align dfinsupp.mk_smul Dfinsupp.mk_smul
 
-/- warning: dfinsupp.single_smul -> Dfinsupp.single_smul is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : ι), AddMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), DistribMulAction.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] {i : ι} (c : γ) (x : β i), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (_inst_2 i)))) (Dfinsupp.single.{u1, u2} ι (fun {i : ι} => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (_inst_2 i))) i (SMul.smul.{u3, u2} γ (β i) (SMulZeroClass.toHasSmul.{u3, u2} γ (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (_inst_2 i))) (DistribSMul.toSmulZeroClass.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (_inst_2 i)) (DistribMulAction.toDistribSMul.{u3, u2} γ (β i) _inst_1 (_inst_2 i) (_inst_3 i)))) c x)) (SMul.smul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (_inst_2 i)))) (Dfinsupp.hasSmul.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) c (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (_inst_2 i))) i x))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : ι), AddMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), DistribMulAction.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] {i : ι} (c : γ) (x : β i), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} (β i) (_inst_2 i))) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} (β i) (_inst_2 i)) i (HSMul.hSMul.{u3, u2, u2} γ (β i) (β i) (instHSMul.{u3, u2} γ (β i) (SMulZeroClass.toSMul.{u3, u2} γ (β i) (AddMonoid.toZero.{u2} (β i) (_inst_2 i)) (DistribSMul.toSMulZeroClass.{u3, u2} γ (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (_inst_2 i)) (DistribMulAction.toDistribSMul.{u3, u2} γ (β i) _inst_1 (_inst_2 i) (_inst_3 i))))) c x)) (HSMul.hSMul.{u3, max u2 u1, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} (β i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} (β i) (_inst_2 i))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} (β i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i))) c (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} (β i) (_inst_2 i)) i x))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.single_smul Dfinsupp.single_smulₓ'. -/
 @[simp]
 theorem single_smul {i : ι} (c : γ) (x : β i) : single i (c • x) = c • single i x :=
   ext fun i => by
@@ -1723,20 +1417,11 @@ theorem support_filter (f : Π₀ i, β i) : (f.filterₓ p).support = f.support
 #align dfinsupp.support_filter Dfinsupp.support_filter
 -/
 
-/- warning: dfinsupp.subtype_domain_def -> Dfinsupp.subtypeDomain_def is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.subtype_domain_def Dfinsupp.subtypeDomain_defₓ'. -/
 theorem subtypeDomain_def (f : Π₀ i, β i) :
     f.subtypeDomain p = mk (f.support.Subtype p) fun i => f i := by
   ext i <;> by_cases h2 : f i ≠ 0 <;> try simp at h2 <;> dsimp <;> simp [h2]
 #align dfinsupp.subtype_domain_def Dfinsupp.subtypeDomain_def
 
-/- warning: dfinsupp.support_subtype_domain -> Dfinsupp.support_subtypeDomain is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), Zero.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_1 i)))))] {p : ι -> Prop} [_inst_3 : DecidablePred.{succ u1} ι p] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)}, Eq.{succ u1} (Finset.{u1} (Subtype.{succ u1} ι p)) (Dfinsupp.support.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (a : Subtype.{succ u1} ι p) (b : Subtype.{succ u1} ι p) => Subtype.decidableEq.{u1} ι (fun (x : ι) => p x) (fun (a : ι) (b : ι) => dec a b) a b) (fun (i : Subtype.{succ u1} ι p) => _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) (x : β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i) x) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) p (fun (a : ι) => _inst_3 a) f)) (Finset.subtype.{u1} ι p (fun (a : ι) => _inst_3 a) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β i) => _inst_2 i x) f))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), Zero.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (_inst_1 i))))] {p : ι -> Prop} [_inst_3 : DecidablePred.{succ u1} ι p] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)}, Eq.{succ u1} (Finset.{u1} (Subtype.{succ u1} ι p)) (Dfinsupp.support.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (a : Subtype.{succ u1} ι p) (b : Subtype.{succ u1} ι p) => Subtype.instDecidableEqSubtype.{u1} ι (fun (x : ι) => p x) (fun (a : ι) (b : ι) => dec a b) a b) (fun (i : Subtype.{succ u1} ι p) => _inst_1 (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) (x : β (Subtype.val.{succ u1} ι p i)) => _inst_2 (Subtype.val.{succ u1} ι p i) x) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) p (fun (a : ι) => _inst_3 a) f)) (Finset.subtype.{u1} ι p (fun (a : ι) => _inst_3 a) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β i) => _inst_2 i x) f))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.support_subtype_domain Dfinsupp.support_subtypeDomainₓ'. -/
 @[simp]
 theorem support_subtypeDomain {f : Π₀ i, β i} : (subtypeDomain p f).support = f.support.Subtype p :=
   by ext i; simp
@@ -1746,31 +1431,16 @@ end FilterAndSubtypeDomain
 
 end SupportBasic
 
-/- warning: dfinsupp.support_add -> Dfinsupp.support_add is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))))))] {g₁ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))} {g₂ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))}, HasSubset.Subset.{u1} (Finset.{u1} ι) (Finset.hasSubset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) (fun (i : ι) (x : β i) => _inst_2 i x) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) g₁ g₂)) (Union.union.{u1} (Finset.{u1} ι) (Finset.hasUnion.{u1} ι (fun (a : ι) (b : ι) => dec a b)) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) (fun (i : ι) (x : β i) => _inst_2 i x) g₁) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) (fun (i : ι) (x : β i) => _inst_2 i x) g₂))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddZeroClass.toZero.{u2} (β i) (_inst_1 i)))))] {g₁ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))} {g₂ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))}, HasSubset.Subset.{u1} (Finset.{u1} ι) (Finset.instHasSubsetFinset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) (fun (i : ι) (x : β i) => _inst_2 i x) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) g₁ g₂)) (Union.union.{u1} (Finset.{u1} ι) (Finset.instUnionFinset.{u1} ι (fun (a : ι) (b : ι) => dec a b)) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) (fun (i : ι) (x : β i) => _inst_2 i x) g₁) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) (fun (i : ι) (x : β i) => _inst_2 i x) g₂))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.support_add Dfinsupp.support_addₓ'. -/
 theorem support_add [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     {g₁ g₂ : Π₀ i, β i} : (g₁ + g₂).support ⊆ g₁.support ∪ g₂.support :=
   support_zipWith
 #align dfinsupp.support_add Dfinsupp.support_add
 
-/- warning: dfinsupp.support_neg -> Dfinsupp.support_neg is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i)))))))))] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))}, Eq.{succ u1} (Finset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (fun (i : ι) (x : β i) => _inst_2 i x) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.hasNeg.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) f)) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (fun (i : ι) (x : β i) => _inst_2 i x) f)
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_1 i))))))))] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))}, Eq.{succ u1} (Finset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (fun (i : ι) (x : β i) => _inst_2 i x) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.instNegDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) f)) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (fun (i : ι) (x : β i) => _inst_2 i x) f)
-Case conversion may be inaccurate. Consider using '#align dfinsupp.support_neg Dfinsupp.support_negₓ'. -/
 @[simp]
 theorem support_neg [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] {f : Π₀ i, β i} :
     support (-f) = support f := by ext i <;> simp
 #align dfinsupp.support_neg Dfinsupp.support_neg
 
-/- warning: dfinsupp.support_smul -> Dfinsupp.support_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.support_smul Dfinsupp.support_smulₓ'. -/
 theorem support_smul {γ : Type w} [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (β i)]
     [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (b : γ) (v : Π₀ i, β i) :
     (b • v).support ⊆ v.support :=
@@ -1806,47 +1476,23 @@ noncomputable def comapDomain [∀ i, Zero (β i)] (h : κ → ι) (hh : Functio
 #align dfinsupp.comap_domain Dfinsupp.comapDomain
 -/
 
-/- warning: dfinsupp.comap_domain_apply -> Dfinsupp.comapDomain_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] {κ : Type.{u3}} [_inst_1 : forall (i : ι), Zero.{u2} (β i)] (h : κ -> ι) (hh : Function.Injective.{succ u3, succ u1} κ ι h) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (k : κ), Eq.{succ u2} ((fun (i : ι) => β i) (h k)) (coeFn.{succ (max u3 u2), max (succ u3) (succ u2)} (Dfinsupp.{u3, u2} κ (fun (k : κ) => (fun (i : ι) => β i) (h k)) (fun (i : κ) => (fun (i : ι) => _inst_1 i) (h i))) (fun (_x : Dfinsupp.{u3, u2} κ (fun (i : κ) => (fun (i : ι) => β i) (h i)) (fun (i : κ) => (fun (i : ι) => _inst_1 i) (h i))) => forall (i : κ), (fun (i : ι) => β i) (h i)) (Dfinsupp.hasCoeToFun.{u3, u2} κ (fun (k : κ) => (fun (i : ι) => β i) (h k)) (fun (i : κ) => (fun (i : ι) => _inst_1 i) (h i))) (Dfinsupp.comapDomain.{u1, u2, u3} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) κ (fun (i : ι) => _inst_1 i) h hh f) k) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) f (h k))
-but is expected to have type
-  forall {ι : Type.{u2}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u2} ι] {κ : Type.{u1}} [_inst_1 : forall (i : ι), Zero.{u3} (β i)] (h : κ -> ι) (hh : Function.Injective.{succ u1, succ u2} κ ι h) (f : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (k : κ), Eq.{succ u3} ((fun (i : κ) => (fun (k : κ) => β (h k)) i) k) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} κ (fun (i : κ) => (fun (k : κ) => β (h k)) i) (fun (i : κ) => (fun (i : κ) => _inst_1 (h i)) i)) κ (fun (_x : κ) => (fun (i : κ) => (fun (k : κ) => β (h k)) i) _x) (Dfinsupp.funLike.{u1, u3} κ (fun (k : κ) => (fun (i : κ) => β (h i)) k) (fun (i : κ) => (fun (i : κ) => _inst_1 (h i)) i)) (Dfinsupp.comapDomain.{u2, u3, u1} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) κ (fun (i : ι) => _inst_1 i) h hh f) k) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) f (h k))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.comap_domain_apply Dfinsupp.comapDomain_applyₓ'. -/
 @[simp]
 theorem comapDomain_apply [∀ i, Zero (β i)] (h : κ → ι) (hh : Function.Injective h) (f : Π₀ i, β i)
     (k : κ) : comapDomain h hh f k = f (h k) :=
   rfl
 #align dfinsupp.comap_domain_apply Dfinsupp.comapDomain_apply
 
-/- warning: dfinsupp.comap_domain_zero -> Dfinsupp.comapDomain_zero is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] {κ : Type.{u3}} [_inst_1 : forall (i : ι), Zero.{u2} (β i)] (h : κ -> ι) (hh : Function.Injective.{succ u3, succ u1} κ ι h), Eq.{succ (max u3 u2)} (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i))) (Dfinsupp.comapDomain.{u1, u2, u3} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) κ (fun (i : ι) => _inst_1 i) h hh (OfNat.ofNat.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (OfNat.mk.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (Zero.zero.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.hasZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (OfNat.ofNat.{max u3 u2} (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i))) 0 (OfNat.mk.{max u3 u2} (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i))) 0 (Zero.zero.{max u3 u2} (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i))) (Dfinsupp.hasZero.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i))))))
-but is expected to have type
-  forall {ι : Type.{u2}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u2} ι] {κ : Type.{u1}} [_inst_1 : forall (i : ι), Zero.{u3} (β i)] (h : κ -> ι) (hh : Function.Injective.{succ u1, succ u2} κ ι h), Eq.{max (succ u3) (succ u1)} (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i))) (Dfinsupp.comapDomain.{u2, u3, u1} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) κ (fun (i : ι) => _inst_1 i) h hh (OfNat.ofNat.{max u2 u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (Zero.toOfNat0.{max u2 u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.instZeroDfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (OfNat.ofNat.{max u3 u1} (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i))) 0 (Zero.toOfNat0.{max u3 u1} (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i))) (Dfinsupp.instZeroDfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i)))))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.comap_domain_zero Dfinsupp.comapDomain_zeroₓ'. -/
 @[simp]
 theorem comapDomain_zero [∀ i, Zero (β i)] (h : κ → ι) (hh : Function.Injective h) :
     comapDomain h hh (0 : Π₀ i, β i) = 0 := by ext; rw [zero_apply, comap_domain_apply, zero_apply]
 #align dfinsupp.comap_domain_zero Dfinsupp.comapDomain_zero
 
-/- warning: dfinsupp.comap_domain_add -> Dfinsupp.comapDomain_add is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] {κ : Type.{u3}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (h : κ -> ι) (hh : Function.Injective.{succ u3, succ u1} κ ι h) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{succ (max u3 u2)} (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (Dfinsupp.comapDomain.{u1, u2, u3} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) κ (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) h hh (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) f g)) (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (instHAdd.{max u3 u2} (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (Dfinsupp.hasAdd.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i)))) (Dfinsupp.comapDomain.{u1, u2, u3} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) κ (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) h hh f) (Dfinsupp.comapDomain.{u1, u2, u3} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) κ (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) h hh g))
-but is expected to have type
-  forall {ι : Type.{u2}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u2} ι] {κ : Type.{u1}} [_inst_1 : forall (i : ι), AddZeroClass.{u3} (β i)] (h : κ -> ι) (hh : Function.Injective.{succ u1, succ u2} κ ι h) (f : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (g : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{max (succ u3) (succ u1)} (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (Dfinsupp.comapDomain.{u2, u3, u1} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) κ (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) h hh (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u2 u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) f g)) (HAdd.hAdd.{max u3 u1, max u3 u1, max u3 u1} (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (instHAdd.{max u3 u1} (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (Dfinsupp.instAddDfinsuppToZero.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i)))) (Dfinsupp.comapDomain.{u2, u3, u1} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) κ (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) h hh f) (Dfinsupp.comapDomain.{u2, u3, u1} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) κ (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) h hh g))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.comap_domain_add Dfinsupp.comapDomain_addₓ'. -/
 @[simp]
 theorem comapDomain_add [∀ i, AddZeroClass (β i)] (h : κ → ι) (hh : Function.Injective h)
     (f g : Π₀ i, β i) : comapDomain h hh (f + g) = comapDomain h hh f + comapDomain h hh g := by
   ext; rw [add_apply, comap_domain_apply, comap_domain_apply, comap_domain_apply, add_apply]
 #align dfinsupp.comap_domain_add Dfinsupp.comapDomain_add
 
-/- warning: dfinsupp.comap_domain_smul -> Dfinsupp.comapDomain_smul is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] {κ : Type.{u4}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : ι), AddMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), DistribMulAction.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] (h : κ -> ι) (hh : Function.Injective.{succ u4, succ u1} κ ι h) (r : γ) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))), Eq.{succ (max u4 u2)} (Dfinsupp.{u4, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) (h i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) (h i)) (_inst_2 (h i))))) (Dfinsupp.comapDomain.{u1, u2, u4} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) κ (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) h hh (SMul.smul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.hasSmul.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) r f)) (SMul.smul.{u3, max u4 u2} γ (Dfinsupp.{u4, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) (h i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) (h i)) (_inst_2 (h i))))) (Dfinsupp.hasSmul.{u4, u2, u3} κ γ (fun (k : κ) => β (h k)) _inst_1 (fun (i : κ) => _inst_2 (h i)) (fun (i : κ) => _inst_3 (h i))) r (Dfinsupp.comapDomain.{u1, u2, u4} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) κ (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) h hh f))
-but is expected to have type
-  forall {ι : Type.{u2}} {γ : Type.{u4}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u2} ι] {κ : Type.{u1}} [_inst_1 : Monoid.{u4} γ] [_inst_2 : forall (i : ι), AddMonoid.{u3} (β i)] [_inst_3 : forall (i : ι), DistribMulAction.{u4, u3} γ (β i) _inst_1 (_inst_2 i)] (h : κ -> ι) (hh : Function.Injective.{succ u1, succ u2} κ ι h) (r : γ) (f : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_2 i))), Eq.{max (succ u3) (succ u1)} (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) (h i)) (_inst_2 (h i)))) (Dfinsupp.comapDomain.{u2, u3, u1} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) κ (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_2 i)) h hh (HSMul.hSMul.{u4, max u2 u3, max u2 u3} γ (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_2 i))) (instHSMul.{u4, max u2 u3} γ (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u2, u3, u4} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i))) r f)) (HSMul.hSMul.{u4, max u1 u3, max u3 u1} γ (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) (h i)) (_inst_2 (h i)))) (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) (h i)) (_inst_2 (h i)))) (instHSMul.{u4, max u3 u1} γ (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) (h i)) (_inst_2 (h i)))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u3, u4} κ γ (fun (k : κ) => β (h k)) _inst_1 (fun (i : κ) => _inst_2 (h i)) (fun (i : κ) => _inst_3 (h i)))) r (Dfinsupp.comapDomain.{u2, u3, u1} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) κ (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_2 i)) h hh f))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.comap_domain_smul Dfinsupp.comapDomain_smulₓ'. -/
 @[simp]
 theorem comapDomain_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
     (h : κ → ι) (hh : Function.Injective h) (r : γ) (f : Π₀ i, β i) :
@@ -1854,12 +1500,6 @@ theorem comapDomain_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMu
   rw [smul_apply, comap_domain_apply, smul_apply, comap_domain_apply]
 #align dfinsupp.comap_domain_smul Dfinsupp.comapDomain_smul
 
-/- warning: dfinsupp.comap_domain_single -> Dfinsupp.comapDomain_single is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] {κ : Type.{u3}} [_inst_1 : DecidableEq.{succ u3} κ] [_inst_2 : forall (i : ι), Zero.{u2} (β i)] (h : κ -> ι) (hh : Function.Injective.{succ u3, succ u1} κ ι h) (k : κ) (x : β (h k)), Eq.{succ (max u3 u2)} (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_2 (h i))) (Dfinsupp.comapDomain.{u1, u2, u3} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) κ (fun (i : ι) => _inst_2 i) h hh (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) _inst_2 (h k) x)) (Dfinsupp.single.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (a : κ) (b : κ) => _inst_1 a b) (fun (i : κ) => _inst_2 (h i)) k x)
-but is expected to have type
-  forall {ι : Type.{u2}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u2} ι] {κ : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} κ] [_inst_2 : forall (i : ι), Zero.{u3} (β i)] (h : κ -> ι) (hh : Function.Injective.{succ u1, succ u2} κ ι h) (k : κ) (x : β (h k)), Eq.{max (succ u3) (succ u1)} (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_2 (h i))) (Dfinsupp.comapDomain.{u2, u3, u1} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) κ (fun (i : ι) => _inst_2 i) h hh (Dfinsupp.single.{u2, u3} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_2 i) (h k) x)) (Dfinsupp.single.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (a : κ) (b : κ) => _inst_1 a b) (fun (i : κ) => _inst_2 (h i)) k x)
-Case conversion may be inaccurate. Consider using '#align dfinsupp.comap_domain_single Dfinsupp.comapDomain_singleₓ'. -/
 @[simp]
 theorem comapDomain_single [DecidableEq κ] [∀ i, Zero (β i)] (h : κ → ι) (hh : Function.Injective h)
     (k : κ) (x : β (h k)) : comapDomain h hh (single (h k) x) = single k x :=
@@ -1885,36 +1525,18 @@ def comapDomain' [∀ i, Zero (β i)] (h : κ → ι) {h' : ι → κ} (hh' : Fu
 #align dfinsupp.comap_domain' Dfinsupp.comapDomain'
 -/
 
-/- warning: dfinsupp.comap_domain'_apply -> Dfinsupp.comapDomain'_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} {κ : Type.{u3}} [_inst_1 : forall (i : ι), Zero.{u2} (β i)] (h : κ -> ι) {h' : ι -> κ} (hh' : Function.LeftInverse.{succ u3, succ u1} κ ι h' h) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (k : κ), Eq.{succ u2} ((fun (i : ι) => β i) (h k)) (coeFn.{succ (max u3 u2), max (succ u3) (succ u2)} (Dfinsupp.{u3, u2} κ (fun (k : κ) => (fun (i : ι) => β i) (h k)) (fun (i : κ) => (fun (i : ι) => _inst_1 i) (h i))) (fun (_x : Dfinsupp.{u3, u2} κ (fun (i : κ) => (fun (i : ι) => β i) (h i)) (fun (i : κ) => (fun (i : ι) => _inst_1 i) (h i))) => forall (i : κ), (fun (i : ι) => β i) (h i)) (Dfinsupp.hasCoeToFun.{u3, u2} κ (fun (k : κ) => (fun (i : ι) => β i) (h k)) (fun (i : κ) => (fun (i : ι) => _inst_1 i) (h i))) (Dfinsupp.comapDomain'.{u1, u2, u3} ι (fun (i : ι) => β i) κ (fun (i : ι) => _inst_1 i) h h' hh' f) k) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) f (h k))
-but is expected to have type
-  forall {ι : Type.{u2}} {β : ι -> Type.{u3}} {κ : Type.{u1}} [_inst_1 : forall (i : ι), Zero.{u3} (β i)] (h : κ -> ι) {h' : ι -> κ} (hh' : Function.LeftInverse.{succ u1, succ u2} κ ι h' h) (f : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (k : κ), Eq.{succ u3} ((fun (i : κ) => (fun (k : κ) => β (h k)) i) k) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} κ (fun (i : κ) => (fun (k : κ) => β (h k)) i) (fun (i : κ) => (fun (i : κ) => _inst_1 (h i)) i)) κ (fun (_x : κ) => (fun (i : κ) => (fun (k : κ) => β (h k)) i) _x) (Dfinsupp.funLike.{u1, u3} κ (fun (k : κ) => (fun (i : κ) => β (h i)) k) (fun (i : κ) => (fun (i : κ) => _inst_1 (h i)) i)) (Dfinsupp.comapDomain'.{u2, u3, u1} ι (fun (i : ι) => β i) κ (fun (i : ι) => _inst_1 i) h h' hh' f) k) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) f (h k))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.comap_domain'_apply Dfinsupp.comapDomain'_applyₓ'. -/
 @[simp]
 theorem comapDomain'_apply [∀ i, Zero (β i)] (h : κ → ι) {h' : ι → κ}
     (hh' : Function.LeftInverse h' h) (f : Π₀ i, β i) (k : κ) : comapDomain' h hh' f k = f (h k) :=
   rfl
 #align dfinsupp.comap_domain'_apply Dfinsupp.comapDomain'_apply
 
-/- warning: dfinsupp.comap_domain'_zero -> Dfinsupp.comapDomain'_zero is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} {κ : Type.{u3}} [_inst_1 : forall (i : ι), Zero.{u2} (β i)] (h : κ -> ι) {h' : ι -> κ} (hh' : Function.LeftInverse.{succ u3, succ u1} κ ι h' h), Eq.{succ (max u3 u2)} (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i))) (Dfinsupp.comapDomain'.{u1, u2, u3} ι (fun (i : ι) => β i) κ (fun (i : ι) => _inst_1 i) h h' hh' (OfNat.ofNat.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (OfNat.mk.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (Zero.zero.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.hasZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (OfNat.ofNat.{max u3 u2} (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i))) 0 (OfNat.mk.{max u3 u2} (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i))) 0 (Zero.zero.{max u3 u2} (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i))) (Dfinsupp.hasZero.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i))))))
-but is expected to have type
-  forall {ι : Type.{u2}} {β : ι -> Type.{u3}} {κ : Type.{u1}} [_inst_1 : forall (i : ι), Zero.{u3} (β i)] (h : κ -> ι) {h' : ι -> κ} (hh' : Function.LeftInverse.{succ u1, succ u2} κ ι h' h), Eq.{max (succ u3) (succ u1)} (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i))) (Dfinsupp.comapDomain'.{u2, u3, u1} ι (fun (i : ι) => β i) κ (fun (i : ι) => _inst_1 i) h h' hh' (OfNat.ofNat.{max u2 u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) 0 (Zero.toOfNat0.{max u2 u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.instZeroDfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (OfNat.ofNat.{max u3 u1} (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i))) 0 (Zero.toOfNat0.{max u3 u1} (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i))) (Dfinsupp.instZeroDfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i)))))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.comap_domain'_zero Dfinsupp.comapDomain'_zeroₓ'. -/
 @[simp]
 theorem comapDomain'_zero [∀ i, Zero (β i)] (h : κ → ι) {h' : ι → κ}
     (hh' : Function.LeftInverse h' h) : comapDomain' h hh' (0 : Π₀ i, β i) = 0 := by ext;
   rw [zero_apply, comap_domain'_apply, zero_apply]
 #align dfinsupp.comap_domain'_zero Dfinsupp.comapDomain'_zero
 
-/- warning: dfinsupp.comap_domain'_add -> Dfinsupp.comapDomain'_add is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} {κ : Type.{u3}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] (h : κ -> ι) {h' : ι -> κ} (hh' : Function.LeftInverse.{succ u3, succ u1} κ ι h' h) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{succ (max u3 u2)} (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (Dfinsupp.comapDomain'.{u1, u2, u3} ι (fun (i : ι) => β i) κ (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) h h' hh' (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) f g)) (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (instHAdd.{max u3 u2} (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (Dfinsupp.hasAdd.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i)))) (Dfinsupp.comapDomain'.{u1, u2, u3} ι (fun (i : ι) => β i) κ (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) h h' hh' f) (Dfinsupp.comapDomain'.{u1, u2, u3} ι (fun (i : ι) => β i) κ (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) h h' hh' g))
-but is expected to have type
-  forall {ι : Type.{u2}} {β : ι -> Type.{u3}} {κ : Type.{u1}} [_inst_1 : forall (i : ι), AddZeroClass.{u3} (β i)] (h : κ -> ι) {h' : ι -> κ} (hh' : Function.LeftInverse.{succ u1, succ u2} κ ι h' h) (f : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (g : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{max (succ u3) (succ u1)} (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (Dfinsupp.comapDomain'.{u2, u3, u1} ι (fun (i : ι) => β i) κ (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) h h' hh' (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u2 u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) f g)) (HAdd.hAdd.{max u3 u1, max u3 u1, max u3 u1} (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (instHAdd.{max u3 u1} (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) (h i)) (_inst_1 (h i)))) (Dfinsupp.instAddDfinsuppToZero.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_1 (h i)))) (Dfinsupp.comapDomain'.{u2, u3, u1} ι (fun (i : ι) => β i) κ (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) h h' hh' f) (Dfinsupp.comapDomain'.{u2, u3, u1} ι (fun (i : ι) => β i) κ (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) h h' hh' g))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.comap_domain'_add Dfinsupp.comapDomain'_addₓ'. -/
 @[simp]
 theorem comapDomain'_add [∀ i, AddZeroClass (β i)] (h : κ → ι) {h' : ι → κ}
     (hh' : Function.LeftInverse h' h) (f g : Π₀ i, β i) :
@@ -1922,12 +1544,6 @@ theorem comapDomain'_add [∀ i, AddZeroClass (β i)] (h : κ → ι) {h' : ι 
   rw [add_apply, comap_domain'_apply, comap_domain'_apply, comap_domain'_apply, add_apply]
 #align dfinsupp.comap_domain'_add Dfinsupp.comapDomain'_add
 
-/- warning: dfinsupp.comap_domain'_smul -> Dfinsupp.comapDomain'_smul is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} {κ : Type.{u4}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : ι), AddMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), DistribMulAction.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] (h : κ -> ι) {h' : ι -> κ} (hh' : Function.LeftInverse.{succ u4, succ u1} κ ι h' h) (r : γ) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))), Eq.{succ (max u4 u2)} (Dfinsupp.{u4, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) (h i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) (h i)) (_inst_2 (h i))))) (Dfinsupp.comapDomain'.{u1, u2, u4} ι (fun (i : ι) => β i) κ (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) h h' hh' (SMul.smul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.hasSmul.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) r f)) (SMul.smul.{u3, max u4 u2} γ (Dfinsupp.{u4, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) (h i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) (h i)) (_inst_2 (h i))))) (Dfinsupp.hasSmul.{u4, u2, u3} κ γ (fun (k : κ) => β (h k)) _inst_1 (fun (i : κ) => _inst_2 (h i)) (fun (i : κ) => _inst_3 (h i))) r (Dfinsupp.comapDomain'.{u1, u2, u4} ι (fun (i : ι) => β i) κ (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) h h' hh' f))
-but is expected to have type
-  forall {ι : Type.{u2}} {γ : Type.{u4}} {β : ι -> Type.{u3}} {κ : Type.{u1}} [_inst_1 : Monoid.{u4} γ] [_inst_2 : forall (i : ι), AddMonoid.{u3} (β i)] [_inst_3 : forall (i : ι), DistribMulAction.{u4, u3} γ (β i) _inst_1 (_inst_2 i)] (h : κ -> ι) {h' : ι -> κ} (hh' : Function.LeftInverse.{succ u1, succ u2} κ ι h' h) (r : γ) (f : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_2 i))), Eq.{max (succ u3) (succ u1)} (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) (h i)) (_inst_2 (h i)))) (Dfinsupp.comapDomain'.{u2, u3, u1} ι (fun (i : ι) => β i) κ (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_2 i)) h h' hh' (HSMul.hSMul.{u4, max u2 u3, max u2 u3} γ (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_2 i))) (instHSMul.{u4, max u2 u3} γ (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u2, u3, u4} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i))) r f)) (HSMul.hSMul.{u4, max u1 u3, max u3 u1} γ (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) (h i)) (_inst_2 (h i)))) (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) (h i)) (_inst_2 (h i)))) (instHSMul.{u4, max u3 u1} γ (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) (h i)) (_inst_2 (h i)))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u3, u4} κ γ (fun (k : κ) => β (h k)) _inst_1 (fun (i : κ) => _inst_2 (h i)) (fun (i : κ) => _inst_3 (h i)))) r (Dfinsupp.comapDomain'.{u2, u3, u1} ι (fun (i : ι) => β i) κ (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_2 i)) h h' hh' f))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.comap_domain'_smul Dfinsupp.comapDomain'_smulₓ'. -/
 @[simp]
 theorem comapDomain'_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
     (h : κ → ι) {h' : ι → κ} (hh' : Function.LeftInverse h' h) (r : γ) (f : Π₀ i, β i) :
@@ -1935,12 +1551,6 @@ theorem comapDomain'_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribM
   rw [smul_apply, comap_domain'_apply, smul_apply, comap_domain'_apply]
 #align dfinsupp.comap_domain'_smul Dfinsupp.comapDomain'_smul
 
-/- warning: dfinsupp.comap_domain'_single -> Dfinsupp.comapDomain'_single is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} {κ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : DecidableEq.{succ u3} κ] [_inst_3 : forall (i : ι), Zero.{u2} (β i)] (h : κ -> ι) {h' : ι -> κ} (hh' : Function.LeftInverse.{succ u3, succ u1} κ ι h' h) (k : κ) (x : β (h k)), Eq.{succ (max u3 u2)} (Dfinsupp.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_3 (h i))) (Dfinsupp.comapDomain'.{u1, u2, u3} ι (fun (i : ι) => β i) κ (fun (i : ι) => _inst_3 i) h h' hh' (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (h k) x)) (Dfinsupp.single.{u3, u2} κ (fun (k : κ) => β (h k)) (fun (a : κ) (b : κ) => _inst_2 a b) (fun (i : κ) => _inst_3 (h i)) k x)
-but is expected to have type
-  forall {ι : Type.{u2}} {β : ι -> Type.{u3}} {κ : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : DecidableEq.{succ u1} κ] [_inst_3 : forall (i : ι), Zero.{u3} (β i)] (h : κ -> ι) {h' : ι -> κ} (hh' : Function.LeftInverse.{succ u1, succ u2} κ ι h' h) (k : κ) (x : β (h k)), Eq.{max (succ u3) (succ u1)} (Dfinsupp.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (i : κ) => _inst_3 (h i))) (Dfinsupp.comapDomain'.{u2, u3, u1} ι (fun (i : ι) => β i) κ (fun (i : ι) => _inst_3 i) h h' hh' (Dfinsupp.single.{u2, u3} ι β (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_3 i) (h k) x)) (Dfinsupp.single.{u1, u3} κ (fun (k : κ) => β (h k)) (fun (a : κ) (b : κ) => _inst_2 a b) (fun (i : κ) => _inst_3 (h i)) k x)
-Case conversion may be inaccurate. Consider using '#align dfinsupp.comap_domain'_single Dfinsupp.comapDomain'_singleₓ'. -/
 @[simp]
 theorem comapDomain'_single [DecidableEq ι] [DecidableEq κ] [∀ i, Zero (β i)] (h : κ → ι)
     {h' : ι → κ} (hh' : Function.LeftInverse h' h) (k : κ) (x : β (h k)) :
@@ -1980,43 +1590,19 @@ section Curry
 
 variable {α : ι → Type _} {δ : ∀ i, α i → Type v}
 
-/- warning: dfinsupp.has_add₂ -> Dfinsupp.hasAdd₂ is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u3}} {δ : forall (i : ι), (α i) -> Type.{u2}} [_inst_1 : forall (i : ι) (j : α i), AddZeroClass.{u2} (δ i j)], Add.{max u1 u3 u2} (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1))))
-but is expected to have type
-  forall {ι : Type.{u1}} {α : ι -> Type.{u3}} {δ : forall (i : ι), (α i) -> Type.{u2}} [_inst_1 : forall (i : ι) (j : α i), AddZeroClass.{u2} (δ i j)], Add.{max (max u2 u3) u1} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u2} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u2} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1))))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.has_add₂ Dfinsupp.hasAdd₂ₓ'. -/
 -- lean can't find these instances
 instance hasAdd₂ [∀ i j, AddZeroClass (δ i j)] : Add (Π₀ (i : ι) (j : α i), δ i j) :=
   @Dfinsupp.hasAdd ι (fun i => Π₀ j, δ i j) _
 #align dfinsupp.has_add₂ Dfinsupp.hasAdd₂
 
-/- warning: dfinsupp.add_zero_class₂ -> Dfinsupp.addZeroClass₂ is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u3}} {δ : forall (i : ι), (α i) -> Type.{u2}} [_inst_1 : forall (i : ι) (j : α i), AddZeroClass.{u2} (δ i j)], AddZeroClass.{max u1 u3 u2} (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1))))
-but is expected to have type
-  forall {ι : Type.{u1}} {α : ι -> Type.{u3}} {δ : forall (i : ι), (α i) -> Type.{u2}} [_inst_1 : forall (i : ι) (j : α i), AddZeroClass.{u2} (δ i j)], AddZeroClass.{max (max u2 u3) u1} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u2} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u2} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1))))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.add_zero_class₂ Dfinsupp.addZeroClass₂ₓ'. -/
 instance addZeroClass₂ [∀ i j, AddZeroClass (δ i j)] : AddZeroClass (Π₀ (i : ι) (j : α i), δ i j) :=
   @Dfinsupp.addZeroClass ι (fun i => Π₀ j, δ i j) _
 #align dfinsupp.add_zero_class₂ Dfinsupp.addZeroClass₂
 
-/- warning: dfinsupp.add_monoid₂ -> Dfinsupp.addMonoid₂ is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u3}} {δ : forall (i : ι), (α i) -> Type.{u2}} [_inst_1 : forall (i : ι) (j : α i), AddMonoid.{u2} (δ i j)], AddMonoid.{max u1 u3 u2} (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_1 i i_1)))) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_1 i i_1)))))
-but is expected to have type
-  forall {ι : Type.{u1}} {α : ι -> Type.{u3}} {δ : forall (i : ι), (α i) -> Type.{u2}} [_inst_1 : forall (i : ι) (j : α i), AddMonoid.{u2} (δ i j)], AddMonoid.{max (max u2 u3) u1} (Dfinsupp.{u1, max u2 u3} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u2} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u2} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1))))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.add_monoid₂ Dfinsupp.addMonoid₂ₓ'. -/
 instance addMonoid₂ [∀ i j, AddMonoid (δ i j)] : AddMonoid (Π₀ (i : ι) (j : α i), δ i j) :=
   @Dfinsupp.addMonoid ι (fun i => Π₀ j, δ i j) _
 #align dfinsupp.add_monoid₂ Dfinsupp.addMonoid₂
 
-/- warning: dfinsupp.distrib_mul_action₂ -> Dfinsupp.distribMulAction₂ is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {α : ι -> Type.{u4}} {δ : forall (i : ι), (α i) -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : ι) (j : α i), AddMonoid.{u2} (δ i j)] [_inst_3 : forall (i : ι) (j : α i), DistribMulAction.{u3, u2} γ (δ i j) _inst_1 (_inst_2 i j)], DistribMulAction.{u3, max u1 u4 u2} γ (Dfinsupp.{u1, max u4 u2} ι (fun (i : ι) => Dfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1)))) (fun (i : ι) => Dfinsupp.hasZero.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1))))) _inst_1 (Dfinsupp.addMonoid₂.{u1, u2, u4} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_2 i i_1))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {α : ι -> Type.{u4}} {δ : forall (i : ι), (α i) -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : ι) (j : α i), AddMonoid.{u2} (δ i j)] [_inst_3 : forall (i : ι) (j : α i), DistribMulAction.{u3, u2} γ (δ i j) _inst_1 (_inst_2 i j)], DistribMulAction.{u3, max (max u2 u4) u1} γ (Dfinsupp.{u1, max u2 u4} ι (fun (i : ι) => Dfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u2} ((fun (j : α i) => δ i j) i_1) (_inst_2 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u2} ((fun (j : α i) => δ i j) i_1) (_inst_2 i i_1)))) _inst_1 (Dfinsupp.addMonoid₂.{u1, u2, u4} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_2 i i_1))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.distrib_mul_action₂ Dfinsupp.distribMulAction₂ₓ'. -/
 instance distribMulAction₂ [Monoid γ] [∀ i j, AddMonoid (δ i j)]
     [∀ i j, DistribMulAction γ (δ i j)] : DistribMulAction γ (Π₀ (i : ι) (j : α i), δ i j) :=
   @Dfinsupp.distribMulAction ι _ (fun i => Π₀ j, δ i j) _ _ _
@@ -2033,12 +1619,6 @@ noncomputable def sigmaCurry [∀ i j, Zero (δ i j)] (f : Π₀ i : Σi, _, δ
 #align dfinsupp.sigma_curry Dfinsupp.sigmaCurry
 -/
 
-/- warning: dfinsupp.sigma_curry_apply -> Dfinsupp.sigmaCurry_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u3}} {δ : forall (i : ι), (α i) -> Type.{u2}} [_inst_1 : forall (i : ι) (j : α i), Zero.{u2} (δ i j)] (f : Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i))) (i : ι) (j : α i), Eq.{succ u2} (δ i j) (coeFn.{succ (max u3 u2), max (succ u3) (succ u2)} (Dfinsupp.{u3, u2} ((fun (i : ι) => α i) i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (_x : Dfinsupp.{u3, u2} ((fun (i : ι) => α i) i) (fun (i_1 : α i) => δ i i_1) (fun (i_1 : α i) => _inst_1 i i_1)) => forall (i_1 : α i), δ i i_1) (Dfinsupp.hasCoeToFun.{u3, u2} ((fun (i : ι) => α i) i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (coeFn.{succ (max u1 u3 u2), max (succ u1) (succ (max u3 u2))} (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} ((fun (i : ι) => α i) i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} ((fun (i : ι) => α i) i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) (fun (_x : Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} ((fun (i : ι) => α i) i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} ((fun (i : ι) => α i) i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) => forall (i : ι), Dfinsupp.{u3, u2} ((fun (i : ι) => α i) i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (Dfinsupp.hasCoeToFun.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} ((fun (i : ι) => α i) i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} ((fun (i : ι) => α i) i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) (Dfinsupp.sigmaCurry.{u1, u2, u3} ι (fun (i : ι) => α i) δ _inst_1 f) i) j) (coeFn.{succ (max (max u1 u3) u2), max (succ (max u1 u3)) (succ u2)} (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i))) (fun (_x : Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i))) => forall (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)), δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (Dfinsupp.hasCoeToFun.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i))) f (Sigma.mk.{u1, u3} ι (fun (i : ι) => α i) i j))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_1 : forall (i : ι) (j : α i), Zero.{u3} (δ i j)] (f : Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (i : ι) (j : α i), Eq.{succ u3} ((fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) j) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} (α i) (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) (fun (i_1 : α i) => (fun (i_1 : α i) => _inst_1 i i_1) i_1)) (α i) (fun (_x : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) _x) (Dfinsupp.funLike.{u1, u3} (α i) (fun (j : α i) => (fun (j : α i) => δ i j) j) (fun (i_1 : α i) => (fun (i_1 : α i) => _inst_1 i i_1) i_1)) (FunLike.coe.{max (succ u2) (succ (max u3 u1)), succ u2, succ (max u3 u1)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) i) (fun (i : ι) => (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) i) _x) (Dfinsupp.funLike.{u2, max u3 u1} ι (fun (i : ι) => (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) i) (fun (i : ι) => (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) i)) (Dfinsupp.sigmaCurry.{u2, u3, u1} ι (fun (i : ι) => α i) δ _inst_1 f) i) j) (FunLike.coe.{max (succ (max u2 u1)) (succ u3), succ (max u2 u1), succ u3} (Dfinsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i)) (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (_x : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i) _x) (Dfinsupp.funLike.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i)) f (Sigma.mk.{u2, u1} ι (fun (i : ι) => α i) i j))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sigma_curry_apply Dfinsupp.sigmaCurry_applyₓ'. -/
 @[simp]
 theorem sigmaCurry_apply [∀ i j, Zero (δ i j)] (f : Π₀ i : Σi, _, δ i.1 i.2) (i : ι) (j : α i) :
     sigmaCurry f i j = f ⟨i, j⟩ := by
@@ -2049,20 +1629,11 @@ theorem sigmaCurry_apply [∀ i j, Zero (δ i j)] (f : Π₀ i : Σi, _, δ i.1
     · rw [mem_image]; refine' ⟨⟨i, j⟩, _, rfl⟩; rw [mem_support_to_fun]; exact h
 #align dfinsupp.sigma_curry_apply Dfinsupp.sigmaCurry_apply
 
-/- warning: dfinsupp.sigma_curry_zero -> Dfinsupp.sigmaCurry_zero is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u3}} {δ : forall (i : ι), (α i) -> Type.{u2}} [_inst_1 : forall (i : ι) (j : α i), Zero.{u2} (δ i j)], Eq.{succ (max u1 u3 u2)} (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) (Dfinsupp.sigmaCurry.{u1, u2, u3} ι (fun (i : ι) => α i) δ _inst_1 (OfNat.ofNat.{max (max u1 u3) u2} (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i))) 0 (OfNat.mk.{max (max u1 u3) u2} (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i))) 0 (Zero.zero.{max (max u1 u3) u2} (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i))) (Dfinsupp.hasZero.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i))))))) (OfNat.ofNat.{max u1 u3 u2} (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) 0 (OfNat.mk.{max u1 u3 u2} (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) 0 (Zero.zero.{max u1 u3 u2} (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) (Dfinsupp.hasZero.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))))))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_1 : forall (i : ι) (j : α i), Zero.{u3} (δ i j)], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) (Dfinsupp.sigmaCurry.{u2, u3, u1} ι (fun (i : ι) => α i) δ _inst_1 (OfNat.ofNat.{max (max u2 u3) u1} (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) 0 (Zero.toOfNat0.{max (max u2 u3) u1} (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (Dfinsupp.instZeroDfinsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))))) (OfNat.ofNat.{max (max u2 u3) u1} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) 0 (Zero.toOfNat0.{max (max u2 u3) u1} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) (Dfinsupp.instZeroDfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)))))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sigma_curry_zero Dfinsupp.sigmaCurry_zeroₓ'. -/
 @[simp]
 theorem sigmaCurry_zero [∀ i j, Zero (δ i j)] : sigmaCurry (0 : Π₀ i : Σi, _, δ i.1 i.2) = 0 := by
   ext (i j); rw [sigma_curry_apply]; rfl
 #align dfinsupp.sigma_curry_zero Dfinsupp.sigmaCurry_zero
 
-/- warning: dfinsupp.sigma_curry_add -> Dfinsupp.sigmaCurry_add is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sigma_curry_add Dfinsupp.sigmaCurry_addₓ'. -/
 @[simp]
 theorem sigmaCurry_add [∀ i j, AddZeroClass (δ i j)] (f g : Π₀ i : Σi, α i, δ i.1 i.2) :
     @sigmaCurry _ _ δ _ (f + g) = @sigmaCurry _ _ δ _ f + @sigmaCurry ι α δ _ g :=
@@ -2072,9 +1643,6 @@ theorem sigmaCurry_add [∀ i j, AddZeroClass (δ i j)] (f g : Π₀ i : Σi, α
     sigma_curry_apply, sigma_curry_apply, add_apply]
 #align dfinsupp.sigma_curry_add Dfinsupp.sigmaCurry_add
 
-/- warning: dfinsupp.sigma_curry_smul -> Dfinsupp.sigmaCurry_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sigma_curry_smul Dfinsupp.sigmaCurry_smulₓ'. -/
 @[simp]
 theorem sigmaCurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)] [∀ i j, DistribMulAction γ (δ i j)]
     (r : γ) (f : Π₀ i : Σi, α i, δ i.1 i.2) :
@@ -2085,12 +1653,6 @@ theorem sigmaCurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)] [∀ i j, Dist
     sigma_curry_apply, smul_apply]
 #align dfinsupp.sigma_curry_smul Dfinsupp.sigmaCurry_smul
 
-/- warning: dfinsupp.sigma_curry_single -> Dfinsupp.sigmaCurry_single is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u3}} {δ : forall (i : ι), (α i) -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : ι), DecidableEq.{succ u3} (α i)] [_inst_3 : forall (i : ι) (j : α i), Zero.{u2} (δ i j)] (ij : Sigma.{u1, u3} ι (fun (i : ι) => α i)) (x : δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) ij) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) ij)), Eq.{succ (max u1 u3 u2)} (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1))) (Dfinsupp.sigmaCurry.{u1, u2, u3} ι (fun (i : ι) => α i) δ _inst_3 (Dfinsupp.single.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (ij : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) ij) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) ij)) (fun (a : Sigma.{u1, u3} ι (fun (i : ι) => α i)) (b : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => Sigma.decidableEq.{u1, u3} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (a : ι) (a_1 : α a) (b : α a) => _inst_2 a a_1 b) a b) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) ij x)) (Dfinsupp.single.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_3 i i_1)) (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) ij) (Dfinsupp.single.{u3, u2} (α (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) ij)) (fun (j : α (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) ij)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) ij) j) (fun (a : α (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) ij)) (b : α (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) ij)) => _inst_2 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) ij) a b) (fun (i : α (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) ij)) => _inst_3 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) ij) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) ij) x))
-but is expected to have type
-  forall {ι : Type.{u2}} [α : DecidableEq.{succ u2} ι] {δ : ι -> Type.{u1}} {_inst_1 : forall (i : ι), (δ i) -> Type.{u3}} [_inst_2 : forall (i : ι), DecidableEq.{succ u1} (δ i)] [_inst_3 : forall (i : ι) (j : δ i), Zero.{u3} (_inst_1 i j)] (ij : Sigma.{u2, u1} ι (fun (i : ι) => δ i)) (x : _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => δ i) ij) (Sigma.snd.{u2, u1} ι (fun (i : ι) => δ i) ij)), Eq.{max (max (succ u2) (succ u3)) (succ u1)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (δ i) (fun (j : δ i) => _inst_1 i j) (fun (i_1 : δ i) => _inst_3 i i_1)) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (δ i) (fun (j : δ i) => _inst_1 i j) (fun (i_1 : δ i) => _inst_3 i i_1))) (Dfinsupp.sigmaCurry.{u2, u3, u1} ι (fun (i : ι) => δ i) _inst_1 _inst_3 (Dfinsupp.single.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => δ i)) (fun (ij : Sigma.{u2, u1} ι (fun (i : ι) => δ i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => δ i) ij) (Sigma.snd.{u2, u1} ι (fun (i : ι) => δ i) ij)) (fun (a : Sigma.{u2, u1} ι (fun (i : ι) => δ i)) (b : Sigma.{u2, u1} ι (fun (i : ι) => δ i)) => Sigma.instDecidableEqSigma.{u2, u1} ι (fun (i : ι) => δ i) (fun (a : ι) (b : ι) => α a b) (fun (a : ι) => (fun (a : ι) (a_1 : δ a) (b : δ a) => _inst_2 a a_1 b) a) a b) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => δ i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => δ i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => δ i) i)) ij x)) (Dfinsupp.single.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (δ i) (fun (j : δ i) => _inst_1 i j) (fun (i_1 : δ i) => _inst_3 i i_1)) (fun (a : ι) (b : ι) => α a b) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (δ i) (fun (j : δ i) => _inst_1 i j) (fun (i_1 : δ i) => _inst_3 i i_1)) (Sigma.fst.{u2, u1} ι (fun (i : ι) => δ i) ij) (Dfinsupp.single.{u1, u3} (δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => δ i) ij)) (fun (j : δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => δ i) ij)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => δ i) ij) j) (fun (a : δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => δ i) ij)) (b : δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => δ i) ij)) => _inst_2 (Sigma.fst.{u2, u1} ι (fun (i : ι) => δ i) ij) a b) (fun (i : δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => δ i) ij)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => δ i) ij) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => δ i) ij) x))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sigma_curry_single Dfinsupp.sigmaCurry_singleₓ'. -/
 @[simp]
 theorem sigmaCurry_single [DecidableEq ι] [∀ i, DecidableEq (α i)] [∀ i j, Zero (δ i j)]
     (ij : Σi, α i) (x : δ ij.1 ij.2) :
@@ -2133,12 +1695,6 @@ def sigmaUncurry [∀ i j, Zero (δ i j)] [∀ i, DecidableEq (α i)]
 #align dfinsupp.sigma_uncurry Dfinsupp.sigmaUncurry
 -/
 
-/- warning: dfinsupp.sigma_uncurry_apply -> Dfinsupp.sigmaUncurry_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u3}} {δ : forall (i : ι), (α i) -> Type.{u2}} [_inst_1 : forall (i : ι) (j : α i), Zero.{u2} (δ i j)] [_inst_2 : forall (i : ι), DecidableEq.{succ u3} (α i)] [_inst_3 : forall (i : ι) (j : α i) (x : δ i j), Decidable (Ne.{succ u2} (δ i j) x (OfNat.ofNat.{u2} (δ i j) 0 (OfNat.mk.{u2} (δ i j) 0 (Zero.zero.{u2} (δ i j) (_inst_1 i j)))))] (f : Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) (i : ι) (j : α i), Eq.{succ u2} ((fun (i : ι) (j : α i) => δ i j) (Sigma.fst.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) (Sigma.mk.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) i j)) (Sigma.snd.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) (Sigma.mk.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) i j))) (coeFn.{succ (max (max u1 u3) u2), max (succ (max u1 u3)) (succ u2)} (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i)) => (fun (i : ι) (j : α i) => δ i j) (Sigma.fst.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i)) => (fun (i : ι) (i_1 : α i) => _inst_1 i i_1) (Sigma.fst.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) i))) (fun (_x : Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i)) => (fun (i : ι) (j : α i) => δ i j) (Sigma.fst.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i)) => (fun (i : ι) (i_1 : α i) => _inst_1 i i_1) (Sigma.fst.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) i))) => forall (i : Sigma.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i)), (fun (i : ι) (j : α i) => δ i j) (Sigma.fst.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) i)) (Dfinsupp.hasCoeToFun.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i)) => (fun (i : ι) (j : α i) => δ i j) (Sigma.fst.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i)) => (fun (i : ι) (i_1 : α i) => _inst_1 i i_1) (Sigma.fst.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) i))) (Dfinsupp.sigmaUncurry.{u1, u2, u3} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_1 i i_1) (fun (i : ι) (a : α i) (b : α i) => _inst_2 i a b) (fun (i : ι) (j : α i) (x : δ i j) => _inst_3 i j x) f) (Sigma.mk.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => α i) i) i j)) (coeFn.{succ (max u3 u2), max (succ u3) (succ u2)} (Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (_x : Dfinsupp.{u3, u2} (α i) (fun (i_1 : α i) => δ i i_1) (fun (i_1 : α i) => _inst_1 i i_1)) => forall (i_1 : α i), δ i i_1) (Dfinsupp.hasCoeToFun.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (coeFn.{succ (max u1 u3 u2), max (succ u1) (succ (max u3 u2))} (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) (fun (_x : Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) => forall (i : ι), Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (Dfinsupp.hasCoeToFun.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) f i) j)
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_1 : forall (i : ι) (j : α i), Zero.{u3} (δ i j)] [_inst_2 : forall (i : ι), DecidableEq.{succ u1} (α i)] [_inst_3 : forall (i : ι) (j : α i) (x : δ i j), Decidable (Ne.{succ u3} (δ i j) x (OfNat.ofNat.{u3} (δ i j) 0 (Zero.toOfNat0.{u3} (δ i j) (_inst_1 i j))))] (f : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) (i : ι) (j : α i), Eq.{succ u3} ((fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i) (Sigma.mk.{u2, u1} ι (fun (i : ι) => α i) i j)) (FunLike.coe.{max (succ (max u2 u1)) (succ u3), succ (max u2 u1), succ u3} (Dfinsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i)) (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (_x : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i) _x) (Dfinsupp.funLike.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i)) (Dfinsupp.sigmaUncurry.{u2, u3, u1} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_1 i i_1) (fun (i : ι) (a : α i) (b : α i) => _inst_2 i a b) (fun (i : ι) (j : α i) (x : δ i j) => _inst_3 i j x) f) (Sigma.mk.{u2, u1} ι (fun (i : ι) => α i) i j)) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} (α i) (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) (fun (i_1 : α i) => (fun (i_1 : α i) => _inst_1 i i_1) i_1)) (α i) (fun (_x : α i) => (fun (i_1 : α i) => (fun (j : α i) => δ i j) i_1) _x) (Dfinsupp.funLike.{u1, u3} (α i) (fun (j : α i) => (fun (j : α i) => δ i j) j) (fun (i_1 : α i) => (fun (i_1 : α i) => _inst_1 i i_1) i_1)) (FunLike.coe.{max (succ u2) (succ (max u3 u1)), succ u2, succ (max u3 u1)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) i) (fun (i : ι) => (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) i) _x) (Dfinsupp.funLike.{u2, max u3 u1} ι (fun (i : ι) => (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) i) (fun (i : ι) => (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) i)) f i) j)
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sigma_uncurry_apply Dfinsupp.sigmaUncurry_applyₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
 theorem sigmaUncurry_apply [∀ i j, Zero (δ i j)] [∀ i, DecidableEq (α i)]
@@ -2147,12 +1703,6 @@ theorem sigmaUncurry_apply [∀ i j, Zero (δ i j)] [∀ i, DecidableEq (α i)]
   rfl
 #align dfinsupp.sigma_uncurry_apply Dfinsupp.sigmaUncurry_apply
 
-/- warning: dfinsupp.sigma_uncurry_zero -> Dfinsupp.sigmaUncurry_zero is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u3}} {δ : forall (i : ι), (α i) -> Type.{u2}} [_inst_1 : forall (i : ι) (j : α i), Zero.{u2} (δ i j)] [_inst_2 : forall (i : ι), DecidableEq.{succ u3} (α i)] [_inst_3 : forall (i : ι) (j : α i) (x : δ i j), Decidable (Ne.{succ u2} (δ i j) x (OfNat.ofNat.{u2} (δ i j) 0 (OfNat.mk.{u2} (δ i j) 0 (Zero.zero.{u2} (δ i j) (_inst_1 i j)))))], Eq.{succ (max (max u1 u3) u2)} (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i))) (Dfinsupp.sigmaUncurry.{u1, u2, u3} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_1 i i_1) (fun (i : ι) (a : α i) (b : α i) => _inst_2 i a b) (fun (i : ι) (j : α i) (x : δ i j) => _inst_3 i j x) (OfNat.ofNat.{max u1 u3 u2} (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) 0 (OfNat.mk.{max u1 u3 u2} (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) 0 (Zero.zero.{max u1 u3 u2} (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) (Dfinsupp.hasZero.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))))))) (OfNat.ofNat.{max (max u1 u3) u2} (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i))) 0 (OfNat.mk.{max (max u1 u3) u2} (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i))) 0 (Zero.zero.{max (max u1 u3) u2} (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i))) (Dfinsupp.hasZero.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i))))))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_1 : forall (i : ι) (j : α i), Zero.{u3} (δ i j)] [_inst_2 : forall (i : ι), DecidableEq.{succ u1} (α i)] [_inst_3 : forall (i : ι) (j : α i) (x : δ i j), Decidable (Ne.{succ u3} (δ i j) x (OfNat.ofNat.{u3} (δ i j) 0 (Zero.toOfNat0.{u3} (δ i j) (_inst_1 i j))))], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (Dfinsupp.sigmaUncurry.{u2, u3, u1} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_1 i i_1) (fun (i : ι) (a : α i) (b : α i) => _inst_2 i a b) (fun (i : ι) (j : α i) (x : δ i j) => _inst_3 i j x) (OfNat.ofNat.{max (max u2 u3) u1} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) 0 (Zero.toOfNat0.{max (max u2 u3) u1} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) (Dfinsupp.instZeroDfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)))))) (OfNat.ofNat.{max (max u2 u3) u1} (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) 0 (Zero.toOfNat0.{max (max u2 u3) u1} (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (Dfinsupp.instZeroDfinsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sigma_uncurry_zero Dfinsupp.sigmaUncurry_zeroₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
 theorem sigmaUncurry_zero [∀ i j, Zero (δ i j)] [∀ i, DecidableEq (α i)]
@@ -2160,9 +1710,6 @@ theorem sigmaUncurry_zero [∀ i j, Zero (δ i j)] [∀ i, DecidableEq (α i)]
   rfl
 #align dfinsupp.sigma_uncurry_zero Dfinsupp.sigmaUncurry_zero
 
-/- warning: dfinsupp.sigma_uncurry_add -> Dfinsupp.sigmaUncurry_add is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sigma_uncurry_add Dfinsupp.sigmaUncurry_addₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
 theorem sigmaUncurry_add [∀ i j, AddZeroClass (δ i j)] [∀ i, DecidableEq (α i)]
@@ -2171,9 +1718,6 @@ theorem sigmaUncurry_add [∀ i j, AddZeroClass (δ i j)] [∀ i, DecidableEq (
   coeFn_injective rfl
 #align dfinsupp.sigma_uncurry_add Dfinsupp.sigmaUncurry_add
 
-/- warning: dfinsupp.sigma_uncurry_smul -> Dfinsupp.sigmaUncurry_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sigma_uncurry_smul Dfinsupp.sigmaUncurry_smulₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
 theorem sigmaUncurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)] [∀ i, DecidableEq (α i)]
@@ -2182,12 +1726,6 @@ theorem sigmaUncurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)] [∀ i, Deci
   coeFn_injective rfl
 #align dfinsupp.sigma_uncurry_smul Dfinsupp.sigmaUncurry_smul
 
-/- warning: dfinsupp.sigma_uncurry_single -> Dfinsupp.sigmaUncurry_single is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u3}} {δ : forall (i : ι), (α i) -> Type.{u2}} [_inst_1 : forall (i : ι) (j : α i), Zero.{u2} (δ i j)] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : forall (i : ι), DecidableEq.{succ u3} (α i)] [_inst_4 : forall (i : ι) (j : α i) (x : δ i j), Decidable (Ne.{succ u2} (δ i j) x (OfNat.ofNat.{u2} (δ i j) 0 (OfNat.mk.{u2} (δ i j) 0 (Zero.zero.{u2} (δ i j) (_inst_1 i j)))))] (i : ι) (j : α i) (x : δ i j), Eq.{succ (max (max u1 u3) u2)} (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i))) (Dfinsupp.sigmaUncurry.{u1, u2, u3} ι (fun (i : ι) => α i) (fun (i : ι) (i_1 : α i) => δ i i_1) (fun (i : ι) (i_1 : α i) => _inst_1 i i_1) (fun (i : ι) (a : α i) (b : α i) => _inst_3 i a b) (fun (i : ι) (j : α i) (x : δ i j) => _inst_4 i j x) (Dfinsupp.single.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) i (Dfinsupp.single.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (a : α i) (b : α i) => _inst_3 i a b) (fun (i_1 : α i) => _inst_1 i i_1) j x))) (Dfinsupp.single.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (a : Sigma.{u1, u3} ι (fun (i : ι) => α i)) (b : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => Sigma.decidableEq.{u1, u3} ι (fun (i : ι) => α i) (fun (a : ι) (b : ι) => _inst_2 a b) (fun (a : ι) (a_1 : α a) (b : α a) => _inst_3 a a_1 b) a b) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (Sigma.mk.{u1, u3} ι (fun (i : ι) => α i) i j) x)
-but is expected to have type
-  forall {ι : Type.{u2}} [α : DecidableEq.{succ u2} ι] {δ : ι -> Type.{u1}} {_inst_1 : forall (i : ι), (δ i) -> Type.{u3}} [_inst_2 : forall (i : ι) (j : δ i), Zero.{u3} (_inst_1 i j)] [_inst_3 : forall (i : ι), DecidableEq.{succ u1} (δ i)] [_inst_4 : forall (i : ι) (j : δ i) (x : _inst_1 i j), Decidable (Ne.{succ u3} (_inst_1 i j) x (OfNat.ofNat.{u3} (_inst_1 i j) 0 (Zero.toOfNat0.{u3} (_inst_1 i j) (_inst_2 i j))))] (i : ι) (j : δ i) (x : _inst_1 i j), Eq.{max (max (succ u2) (succ u3)) (succ u1)} (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => δ i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => δ i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => δ i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => δ i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => δ i)) => _inst_2 (Sigma.fst.{u2, u1} ι (fun (i : ι) => δ i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => δ i) i))) (Dfinsupp.sigmaUncurry.{u2, u3, u1} ι δ _inst_1 _inst_2 (fun (i : ι) (a : δ i) (b : δ i) => _inst_3 i a b) (fun (i : ι) (j : δ i) (x : _inst_1 i j) => _inst_4 i j x) (Dfinsupp.single.{u2, max u1 u3} ι (fun (i : ι) => Dfinsupp.{u1, u3} (δ i) (fun (j : δ i) => _inst_1 i j) (fun (i_1 : δ i) => _inst_2 i i_1)) (fun (a : ι) (b : ι) => α a b) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (δ i) (fun (j : δ i) => _inst_1 i j) (fun (i_1 : δ i) => _inst_2 i i_1)) i (Dfinsupp.single.{u1, u3} (δ i) (fun (j : δ i) => _inst_1 i j) (fun (a : δ i) (b : δ i) => _inst_3 i a b) (fun (i_1 : δ i) => _inst_2 i i_1) j x))) (Dfinsupp.single.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => δ i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => δ i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => δ i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => δ i) i)) (fun (a : Sigma.{u2, u1} ι (fun (i : ι) => δ i)) (b : Sigma.{u2, u1} ι (fun (i : ι) => δ i)) => Sigma.instDecidableEqSigma.{u2, u1} ι (fun (i : ι) => δ i) (fun (a : ι) (b : ι) => α a b) (fun (a : ι) => (fun (a : ι) (a_1 : δ a) (b : δ a) => _inst_3 a a_1 b) a) a b) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => δ i)) => _inst_2 (Sigma.fst.{u2, u1} ι (fun (i : ι) => δ i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => δ i) i)) (Sigma.mk.{u2, u1} ι (fun (i : ι) => δ i) i j) x)
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sigma_uncurry_single Dfinsupp.sigmaUncurry_singleₓ'. -/
 @[simp]
 theorem sigmaUncurry_single [∀ i j, Zero (δ i j)] [DecidableEq ι] [∀ i, DecidableEq (α i)]
     [∀ (i j) (x : δ i j), Decidable (x ≠ 0)] (i) (j : α i) (x : δ i j) :
@@ -2258,12 +1796,6 @@ theorem extendWith_some [∀ i, Zero (α i)] (f : Π₀ i, α (some i)) (a : α
 #align dfinsupp.extend_with_some Dfinsupp.extendWith_some
 -/
 
-/- warning: dfinsupp.extend_with_single_zero -> Dfinsupp.extendWith_single_zero is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : (Option.{u1} ι) -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : Option.{u1} ι), Zero.{u2} (α i)] (i : ι) (x : α (Option.some.{u1} ι i)), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_2 i)) (Dfinsupp.extendWith.{u1, u2} ι α (fun (i : Option.{u1} ι) => _inst_2 i) (OfNat.ofNat.{u2} (α (Option.none.{u1} ι)) 0 (OfNat.mk.{u2} (α (Option.none.{u1} ι)) 0 (Zero.zero.{u2} (α (Option.none.{u1} ι)) (_inst_2 (Option.none.{u1} ι))))) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 (Option.some.{u1} ι i)) i x)) (Dfinsupp.single.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (a : Option.{u1} ι) (b : Option.{u1} ι) => Option.decidableEq.{u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) a b) (fun (i : Option.{u1} ι) => _inst_2 i) (Option.some.{u1} ι i) x)
-but is expected to have type
-  forall {ι : Type.{u1}} {α : (Option.{u1} ι) -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : forall (i : Option.{u1} ι), Zero.{u2} (α i)] (i : ι) (x : α (Option.some.{u1} ι i)), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_2 i)) (Dfinsupp.extendWith.{u1, u2} ι α _inst_2 (OfNat.ofNat.{u2} (α (Option.none.{u1} ι)) 0 (Zero.toOfNat0.{u2} (α (Option.none.{u1} ι)) (_inst_2 (Option.none.{u1} ι)))) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 (Option.some.{u1} ι i)) i x)) (Dfinsupp.single.{u1, u2} (Option.{u1} ι) α (fun (a : Option.{u1} ι) (b : Option.{u1} ι) => instDecidableEqOption.{u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) a b) (fun (i : Option.{u1} ι) => _inst_2 i) (Option.some.{u1} ι i) x)
-Case conversion may be inaccurate. Consider using '#align dfinsupp.extend_with_single_zero Dfinsupp.extendWith_single_zeroₓ'. -/
 @[simp]
 theorem extendWith_single_zero [DecidableEq ι] [∀ i, Zero (α i)] (i : ι) (x : α (some i)) :
     (single i x).extendWith 0 = single (some i) x :=
@@ -2310,17 +1842,11 @@ noncomputable def equivProdDfinsupp [∀ i, Zero (α i)] : (Π₀ i, α i) ≃ 
 #align dfinsupp.equiv_prod_dfinsupp Dfinsupp.equivProdDfinsupp
 -/
 
-/- warning: dfinsupp.equiv_prod_dfinsupp_add -> Dfinsupp.equivProdDfinsupp_add is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.equiv_prod_dfinsupp_add Dfinsupp.equivProdDfinsupp_addₓ'. -/
 theorem equivProdDfinsupp_add [∀ i, AddZeroClass (α i)] (f g : Π₀ i, α i) :
     equivProdDfinsupp (f + g) = equivProdDfinsupp f + equivProdDfinsupp g :=
   Prod.ext (add_apply _ _ _) (comapDomain_add _ _ _ _)
 #align dfinsupp.equiv_prod_dfinsupp_add Dfinsupp.equivProdDfinsupp_add
 
-/- warning: dfinsupp.equiv_prod_dfinsupp_smul -> Dfinsupp.equivProdDfinsupp_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.equiv_prod_dfinsupp_smul Dfinsupp.equivProdDfinsupp_smulₓ'. -/
 theorem equivProdDfinsupp_smul [Monoid γ] [∀ i, AddMonoid (α i)] [∀ i, DistribMulAction γ (α i)]
     (r : γ) (f : Π₀ i, α i) : equivProdDfinsupp (r • f) = r • equivProdDfinsupp f :=
   Prod.ext (smul_apply _ _ _) (comapDomain_smul _ _ _ _)
@@ -2340,12 +1866,6 @@ def prod [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMon
 #align dfinsupp.sum Dfinsupp.sum
 -/
 
-/- warning: dfinsupp.prod_map_range_index -> Dfinsupp.prod_mapRange_index is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u4}} [dec : DecidableEq.{succ u1} ι] {β₁ : ι -> Type.{u2}} {β₂ : ι -> Type.{u3}} [_inst_1 : forall (i : ι), Zero.{u2} (β₁ i)] [_inst_2 : forall (i : ι), Zero.{u3} (β₂ i)] [_inst_3 : forall (i : ι) (x : β₁ i), Decidable (Ne.{succ u2} (β₁ i) x (OfNat.ofNat.{u2} (β₁ i) 0 (OfNat.mk.{u2} (β₁ i) 0 (Zero.zero.{u2} (β₁ i) (_inst_1 i)))))] [_inst_4 : forall (i : ι) (x : β₂ i), Decidable (Ne.{succ u3} (β₂ i) x (OfNat.ofNat.{u3} (β₂ i) 0 (OfNat.mk.{u3} (β₂ i) 0 (Zero.zero.{u3} (β₂ i) (_inst_2 i)))))] [_inst_5 : CommMonoid.{u4} γ] {f : forall (i : ι), (β₁ i) -> (β₂ i)} {hf : forall (i : ι), Eq.{succ u3} (β₂ i) (f i (OfNat.ofNat.{u2} (β₁ i) 0 (OfNat.mk.{u2} (β₁ i) 0 (Zero.zero.{u2} (β₁ i) (_inst_1 i))))) (OfNat.ofNat.{u3} (β₂ i) 0 (OfNat.mk.{u3} (β₂ i) 0 (Zero.zero.{u3} (β₂ i) (_inst_2 i))))} {g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_1 i)} {h : forall (i : ι), (β₂ i) -> γ}, (forall (i : ι), Eq.{succ u4} γ (h i (OfNat.ofNat.{u3} (β₂ i) 0 (OfNat.mk.{u3} (β₂ i) 0 (Zero.zero.{u3} (β₂ i) (_inst_2 i))))) (OfNat.ofNat.{u4} γ 1 (OfNat.mk.{u4} γ 1 (One.one.{u4} γ (MulOneClass.toHasOne.{u4} γ (Monoid.toMulOneClass.{u4} γ (CommMonoid.toMonoid.{u4} γ _inst_5))))))) -> (Eq.{succ u4} γ (Dfinsupp.prod.{u1, u3, u4} ι γ (fun (i : ι) => β₂ i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β₂ i) => _inst_4 i x) _inst_5 (Dfinsupp.mapRange.{u1, u2, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_1 i) (fun (i : ι) => _inst_2 i) f hf g) h) (Dfinsupp.prod.{u1, u2, u4} ι γ (fun (i : ι) => β₁ i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β₁ i) => _inst_3 i x) _inst_5 g (fun (i : ι) (b : β₁ i) => h i (f i b))))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u4}} [dec : DecidableEq.{succ u1} ι] {β₁ : ι -> Type.{u2}} {β₂ : ι -> Type.{u3}} [_inst_1 : forall (i : ι), Zero.{u2} (β₁ i)] [_inst_2 : forall (i : ι), Zero.{u3} (β₂ i)] [_inst_3 : forall (i : ι) (x : β₁ i), Decidable (Ne.{succ u2} (β₁ i) x (OfNat.ofNat.{u2} (β₁ i) 0 (Zero.toOfNat0.{u2} (β₁ i) (_inst_1 i))))] [_inst_4 : forall (i : ι) (x : β₂ i), Decidable (Ne.{succ u3} (β₂ i) x (OfNat.ofNat.{u3} (β₂ i) 0 (Zero.toOfNat0.{u3} (β₂ i) (_inst_2 i))))] [_inst_5 : CommMonoid.{u4} γ] {f : forall (i : ι), (β₁ i) -> (β₂ i)} {hf : forall (i : ι), Eq.{succ u3} (β₂ i) (f i (OfNat.ofNat.{u2} (β₁ i) 0 (Zero.toOfNat0.{u2} (β₁ i) (_inst_1 i)))) (OfNat.ofNat.{u3} (β₂ i) 0 (Zero.toOfNat0.{u3} (β₂ i) (_inst_2 i)))} {g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_1 i)} {h : forall (i : ι), (β₂ i) -> γ}, (forall (i : ι), Eq.{succ u4} γ (h i (OfNat.ofNat.{u3} (β₂ i) 0 (Zero.toOfNat0.{u3} (β₂ i) (_inst_2 i)))) (OfNat.ofNat.{u4} γ 1 (One.toOfNat1.{u4} γ (Monoid.toOne.{u4} γ (CommMonoid.toMonoid.{u4} γ _inst_5))))) -> (Eq.{succ u4} γ (Dfinsupp.prod.{u1, u3, u4} ι γ (fun (i : ι) => β₂ i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β₂ i) => _inst_4 i x) _inst_5 (Dfinsupp.mapRange.{u1, u2, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_1 i) (fun (i : ι) => _inst_2 i) f hf g) h) (Dfinsupp.prod.{u1, u2, u4} ι γ (fun (i : ι) => β₁ i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β₁ i) => _inst_3 i x) _inst_5 g (fun (i : ι) (b : β₁ i) => h i (f i b))))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.prod_map_range_index Dfinsupp.prod_mapRange_indexₓ'. -/
 @[to_additive]
 theorem prod_mapRange_index {β₁ : ι → Type v₁} {β₂ : ι → Type v₂} [∀ i, Zero (β₁ i)]
     [∀ i, Zero (β₂ i)] [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ (i) (x : β₂ i), Decidable (x ≠ 0)]
@@ -2363,12 +1883,6 @@ theorem prod_mapRange_index {β₁ : ι → Type v₁} {β₂ : ι → Type v₂
 #align dfinsupp.prod_map_range_index Dfinsupp.prod_mapRange_index
 #align dfinsupp.sum_map_range_index Dfinsupp.sum_mapRange_index
 
-/- warning: dfinsupp.prod_zero_index -> Dfinsupp.prod_zero_index is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))))] [_inst_3 : CommMonoid.{u3} γ] {h : forall (i : ι), (β i) -> γ}, Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 (OfNat.ofNat.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) 0 (OfNat.mk.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) 0 (Zero.zero.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (Dfinsupp.hasZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))))) h) (OfNat.ofNat.{u3} γ 1 (OfNat.mk.{u3} γ 1 (One.one.{u3} γ (MulOneClass.toHasOne.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3))))))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))] [_inst_3 : CommMonoid.{u3} γ] {h : forall (i : ι), (β i) -> γ}, Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 (OfNat.ofNat.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) 0 (Zero.toOfNat0.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (Dfinsupp.instZeroDfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) h) (OfNat.ofNat.{u3} γ 1 (One.toOfNat1.{u3} γ (Monoid.toOne.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3))))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.prod_zero_index Dfinsupp.prod_zero_indexₓ'. -/
 @[to_additive]
 theorem prod_zero_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     [CommMonoid γ] {h : ∀ i, β i → γ} : (0 : Π₀ i, β i).Prod h = 1 :=
@@ -2376,12 +1890,6 @@ theorem prod_zero_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decid
 #align dfinsupp.prod_zero_index Dfinsupp.prod_zero_index
 #align dfinsupp.sum_zero_index Dfinsupp.sum_zero_index
 
-/- warning: dfinsupp.prod_single_index -> Dfinsupp.prod_single_index is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), Zero.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_1 i)))))] [_inst_3 : CommMonoid.{u3} γ] {i : ι} {b : β i} {h : forall (i : ι), (β i) -> γ}, (Eq.{succ u3} γ (h i (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_1 i))))) (OfNat.ofNat.{u3} γ 1 (OfNat.mk.{u3} γ 1 (One.one.{u3} γ (MulOneClass.toHasOne.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3))))))) -> (Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 (Dfinsupp.single.{u1, u2} ι (fun {i : ι} => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i b) h) (h i b))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), Zero.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (_inst_1 i))))] [_inst_3 : CommMonoid.{u3} γ] {i : ι} {b : β i} {h : forall (i : ι), (β i) -> γ}, (Eq.{succ u3} γ (h i (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (_inst_1 i)))) (OfNat.ofNat.{u3} γ 1 (One.toOfNat1.{u3} γ (Monoid.toOne.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3))))) -> (Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i b) h) (h i b))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.prod_single_index Dfinsupp.prod_single_indexₓ'. -/
 @[to_additive]
 theorem prod_single_index [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {i : ι} {b : β i} {h : ∀ i, β i → γ} (h_zero : h i 0 = 1) : (single i b).Prod h = h i b :=
@@ -2392,12 +1900,6 @@ theorem prod_single_index [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x
 #align dfinsupp.prod_single_index Dfinsupp.prod_single_index
 #align dfinsupp.sum_single_index Dfinsupp.sum_single_index
 
-/- warning: dfinsupp.prod_neg_index -> Dfinsupp.prod_neg_index is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i)))))))))] [_inst_3 : CommMonoid.{u3} γ] {g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))} {h : forall (i : ι), (β i) -> γ}, (forall (i : ι), Eq.{succ u3} γ (h i (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i))))))))) (OfNat.ofNat.{u3} γ 1 (OfNat.mk.{u3} γ 1 (One.one.{u3} γ (MulOneClass.toHasOne.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3))))))) -> (Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.hasNeg.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) g) h) (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 g (fun (i : ι) (b : β i) => h i (Neg.neg.{u2} (β i) (SubNegMonoid.toHasNeg.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i))) b))))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_1 i))))))))] [_inst_3 : CommMonoid.{u3} γ] {g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))} {h : forall (i : ι), (β i) -> γ}, (forall (i : ι), Eq.{succ u3} γ (h i (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_1 i)))))))) (OfNat.ofNat.{u3} γ 1 (One.toOfNat1.{u3} γ (Monoid.toOne.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3))))) -> (Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.instNegDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) g) h) (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 g (fun (i : ι) (b : β i) => h i (Neg.neg.{u2} (β i) (NegZeroClass.toNeg.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_1 i))))) b))))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.prod_neg_index Dfinsupp.prod_neg_indexₓ'. -/
 @[to_additive]
 theorem prod_neg_index [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {g : Π₀ i, β i} {h : ∀ i, β i → γ} (h0 : ∀ i, h i 0 = 1) :
@@ -2408,12 +1910,6 @@ theorem prod_neg_index [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (
 
 omit dec
 
-/- warning: dfinsupp.prod_comm -> Dfinsupp.prod_comm is a dubious translation:
-lean 3 declaration is
-  forall {γ : Type.{u1}} {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} {β₁ : ι₁ -> Type.{u4}} {β₂ : ι₂ -> Type.{u5}} [_inst_1 : DecidableEq.{succ u2} ι₁] [_inst_2 : DecidableEq.{succ u3} ι₂] [_inst_3 : forall (i : ι₁), Zero.{u4} (β₁ i)] [_inst_4 : forall (i : ι₂), Zero.{u5} (β₂ i)] [_inst_5 : forall (i : ι₁) (x : β₁ i), Decidable (Ne.{succ u4} (β₁ i) x (OfNat.ofNat.{u4} (β₁ i) 0 (OfNat.mk.{u4} (β₁ i) 0 (Zero.zero.{u4} (β₁ i) (_inst_3 i)))))] [_inst_6 : forall (i : ι₂) (x : β₂ i), Decidable (Ne.{succ u5} (β₂ i) x (OfNat.ofNat.{u5} (β₂ i) 0 (OfNat.mk.{u5} (β₂ i) 0 (Zero.zero.{u5} (β₂ i) (_inst_4 i)))))] [_inst_7 : CommMonoid.{u1} γ] (f₁ : Dfinsupp.{u2, u4} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (f₂ : Dfinsupp.{u3, u5} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (h : forall (i : ι₁), (β₁ i) -> (forall (i : ι₂), (β₂ i) -> γ)), Eq.{succ u1} γ (Dfinsupp.prod.{u2, u4, u1} ι₁ γ (fun (i : ι₁) => β₁ i) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_3 i) (fun (i : ι₁) (x : β₁ i) => _inst_5 i x) _inst_7 f₁ (fun (i₁ : ι₁) (x₁ : β₁ i₁) => Dfinsupp.prod.{u3, u5, u1} ι₂ γ (fun (i : ι₂) => β₂ i) (fun (a : ι₂) (b : ι₂) => _inst_2 a b) (fun (i : ι₂) => _inst_4 i) (fun (i : ι₂) (x : β₂ i) => _inst_6 i x) _inst_7 f₂ (fun (i₂ : ι₂) (x₂ : β₂ i₂) => h i₁ x₁ i₂ x₂))) (Dfinsupp.prod.{u3, u5, u1} ι₂ γ (fun (i : ι₂) => β₂ i) (fun (a : ι₂) (b : ι₂) => _inst_2 a b) (fun (i : ι₂) => _inst_4 i) (fun (i : ι₂) (x : β₂ i) => _inst_6 i x) _inst_7 f₂ (fun (i₂ : ι₂) (x₂ : β₂ i₂) => Dfinsupp.prod.{u2, u4, u1} ι₁ γ (fun (i : ι₁) => β₁ i) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_3 i) (fun (i : ι₁) (x : β₁ i) => _inst_5 i x) _inst_7 f₁ (fun (i₁ : ι₁) (x₁ : β₁ i₁) => h i₁ x₁ i₂ x₂)))
-but is expected to have type
-  forall {γ : Type.{u5}} {ι₁ : Type.{u4}} {ι₂ : Type.{u3}} {β₁ : ι₁ -> Type.{u2}} {β₂ : ι₂ -> Type.{u1}} [_inst_1 : DecidableEq.{succ u4} ι₁] [_inst_2 : DecidableEq.{succ u3} ι₂] [_inst_3 : forall (i : ι₁), Zero.{u2} (β₁ i)] [_inst_4 : forall (i : ι₂), Zero.{u1} (β₂ i)] [_inst_5 : forall (i : ι₁) (x : β₁ i), Decidable (Ne.{succ u2} (β₁ i) x (OfNat.ofNat.{u2} (β₁ i) 0 (Zero.toOfNat0.{u2} (β₁ i) (_inst_3 i))))] [_inst_6 : forall (i : ι₂) (x : β₂ i), Decidable (Ne.{succ u1} (β₂ i) x (OfNat.ofNat.{u1} (β₂ i) 0 (Zero.toOfNat0.{u1} (β₂ i) (_inst_4 i))))] [_inst_7 : CommMonoid.{u5} γ] (f₁ : Dfinsupp.{u4, u2} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (f₂ : Dfinsupp.{u3, u1} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (h : forall (i : ι₁), (β₁ i) -> (forall (i : ι₂), (β₂ i) -> γ)), Eq.{succ u5} γ (Dfinsupp.prod.{u4, u2, u5} ι₁ γ (fun (i : ι₁) => β₁ i) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_3 i) (fun (i : ι₁) (x : β₁ i) => _inst_5 i x) _inst_7 f₁ (fun (i₁ : ι₁) (x₁ : β₁ i₁) => Dfinsupp.prod.{u3, u1, u5} ι₂ γ (fun (i : ι₂) => β₂ i) (fun (a : ι₂) (b : ι₂) => _inst_2 a b) (fun (i : ι₂) => _inst_4 i) (fun (i : ι₂) (x : β₂ i) => _inst_6 i x) _inst_7 f₂ (fun (i₂ : ι₂) (x₂ : β₂ i₂) => h i₁ x₁ i₂ x₂))) (Dfinsupp.prod.{u3, u1, u5} ι₂ γ (fun (i : ι₂) => β₂ i) (fun (a : ι₂) (b : ι₂) => _inst_2 a b) (fun (i : ι₂) => _inst_4 i) (fun (i : ι₂) (x : β₂ i) => _inst_6 i x) _inst_7 f₂ (fun (i₂ : ι₂) (x₂ : β₂ i₂) => Dfinsupp.prod.{u4, u2, u5} ι₁ γ (fun (i : ι₁) => β₁ i) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_3 i) (fun (i : ι₁) (x : β₁ i) => _inst_5 i x) _inst_7 f₁ (fun (i₁ : ι₁) (x₁ : β₁ i₁) => h i₁ x₁ i₂ x₂)))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.prod_comm Dfinsupp.prod_commₓ'. -/
 @[to_additive]
 theorem prod_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂ : ι₂ → Type _} [DecidableEq ι₁]
     [DecidableEq ι₂] [∀ i, Zero (β₁ i)] [∀ i, Zero (β₂ i)] [∀ (i) (x : β₁ i), Decidable (x ≠ 0)]
@@ -2425,9 +1921,6 @@ theorem prod_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂ : ι
 #align dfinsupp.prod_comm Dfinsupp.prod_comm
 #align dfinsupp.sum_comm Dfinsupp.sum_comm
 
-/- warning: dfinsupp.sum_apply -> Dfinsupp.sum_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sum_apply Dfinsupp.sum_applyₓ'. -/
 @[simp]
 theorem sum_apply {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
     [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)] {f : Π₀ i₁, β₁ i₁}
@@ -2437,9 +1930,6 @@ theorem sum_apply {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Typ
 
 include dec
 
-/- warning: dfinsupp.support_sum -> Dfinsupp.support_sum is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.support_sum Dfinsupp.support_sumₓ'. -/
 theorem support_sum {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
     [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)]
     [∀ (i) (x : β i), Decidable (x ≠ 0)] {f : Π₀ i₁, β₁ i₁} {g : ∀ i₁, β₁ i₁ → Π₀ i, β i} :
@@ -2454,12 +1944,6 @@ theorem support_sum {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → T
   simpa [Finset.subset_iff, mem_support_iff, Finset.mem_biUnion, sum_apply] using this
 #align dfinsupp.support_sum Dfinsupp.support_sum
 
-/- warning: dfinsupp.prod_one -> Dfinsupp.prod_one is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))))] [_inst_3 : CommMonoid.{u3} γ] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))}, Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f (fun (i : ι) (b : β i) => OfNat.ofNat.{u3} γ 1 (OfNat.mk.{u3} γ 1 (One.one.{u3} γ (MulOneClass.toHasOne.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3))))))) (OfNat.ofNat.{u3} γ 1 (OfNat.mk.{u3} γ 1 (One.one.{u3} γ (MulOneClass.toHasOne.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3))))))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))] [_inst_3 : CommMonoid.{u3} γ] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))}, Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f (fun (i : ι) (b : β i) => OfNat.ofNat.{u3} γ 1 (One.toOfNat1.{u3} γ (Monoid.toOne.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3))))) (OfNat.ofNat.{u3} γ 1 (One.toOfNat1.{u3} γ (Monoid.toOne.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3))))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.prod_one Dfinsupp.prod_oneₓ'. -/
 @[simp, to_additive]
 theorem prod_one [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {f : Π₀ i, β i} : (f.Prod fun i b => (1 : γ)) = 1 :=
@@ -2467,12 +1951,6 @@ theorem prod_one [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x
 #align dfinsupp.prod_one Dfinsupp.prod_one
 #align dfinsupp.sum_zero Dfinsupp.sum_zero
 
-/- warning: dfinsupp.prod_mul -> Dfinsupp.prod_mul is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))))] [_inst_3 : CommMonoid.{u3} γ] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))} {h₁ : forall (i : ι), (β i) -> γ} {h₂ : forall (i : ι), (β i) -> γ}, Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f (fun (i : ι) (b : β i) => HMul.hMul.{u3, u3, u3} γ γ γ (instHMul.{u3} γ (MulOneClass.toHasMul.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3)))) (h₁ i b) (h₂ i b))) (HMul.hMul.{u3, u3, u3} γ γ γ (instHMul.{u3} γ (MulOneClass.toHasMul.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3)))) (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f h₁) (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f h₂))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))] [_inst_3 : CommMonoid.{u3} γ] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))} {h₁ : forall (i : ι), (β i) -> γ} {h₂ : forall (i : ι), (β i) -> γ}, Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f (fun (i : ι) (b : β i) => HMul.hMul.{u3, u3, u3} γ γ γ (instHMul.{u3} γ (MulOneClass.toMul.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3)))) (h₁ i b) (h₂ i b))) (HMul.hMul.{u3, u3, u3} γ γ γ (instHMul.{u3} γ (MulOneClass.toMul.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3)))) (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f h₁) (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f h₂))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.prod_mul Dfinsupp.prod_mulₓ'. -/
 @[simp, to_additive]
 theorem prod_mul [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {f : Π₀ i, β i} {h₁ h₂ : ∀ i, β i → γ} :
@@ -2481,12 +1959,6 @@ theorem prod_mul [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x
 #align dfinsupp.prod_mul Dfinsupp.prod_mul
 #align dfinsupp.sum_add Dfinsupp.sum_add
 
-/- warning: dfinsupp.prod_inv -> Dfinsupp.prod_inv is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))))] [_inst_3 : CommGroup.{u3} γ] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))} {h : forall (i : ι), (β i) -> γ}, Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (fun (i : ι) (x : β i) => _inst_2 i x) (CommGroup.toCommMonoid.{u3} γ _inst_3) f (fun (i : ι) (b : β i) => Inv.inv.{u3} γ (DivInvMonoid.toHasInv.{u3} γ (Group.toDivInvMonoid.{u3} γ (CommGroup.toGroup.{u3} γ _inst_3))) (h i b))) (Inv.inv.{u3} γ (DivInvMonoid.toHasInv.{u3} γ (Group.toDivInvMonoid.{u3} γ (CommGroup.toGroup.{u3} γ _inst_3))) (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (fun (i : ι) (x : β i) => _inst_2 i x) (CommGroup.toCommMonoid.{u3} γ _inst_3) f h))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))] [_inst_3 : CommGroup.{u3} γ] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))} {h : forall (i : ι), (β i) -> γ}, Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (i : ι) (x : β i) => _inst_2 i x) (CommGroup.toCommMonoid.{u3} γ _inst_3) f (fun (i : ι) (b : β i) => Inv.inv.{u3} γ (InvOneClass.toInv.{u3} γ (DivInvOneMonoid.toInvOneClass.{u3} γ (DivisionMonoid.toDivInvOneMonoid.{u3} γ (DivisionCommMonoid.toDivisionMonoid.{u3} γ (CommGroup.toDivisionCommMonoid.{u3} γ _inst_3))))) (h i b))) (Inv.inv.{u3} γ (InvOneClass.toInv.{u3} γ (DivInvOneMonoid.toInvOneClass.{u3} γ (DivisionMonoid.toDivInvOneMonoid.{u3} γ (DivisionCommMonoid.toDivisionMonoid.{u3} γ (CommGroup.toDivisionCommMonoid.{u3} γ _inst_3))))) (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (i : ι) (x : β i) => _inst_2 i x) (CommGroup.toCommMonoid.{u3} γ _inst_3) f h))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.prod_inv Dfinsupp.prod_invₓ'. -/
 @[simp, to_additive]
 theorem prod_inv [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommGroup γ]
     {f : Π₀ i, β i} {h : ∀ i, β i → γ} : (f.Prod fun i b => (h i b)⁻¹) = (f.Prod h)⁻¹ :=
@@ -2494,12 +1966,6 @@ theorem prod_inv [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x
 #align dfinsupp.prod_inv Dfinsupp.prod_inv
 #align dfinsupp.sum_neg Dfinsupp.sum_neg
 
-/- warning: dfinsupp.prod_eq_one -> Dfinsupp.prod_eq_one is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), Zero.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_1 i)))))] [_inst_3 : CommMonoid.{u3} γ] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)} {h : forall (i : ι), (β i) -> γ}, (forall (i : ι), Eq.{succ u3} γ (h i (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) f i)) (OfNat.ofNat.{u3} γ 1 (OfNat.mk.{u3} γ 1 (One.one.{u3} γ (MulOneClass.toHasOne.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3))))))) -> (Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f h) (OfNat.ofNat.{u3} γ 1 (OfNat.mk.{u3} γ 1 (One.one.{u3} γ (MulOneClass.toHasOne.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3)))))))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), Zero.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (_inst_1 i))))] [_inst_3 : CommMonoid.{u3} γ] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)} {h : forall (i : ι), (β i) -> γ}, (forall (i : ι), Eq.{succ u3} γ (h i (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) f i)) (OfNat.ofNat.{u3} γ 1 (One.toOfNat1.{u3} γ (Monoid.toOne.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3))))) -> (Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f h) (OfNat.ofNat.{u3} γ 1 (One.toOfNat1.{u3} γ (Monoid.toOne.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3)))))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.prod_eq_one Dfinsupp.prod_eq_oneₓ'. -/
 @[to_additive]
 theorem prod_eq_one [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {f : Π₀ i, β i} {h : ∀ i, β i → γ} (hyp : ∀ i, h i (f i) = 1) : f.Prod h = 1 :=
@@ -2507,21 +1973,12 @@ theorem prod_eq_one [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0
 #align dfinsupp.prod_eq_one Dfinsupp.prod_eq_one
 #align dfinsupp.sum_eq_zero Dfinsupp.sum_eq_zero
 
-/- warning: dfinsupp.smul_sum -> Dfinsupp.smul_sum is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] {α : Type.{u4}} [_inst_1 : Monoid.{u4} α] [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : AddCommMonoid.{u3} γ] [_inst_5 : DistribMulAction.{u4, u3} α γ _inst_1 (AddCommMonoid.toAddMonoid.{u3} γ _inst_4)] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)} {h : forall (i : ι), (β i) -> γ} {c : α}, Eq.{succ u3} γ (SMul.smul.{u4, u3} α γ (SMulZeroClass.toHasSmul.{u4, u3} α γ (AddZeroClass.toHasZero.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_4))) (DistribSMul.toSmulZeroClass.{u4, u3} α γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_4)) (DistribMulAction.toDistribSMul.{u4, u3} α γ _inst_1 (AddCommMonoid.toAddMonoid.{u3} γ _inst_4) _inst_5))) c (Dfinsupp.sum.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f h)) (Dfinsupp.sum.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f (fun (a : ι) (b : β a) => SMul.smul.{u4, u3} α γ (SMulZeroClass.toHasSmul.{u4, u3} α γ (AddZeroClass.toHasZero.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_4))) (DistribSMul.toSmulZeroClass.{u4, u3} α γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_4)) (DistribMulAction.toDistribSMul.{u4, u3} α γ _inst_1 (AddCommMonoid.toAddMonoid.{u3} γ _inst_4) _inst_5))) c (h a b)))
-but is expected to have type
-  forall {ι : Type.{u2}} {γ : Type.{u4}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u2} ι] {α : Type.{u1}} [_inst_1 : Monoid.{u1} α] [_inst_2 : forall (i : ι), Zero.{u3} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u3} (β i) x (OfNat.ofNat.{u3} (β i) 0 (Zero.toOfNat0.{u3} (β i) (_inst_2 i))))] [_inst_4 : AddCommMonoid.{u4} γ] [_inst_5 : DistribMulAction.{u1, u4} α γ _inst_1 (AddCommMonoid.toAddMonoid.{u4} γ _inst_4)] {f : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)} {h : forall (i : ι), (β i) -> γ} {c : α}, Eq.{succ u4} γ (HSMul.hSMul.{u1, u4, u4} α γ γ (instHSMul.{u1, u4} α γ (SMulZeroClass.toSMul.{u1, u4} α γ (AddMonoid.toZero.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} α γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} α γ _inst_1 (AddCommMonoid.toAddMonoid.{u4} γ _inst_4) _inst_5)))) c (Dfinsupp.sum.{u2, u3, u4} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f h)) (Dfinsupp.sum.{u2, u3, u4} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f (fun (a : ι) (b : β a) => HSMul.hSMul.{u1, u4, u4} α γ γ (instHSMul.{u1, u4} α γ (SMulZeroClass.toSMul.{u1, u4} α γ (AddMonoid.toZero.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} α γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} α γ _inst_1 (AddCommMonoid.toAddMonoid.{u4} γ _inst_4) _inst_5)))) c (h a b)))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.smul_sum Dfinsupp.smul_sumₓ'. -/
 theorem smul_sum {α : Type _} [Monoid α] [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     [AddCommMonoid γ] [DistribMulAction α γ] {f : Π₀ i, β i} {h : ∀ i, β i → γ} {c : α} :
     c • f.Sum h = f.Sum fun a b => c • h a b :=
   Finset.smul_sum
 #align dfinsupp.smul_sum Dfinsupp.smul_sum
 
-/- warning: dfinsupp.prod_add_index -> Dfinsupp.prod_add_index is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.prod_add_index Dfinsupp.prod_add_indexₓ'. -/
 @[to_additive]
 theorem prod_add_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     [CommMonoid γ] {f g : Π₀ i, β i} {h : ∀ i, β i → γ} (h_zero : ∀ i, h i 0 = 1)
@@ -2543,9 +2000,6 @@ theorem prod_add_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decida
 #align dfinsupp.prod_add_index Dfinsupp.prod_add_index
 #align dfinsupp.sum_add_index Dfinsupp.sum_add_index
 
-/- warning: dfinsupp_prod_mem -> dfinsupp_prod_mem is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp_prod_mem dfinsupp_prod_memₓ'. -/
 @[to_additive]
 theorem dfinsupp_prod_mem [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {S : Type _} [SetLike S γ] [SubmonoidClass S γ] (s : S) (f : Π₀ i, β i) (g : ∀ i, β i → γ)
@@ -2554,12 +2008,6 @@ theorem dfinsupp_prod_mem [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x
 #align dfinsupp_prod_mem dfinsupp_prod_mem
 #align dfinsupp_sum_mem dfinsupp_sum_mem
 
-/- warning: dfinsupp.prod_eq_prod_fintype -> Dfinsupp.prod_eq_prod_fintype is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : Fintype.{u1} ι] [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : CommMonoid.{u3} γ] (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) [f : forall (i : ι), (β i) -> γ], (forall (i : ι), Eq.{succ u3} γ (f i (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i))))) (OfNat.ofNat.{u3} γ 1 (OfNat.mk.{u3} γ 1 (One.one.{u3} γ (MulOneClass.toHasOne.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_4))))))) -> (Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 v f) (Finset.prod.{u3, u1} γ ι _inst_4 (Finset.univ.{u1} ι _inst_1) (fun (i : ι) => f i (coeFn.{max 1 (max (succ (max u1 u2)) (succ u1) (succ u2)) (max (succ u1) (succ u2)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u1) (succ u2)} (Equiv.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) (fun (_x : Equiv.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) -> (forall (i : ι), β i)) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) (Dfinsupp.equivFunOnFintype.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i) _inst_1) v i))))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : Fintype.{u1} ι] [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (_inst_2 i))))] [_inst_4 : CommMonoid.{u3} γ] (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) {f : forall (i : ι), (β i) -> γ}, (forall (i : ι), Eq.{succ u3} γ (f i (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (_inst_2 i)))) (OfNat.ofNat.{u3} γ 1 (One.toOfNat1.{u3} γ (Monoid.toOne.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_4))))) -> (Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 v f) (Finset.prod.{u3, u1} γ ι _inst_4 (Finset.univ.{u1} ι _inst_1) (fun (i : ι) => f i (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) => forall (i : ι), β i) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) (Dfinsupp.equivFunOnFintype.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i) _inst_1) v i))))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.prod_eq_prod_fintype Dfinsupp.prod_eq_prod_fintypeₓ'. -/
 @[simp, to_additive]
 theorem prod_eq_prod_fintype [Fintype ι] [∀ i, Zero (β i)] [∀ (i : ι) (x : β i), Decidable (x ≠ 0)]
     [CommMonoid γ] (v : Π₀ i, β i) [f : ∀ i, β i → γ] (hf : ∀ i, f i 0 = 1) :
@@ -2573,12 +2021,6 @@ theorem prod_eq_prod_fintype [Fintype ι] [∀ i, Zero (β i)] [∀ (i : ι) (x
 #align dfinsupp.prod_eq_prod_fintype Dfinsupp.prod_eq_prod_fintype
 #align dfinsupp.sum_eq_sum_fintype Dfinsupp.sum_eq_sum_fintype
 
-/- warning: dfinsupp.sum_add_hom -> Dfinsupp.sumAddHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ], (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) -> (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ], (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) -> (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sum_add_hom Dfinsupp.sumAddHomₓ'. -/
 /--
 When summing over an `add_monoid_hom`, the decidability assumption is not needed, and the result is
 also an `add_monoid_hom`.
@@ -2618,9 +2060,6 @@ def sumAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i
   map_zero' := rfl
 #align dfinsupp.sum_add_hom Dfinsupp.sumAddHom
 
-/- warning: dfinsupp.sum_add_hom_single -> Dfinsupp.sumAddHom_single is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sum_add_hom_single Dfinsupp.sumAddHom_singleₓ'. -/
 @[simp]
 theorem sumAddHom_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i →+ γ) (i)
     (x : β i) : sumAddHom φ (single i x) = φ i x :=
@@ -2637,9 +2076,6 @@ theorem sumAddHom_comp_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f
 #align dfinsupp.sum_add_hom_comp_single Dfinsupp.sumAddHom_comp_single
 -/
 
-/- warning: dfinsupp.sum_add_hom_apply -> Dfinsupp.sumAddHom_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sum_add_hom_apply Dfinsupp.sumAddHom_applyₓ'. -/
 /-- While we didn't need decidable instances to define it, we do to reduce it to a sum -/
 theorem sumAddHom_apply [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     [AddCommMonoid γ] (φ : ∀ i, β i →+ γ) (f : Π₀ i, β i) : sumAddHom φ f = f.Sum fun x => φ x :=
@@ -2654,9 +2090,6 @@ theorem sumAddHom_apply [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decida
   rw [not_not.mp h, AddMonoidHom.map_zero]
 #align dfinsupp.sum_add_hom_apply Dfinsupp.sumAddHom_apply
 
-/- warning: dfinsupp_sum_add_hom_mem -> dfinsupp_sumAddHom_mem is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp_sum_add_hom_mem dfinsupp_sumAddHom_memₓ'. -/
 theorem dfinsupp_sumAddHom_mem [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] {S : Type _}
     [SetLike S γ] [AddSubmonoidClass S γ] (s : S) (f : Π₀ i, β i) (g : ∀ i, β i →+ γ)
     (h : ∀ c, f c ≠ 0 → g c (f c) ∈ s) : Dfinsupp.sumAddHom g f ∈ s := by
@@ -2667,9 +2100,6 @@ theorem dfinsupp_sumAddHom_mem [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] {
     exact h
 #align dfinsupp_sum_add_hom_mem dfinsupp_sumAddHom_mem
 
-/- warning: add_submonoid.supr_eq_mrange_dfinsupp_sum_add_hom -> AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_submonoid.supr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHomₓ'. -/
 /-- The supremum of a family of commutative additive submonoids is equal to the range of
 `dfinsupp.sum_add_hom`; that is, every element in the `supr` can be produced from taking a finite
 number of non-zero elements of `S i`, coercing them to `γ`, and summing them. -/
@@ -2684,9 +2114,6 @@ theorem AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom [AddCommMonoid γ] (S : 
     exact dfinsupp_sumAddHom_mem _ v _ fun i _ => (le_iSup S i : S i ≤ _) (v i).Prop
 #align add_submonoid.supr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom
 
-/- warning: add_submonoid.bsupr_eq_mrange_dfinsupp_sum_add_hom -> AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_submonoid.bsupr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHomₓ'. -/
 /-- The bounded supremum of a family of commutative additive submonoids is equal to the range of
 `dfinsupp.sum_add_hom` composed with `dfinsupp.filter_add_monoid_hom`; that is, every element in the
 bounded `supr` can be produced from taking a finite number of non-zero elements from the `S i` that
@@ -2708,17 +2135,11 @@ theorem AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom (p : ι → Prop) [Decid
     · simp [hp]
 #align add_submonoid.bsupr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom
 
-/- warning: add_submonoid.mem_supr_iff_exists_dfinsupp -> AddSubmonoid.mem_iSup_iff_exists_dfinsupp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_submonoid.mem_supr_iff_exists_dfinsupp AddSubmonoid.mem_iSup_iff_exists_dfinsuppₓ'. -/
 theorem AddSubmonoid.mem_iSup_iff_exists_dfinsupp [AddCommMonoid γ] (S : ι → AddSubmonoid γ)
     (x : γ) : x ∈ iSup S ↔ ∃ f : Π₀ i, S i, Dfinsupp.sumAddHom (fun i => (S i).Subtype) f = x :=
   SetLike.ext_iff.mp (AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom S) x
 #align add_submonoid.mem_supr_iff_exists_dfinsupp AddSubmonoid.mem_iSup_iff_exists_dfinsupp
 
-/- warning: add_submonoid.mem_supr_iff_exists_dfinsupp' -> AddSubmonoid.mem_iSup_iff_exists_dfinsupp' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_submonoid.mem_supr_iff_exists_dfinsupp' AddSubmonoid.mem_iSup_iff_exists_dfinsupp'ₓ'. -/
 /-- A variant of `add_submonoid.mem_supr_iff_exists_dfinsupp` with the RHS fully unfolded. -/
 theorem AddSubmonoid.mem_iSup_iff_exists_dfinsupp' [AddCommMonoid γ] (S : ι → AddSubmonoid γ)
     [∀ (i) (x : S i), Decidable (x ≠ 0)] (x : γ) :
@@ -2729,9 +2150,6 @@ theorem AddSubmonoid.mem_iSup_iff_exists_dfinsupp' [AddCommMonoid γ] (S : ι 
   congr
 #align add_submonoid.mem_supr_iff_exists_dfinsupp' AddSubmonoid.mem_iSup_iff_exists_dfinsupp'
 
-/- warning: add_submonoid.mem_bsupr_iff_exists_dfinsupp -> AddSubmonoid.mem_bsupr_iff_exists_dfinsupp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_submonoid.mem_bsupr_iff_exists_dfinsupp AddSubmonoid.mem_bsupr_iff_exists_dfinsuppₓ'. -/
 theorem AddSubmonoid.mem_bsupr_iff_exists_dfinsupp (p : ι → Prop) [DecidablePred p]
     [AddCommMonoid γ] (S : ι → AddSubmonoid γ) (x : γ) :
     (x ∈ ⨆ (i) (h : p i), S i) ↔
@@ -2741,9 +2159,6 @@ theorem AddSubmonoid.mem_bsupr_iff_exists_dfinsupp (p : ι → Prop) [DecidableP
 
 omit dec
 
-/- warning: dfinsupp.sum_add_hom_comm -> Dfinsupp.sumAddHom_comm is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sum_add_hom_comm Dfinsupp.sumAddHom_commₓ'. -/
 theorem sumAddHom_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂ : ι₂ → Type _} {γ : Type _}
     [DecidableEq ι₁] [DecidableEq ι₂] [∀ i, AddZeroClass (β₁ i)] [∀ i, AddZeroClass (β₂ i)]
     [AddCommMonoid γ] (f₁ : Π₀ i, β₁ i) (f₂ : Π₀ i, β₂ i) (h : ∀ i j, β₁ i →+ β₂ j →+ γ) :
@@ -2758,12 +2173,6 @@ theorem sumAddHom_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂
 
 include dec
 
-/- warning: dfinsupp.lift_add_hom -> Dfinsupp.liftAddHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ], AddEquiv.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ], AddEquiv.{max (max u1 u2) u3, max u3 u2 u1} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)
-Case conversion may be inaccurate. Consider using '#align dfinsupp.lift_add_hom Dfinsupp.liftAddHomₓ'. -/
 /-- The `dfinsupp` version of `finsupp.lift_add_hom`,-/
 @[simps apply symm_apply]
 def liftAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] : (∀ i, β i →+ γ) ≃+ ((Π₀ i, β i) →+ γ)
@@ -2775,9 +2184,6 @@ def liftAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] : (∀ i, β i 
   map_add' F G := by ext; simp
 #align dfinsupp.lift_add_hom Dfinsupp.liftAddHom
 
-/- warning: dfinsupp.lift_add_hom_single_add_hom -> Dfinsupp.liftAddHom_singleAddHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.lift_add_hom_single_add_hom Dfinsupp.liftAddHom_singleAddHomₓ'. -/
 /-- The `dfinsupp` version of `finsupp.lift_add_hom_single_add_hom`,-/
 @[simp]
 theorem liftAddHom_singleAddHom [∀ i, AddCommMonoid (β i)] :
@@ -2785,25 +2191,16 @@ theorem liftAddHom_singleAddHom [∀ i, AddCommMonoid (β i)] :
   liftAddHom.toEquiv.apply_eq_iff_eq_symm_apply.2 rfl
 #align dfinsupp.lift_add_hom_single_add_hom Dfinsupp.liftAddHom_singleAddHom
 
-/- warning: dfinsupp.lift_add_hom_apply_single -> Dfinsupp.liftAddHom_apply_single is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.lift_add_hom_apply_single Dfinsupp.liftAddHom_apply_singleₓ'. -/
 /-- The `dfinsupp` version of `finsupp.lift_add_hom_apply_single`,-/
 theorem liftAddHom_apply_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f : ∀ i, β i →+ γ)
     (i : ι) (x : β i) : liftAddHom f (single i x) = f i x := by simp
 #align dfinsupp.lift_add_hom_apply_single Dfinsupp.liftAddHom_apply_single
 
-/- warning: dfinsupp.lift_add_hom_comp_single -> Dfinsupp.liftAddHom_comp_single is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.lift_add_hom_comp_single Dfinsupp.liftAddHom_comp_singleₓ'. -/
 /-- The `dfinsupp` version of `finsupp.lift_add_hom_comp_single`,-/
 theorem liftAddHom_comp_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f : ∀ i, β i →+ γ)
     (i : ι) : (liftAddHom f).comp (singleAddHom β i) = f i := by simp
 #align dfinsupp.lift_add_hom_comp_single Dfinsupp.liftAddHom_comp_single
 
-/- warning: dfinsupp.comp_lift_add_hom -> Dfinsupp.comp_liftAddHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.comp_lift_add_hom Dfinsupp.comp_liftAddHomₓ'. -/
 /-- The `dfinsupp` version of `finsupp.comp_lift_add_hom`,-/
 theorem comp_liftAddHom {δ : Type _} [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] [AddCommMonoid δ]
     (g : γ →+ δ) (f : ∀ i, β i →+ γ) : g.comp (liftAddHom f) = liftAddHom fun a => g.comp (f a) :=
@@ -2812,56 +2209,29 @@ theorem comp_liftAddHom {δ : Type _} [∀ i, AddZeroClass (β i)] [AddCommMonoi
       rw [lift_add_hom_symm_apply, AddMonoidHom.comp_assoc, lift_add_hom_comp_single]
 #align dfinsupp.comp_lift_add_hom Dfinsupp.comp_liftAddHom
 
-/- warning: dfinsupp.sum_add_hom_zero -> Dfinsupp.sumAddHom_zero is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ], Eq.{max (succ u3) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 (fun (i : ι) => OfNat.ofNat.{max u3 u2} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) 0 (OfNat.mk.{max u3 u2} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) 0 (Zero.zero.{max u3 u2} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.hasZero.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))))) (OfNat.ofNat.{max u3 u1 u2} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) 0 (OfNat.mk.{max u3 u1 u2} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) 0 (Zero.zero.{max u3 u1 u2} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.hasZero.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ], Eq.{max (max (succ u1) (succ u2)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 (fun (i : ι) => OfNat.ofNat.{max u2 u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) 0 (Zero.toOfNat0.{max u2 u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (instZeroAddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)))))) (OfNat.ofNat.{max (max u1 u2) u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) 0 (Zero.toOfNat0.{max (max u1 u2) u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (instZeroAddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sum_add_hom_zero Dfinsupp.sumAddHom_zeroₓ'. -/
 @[simp]
 theorem sumAddHom_zero [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] :
     (sumAddHom fun i => (0 : β i →+ γ)) = 0 :=
   (liftAddHom : (∀ i, β i →+ γ) ≃+ _).map_zero
 #align dfinsupp.sum_add_hom_zero Dfinsupp.sumAddHom_zero
 
-/- warning: dfinsupp.sum_add_hom_add -> Dfinsupp.sumAddHom_add is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (g : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (h : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))), Eq.{max (succ u3) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 (fun (i : ι) => HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (instHAdd.{max u3 u2} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (g i) (h i))) (HAdd.hAdd.{max u3 u1 u2, max u3 u1 u2, max u3 u1 u2} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (instHAdd.{max u3 u1 u2} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 g) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 h))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (g : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (h : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))), Eq.{max (max (succ u1) (succ u2)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 (fun (i : ι) => HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (instHAdd.{max u2 u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (g i) (h i))) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (instHAdd.{max (max u1 u2) u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 g) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 h))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sum_add_hom_add Dfinsupp.sumAddHom_addₓ'. -/
 @[simp]
 theorem sumAddHom_add [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (g : ∀ i, β i →+ γ)
     (h : ∀ i, β i →+ γ) : (sumAddHom fun i => g i + h i) = sumAddHom g + sumAddHom h :=
   liftAddHom.map_add _ _
 #align dfinsupp.sum_add_hom_add Dfinsupp.sumAddHom_add
 
-/- warning: dfinsupp.sum_add_hom_single_add_hom -> Dfinsupp.sumAddHom_singleAddHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)], Eq.{succ (max u1 u2)} (AddMonoidHom.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Dfinsupp.sumAddHom.{u1, u2, max u1 u2} ι (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoidHom.id.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)], Eq.{max (succ u1) (succ u2)} (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Dfinsupp.sumAddHom.{u1, u2, max u1 u2} ι (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoidHom.id.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sum_add_hom_single_add_hom Dfinsupp.sumAddHom_singleAddHomₓ'. -/
 @[simp]
 theorem sumAddHom_singleAddHom [∀ i, AddCommMonoid (β i)] :
     sumAddHom (singleAddHom β) = AddMonoidHom.id _ :=
   liftAddHom_singleAddHom
 #align dfinsupp.sum_add_hom_single_add_hom Dfinsupp.sumAddHom_singleAddHom
 
-/- warning: dfinsupp.comp_sum_add_hom -> Dfinsupp.comp_sumAddHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] {δ : Type.{u4}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] [_inst_3 : AddCommMonoid.{u4} δ] (g : AddMonoidHom.{u3, u4} γ δ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (f : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))), Eq.{max (succ u4) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (AddMonoidHom.comp.{max u1 u2, u3, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3)) g (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 f)) (Dfinsupp.sumAddHom.{u1, u2, u4} ι δ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_3 (fun (a : ι) => AddMonoidHom.comp.{u2, u3, u4} (β a) γ δ (_inst_1 a) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3)) g (f a)))
-but is expected to have type
-  forall {ι : Type.{u2}} {γ : Type.{u4}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u2} ι] {δ : Type.{u1}} [_inst_1 : forall (i : ι), AddZeroClass.{u3} (β i)] [_inst_2 : AddCommMonoid.{u4} γ] [_inst_3 : AddCommMonoid.{u1} δ] (g : AddMonoidHom.{u4, u1} γ δ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (f : forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))), Eq.{max (max (succ u2) (succ u3)) (succ u1)} (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.comp.{max u3 u2, u4, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3)) g (Dfinsupp.sumAddHom.{u2, u3, u4} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 f)) (Dfinsupp.sumAddHom.{u2, u3, u1} ι δ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_3 (fun (a : ι) => AddMonoidHom.comp.{u3, u4, u1} (β a) γ δ (_inst_1 a) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3)) g (f a)))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.comp_sum_add_hom Dfinsupp.comp_sumAddHomₓ'. -/
 theorem comp_sumAddHom {δ : Type _} [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] [AddCommMonoid δ]
     (g : γ →+ δ) (f : ∀ i, β i →+ γ) : g.comp (sumAddHom f) = sumAddHom fun a => g.comp (f a) :=
   comp_liftAddHom _ _
 #align dfinsupp.comp_sum_add_hom Dfinsupp.comp_sumAddHom
 
-/- warning: dfinsupp.sum_sub_index -> Dfinsupp.sum_sub_index is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sum_sub_index Dfinsupp.sum_sub_indexₓ'. -/
 theorem sum_sub_index [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [AddCommGroup γ]
     {f g : Π₀ i, β i} {h : ∀ i, β i → γ} (h_sub : ∀ i b₁ b₂, h i (b₁ - b₂) = h i b₁ - h i b₂) :
     (f - g).Sum h = f.Sum h - g.Sum h :=
@@ -2871,12 +2241,6 @@ theorem sum_sub_index [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x
   exact this
 #align dfinsupp.sum_sub_index Dfinsupp.sum_sub_index
 
-/- warning: dfinsupp.prod_finset_sum_index -> Dfinsupp.prod_finset_sum_index is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] {γ : Type.{u3}} {α : Type.{u4}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))))] [_inst_3 : CommMonoid.{u3} γ] {s : Finset.{u4} α} {g : α -> (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))} {h : forall (i : ι), (β i) -> γ}, (forall (i : ι), Eq.{succ u3} γ (h i (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))))))) (OfNat.ofNat.{u3} γ 1 (OfNat.mk.{u3} γ 1 (One.one.{u3} γ (MulOneClass.toHasOne.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3))))))) -> (forall (i : ι) (b₁ : β i) (b₂ : β i), Eq.{succ u3} γ (h i (HAdd.hAdd.{u2, u2, u2} (β i) (β i) (β i) (instHAdd.{u2} (β i) (AddZeroClass.toHasAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) b₁ b₂)) (HMul.hMul.{u3, u3, u3} γ γ γ (instHMul.{u3} γ (MulOneClass.toHasMul.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3)))) (h i b₁) (h i b₂))) -> (Eq.{succ u3} γ (Finset.prod.{u3, u4} γ α _inst_3 s (fun (i : α) => Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 (g i) h)) (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 (Finset.sum.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) α (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) s (fun (i : α) => g i)) h))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] {γ : Type.{u3}} {α : Type.{u4}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))] [_inst_3 : CommMonoid.{u3} γ] {s : Finset.{u4} α} {g : α -> (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))} {h : forall (i : ι), (β i) -> γ}, (forall (i : ι), Eq.{succ u3} γ (h i (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))))) (OfNat.ofNat.{u3} γ 1 (One.toOfNat1.{u3} γ (Monoid.toOne.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3))))) -> (forall (i : ι) (b₁ : β i) (b₂ : β i), Eq.{succ u3} γ (h i (HAdd.hAdd.{u2, u2, u2} (β i) (β i) (β i) (instHAdd.{u2} (β i) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) b₁ b₂)) (HMul.hMul.{u3, u3, u3} γ γ γ (instHMul.{u3} γ (MulOneClass.toMul.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3)))) (h i b₁) (h i b₂))) -> (Eq.{succ u3} γ (Finset.prod.{u3, u4} γ α _inst_3 s (fun (i : α) => Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 (g i) h)) (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 (Finset.sum.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) α (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) s (fun (i : α) => g i)) h))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.prod_finset_sum_index Dfinsupp.prod_finset_sum_indexₓ'. -/
 @[to_additive]
 theorem prod_finset_sum_index {γ : Type w} {α : Type x} [∀ i, AddCommMonoid (β i)]
     [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ] {s : Finset α} {g : α → Π₀ i, β i}
@@ -2889,9 +2253,6 @@ theorem prod_finset_sum_index {γ : Type w} {α : Type x} [∀ i, AddCommMonoid
 #align dfinsupp.prod_finset_sum_index Dfinsupp.prod_finset_sum_index
 #align dfinsupp.sum_finset_sum_index Dfinsupp.sum_finset_sum_index
 
-/- warning: dfinsupp.prod_sum_index -> Dfinsupp.prod_sum_index is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.prod_sum_index Dfinsupp.prod_sum_indexₓ'. -/
 @[to_additive]
 theorem prod_sum_index {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
     [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)]
@@ -2903,12 +2264,6 @@ theorem prod_sum_index {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ 
 #align dfinsupp.prod_sum_index Dfinsupp.prod_sum_index
 #align dfinsupp.sum_sum_index Dfinsupp.sum_sum_index
 
-/- warning: dfinsupp.sum_single -> Dfinsupp.sum_single is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))))] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))}, Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.sum.{u1, u2, max u1 u2} ι (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (fun (i : ι) (x : β i) => _inst_2 i x) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) f (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))))) f
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))}, Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.sum.{u1, u2, max u1 u2} ι (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (i : ι) (x : β i) => _inst_2 i x) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) f (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) f
-Case conversion may be inaccurate. Consider using '#align dfinsupp.sum_single Dfinsupp.sum_singleₓ'. -/
 @[simp]
 theorem sum_single [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] {f : Π₀ i, β i} :
     f.Sum single = f :=
@@ -2931,21 +2286,12 @@ theorem prod_subtypeDomain_index [∀ i, Zero (β i)] [∀ (i) (x : β i), Decid
 
 omit dec
 
-/- warning: dfinsupp.subtype_domain_sum -> Dfinsupp.subtypeDomain_sum is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {s : Finset.{u3} γ} {h : γ -> (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))} {p : ι -> Prop} [_inst_2 : DecidablePred.{succ u1} ι p], Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) p (fun (a : ι) => _inst_2 a) (Finset.sum.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) γ (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) s (fun (c : γ) => h c))) (Finset.sum.{max u1 u2, u3} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))))) γ (Dfinsupp.addCommMonoid.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i))) s (fun (c : γ) => Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) p (fun (a : ι) => _inst_2 a) (h c)))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {s : Finset.{u3} γ} {h : γ -> (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))} {p : ι -> Prop} [_inst_2 : DecidablePred.{succ u1} ι p], Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_1 (Subtype.val.{succ u1} ι p i))))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) p (fun (a : ι) => _inst_2 a) (Finset.sum.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) γ (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) s (fun (c : γ) => h c))) (Finset.sum.{max u1 u2, u3} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_1 (Subtype.val.{succ u1} ι p i))))) γ (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => _inst_1 (Subtype.val.{succ u1} ι p i))) s (fun (c : γ) => Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) p (fun (a : ι) => _inst_2 a) (h c)))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.subtype_domain_sum Dfinsupp.subtypeDomain_sumₓ'. -/
 theorem subtypeDomain_sum [∀ i, AddCommMonoid (β i)] {s : Finset γ} {h : γ → Π₀ i, β i}
     {p : ι → Prop} [DecidablePred p] :
     (∑ c in s, h c).subtypeDomain p = ∑ c in s, (h c).subtypeDomain p :=
   (subtypeDomainAddMonoidHom β p).map_sum _ s
 #align dfinsupp.subtype_domain_sum Dfinsupp.subtypeDomain_sum
 
-/- warning: dfinsupp.subtype_domain_finsupp_sum -> Dfinsupp.subtypeDomain_finsupp_sum is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align dfinsupp.subtype_domain_finsupp_sum Dfinsupp.subtypeDomain_finsupp_sumₓ'. -/
 theorem subtypeDomain_finsupp_sum {δ : γ → Type x} [DecidableEq γ] [∀ c, Zero (δ c)]
     [∀ (c) (x : δ c), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)] {p : ι → Prop} [DecidablePred p]
     {s : Π₀ c, δ c} {h : ∀ c, δ c → Π₀ i, β i} :
@@ -2967,12 +2313,6 @@ omit dec
 
 variable [∀ i, AddZeroClass (β i)] [∀ i, AddZeroClass (β₁ i)] [∀ i, AddZeroClass (β₂ i)]
 
-/- warning: dfinsupp.map_range_add -> Dfinsupp.mapRange_add is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} {β₂ : ι -> Type.{u3}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u3} (β₂ i)] (f : forall (i : ι), (β₁ i) -> (β₂ i)) (hf : forall (i : ι), Eq.{succ u3} (β₂ i) (f i (OfNat.ofNat.{u2} (β₁ i) 0 (OfNat.mk.{u2} (β₁ i) 0 (Zero.zero.{u2} (β₁ i) (AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i)))))) (OfNat.ofNat.{u3} (β₂ i) 0 (OfNat.mk.{u3} (β₂ i) 0 (Zero.zero.{u3} (β₂ i) (AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i)))))), (forall (i : ι) (x : β₁ i) (y : β₁ i), Eq.{succ u3} (β₂ i) (f i (HAdd.hAdd.{u2, u2, u2} (β₁ i) (β₁ i) (β₁ i) (instHAdd.{u2} (β₁ i) (AddZeroClass.toHasAdd.{u2} (β₁ i) (_inst_2 i))) x y)) (HAdd.hAdd.{u3, u3, u3} (β₂ i) (β₂ i) (β₂ i) (instHAdd.{u3} (β₂ i) (AddZeroClass.toHasAdd.{u3} (β₂ i) (_inst_3 i))) (f i x) (f i y))) -> (forall (g₁ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (g₂ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))), Eq.{succ (max u1 u3)} (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.mapRange.{u1, u2, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i)) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i)) f hf (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i))) g₁ g₂)) (HAdd.hAdd.{max u1 u3, max u1 u3, max u1 u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i))) (instHAdd.{max u1 u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.hasAdd.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i))) (Dfinsupp.mapRange.{u1, u2, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i)) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i)) f hf g₁) (Dfinsupp.mapRange.{u1, u2, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i)) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i)) f hf g₂)))
-but is expected to have type
-  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} {β₂ : ι -> Type.{u3}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u3} (β₂ i)] (f : forall (i : ι), (β₁ i) -> (β₂ i)) (hf : forall (i : ι), Eq.{succ u3} (β₂ i) (f i (OfNat.ofNat.{u2} (β₁ i) 0 (Zero.toOfNat0.{u2} (β₁ i) (AddZeroClass.toZero.{u2} (β₁ i) (_inst_2 i))))) (OfNat.ofNat.{u3} (β₂ i) 0 (Zero.toOfNat0.{u3} (β₂ i) (AddZeroClass.toZero.{u3} (β₂ i) (_inst_3 i))))), (forall (i : ι) (x : β₁ i) (y : β₁ i), Eq.{succ u3} (β₂ i) (f i (HAdd.hAdd.{u2, u2, u2} (β₁ i) (β₁ i) (β₁ i) (instHAdd.{u2} (β₁ i) (AddZeroClass.toAdd.{u2} (β₁ i) (_inst_2 i))) x y)) (HAdd.hAdd.{u3, u3, u3} (β₂ i) (β₂ i) (β₂ i) (instHAdd.{u3} (β₂ i) (AddZeroClass.toAdd.{u3} (β₂ i) (_inst_3 i))) (f i x) (f i y))) -> (forall (g₁ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (g₂ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))), Eq.{max (succ u1) (succ u3)} (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.mapRange.{u1, u2, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β₁ i) (_inst_2 i)) (fun (i : ι) => AddZeroClass.toZero.{u3} (β₂ i) (_inst_3 i)) f hf (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i))) g₁ g₂)) (HAdd.hAdd.{max u1 u3, max u1 u3, max u1 u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u3} (β₂ i) (_inst_3 i))) (instHAdd.{max u1 u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i))) (Dfinsupp.mapRange.{u1, u2, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β₁ i) (_inst_2 i)) (fun (i : ι) => AddZeroClass.toZero.{u3} (β₂ i) (_inst_3 i)) f hf g₁) (Dfinsupp.mapRange.{u1, u2, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β₁ i) (_inst_2 i)) (fun (i : ι) => AddZeroClass.toZero.{u3} (β₂ i) (_inst_3 i)) f hf g₂)))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.map_range_add Dfinsupp.mapRange_addₓ'. -/
 theorem mapRange_add (f : ∀ i, β₁ i → β₂ i) (hf : ∀ i, f i 0 = 0)
     (hf' : ∀ i x y, f i (x + y) = f i x + f i y) (g₁ g₂ : Π₀ i, β₁ i) :
     mapRange f hf (g₁ + g₂) = mapRange f hf g₁ + mapRange f hf g₂ :=
@@ -2981,12 +2321,6 @@ theorem mapRange_add (f : ∀ i, β₁ i → β₂ i) (hf : ∀ i, f i 0 = 0)
   simp only [map_range_apply f, coe_add, Pi.add_apply, hf']
 #align dfinsupp.map_range_add Dfinsupp.mapRange_add
 
-/- warning: dfinsupp.map_range.add_monoid_hom -> Dfinsupp.mapRange.addMonoidHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} {β₂ : ι -> Type.{u3}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u3} (β₂ i)], (forall (i : ι), AddMonoidHom.{u2, u3} (β₁ i) (β₂ i) (_inst_2 i) (_inst_3 i)) -> (AddMonoidHom.{max u1 u2, max u1 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.addZeroClass.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)))
-but is expected to have type
-  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} {β₂ : ι -> Type.{u3}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u3} (β₂ i)], (forall (i : ι), AddMonoidHom.{u2, u3} (β₁ i) (β₂ i) (_inst_2 i) (_inst_3 i)) -> (AddMonoidHom.{max u2 u1, max u3 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.addZeroClass.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.map_range.add_monoid_hom Dfinsupp.mapRange.addMonoidHomₓ'. -/
 /-- `dfinsupp.map_range` as an `add_monoid_hom`. -/
 @[simps apply]
 def mapRange.addMonoidHom (f : ∀ i, β₁ i →+ β₂ i) : (Π₀ i, β₁ i) →+ Π₀ i, β₂ i
@@ -2996,36 +2330,18 @@ def mapRange.addMonoidHom (f : ∀ i, β₁ i →+ β₂ i) : (Π₀ i, β₁ i)
   map_add' := mapRange_add _ _ fun i => (f i).map_add
 #align dfinsupp.map_range.add_monoid_hom Dfinsupp.mapRange.addMonoidHom
 
-/- warning: dfinsupp.map_range.add_monoid_hom_id -> Dfinsupp.mapRange.addMonoidHom_id is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β₂ : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddZeroClass.{u2} (β₂ i)], Eq.{succ (max u1 u2)} (AddMonoidHom.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₂ i) (_inst_3 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₂ i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i))) (Dfinsupp.mapRange.addMonoidHom.{u1, u2, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => AddMonoidHom.id.{u2} (β₂ i) (_inst_3 i))) (AddMonoidHom.id.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₂ i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)))
-but is expected to have type
-  forall {ι : Type.{u1}} {β₂ : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddZeroClass.{u2} (β₂ i)], Eq.{max (succ u1) (succ u2)} (AddMonoidHom.{max u2 u1, max u2 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i))) (Dfinsupp.mapRange.addMonoidHom.{u1, u2, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => AddMonoidHom.id.{u2} (β₂ i) (_inst_3 i))) (AddMonoidHom.id.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.map_range.add_monoid_hom_id Dfinsupp.mapRange.addMonoidHom_idₓ'. -/
 @[simp]
 theorem mapRange.addMonoidHom_id :
     (mapRange.addMonoidHom fun i => AddMonoidHom.id (β₂ i)) = AddMonoidHom.id _ :=
   AddMonoidHom.ext mapRange_id
 #align dfinsupp.map_range.add_monoid_hom_id Dfinsupp.mapRange.addMonoidHom_id
 
-/- warning: dfinsupp.map_range.add_monoid_hom_comp -> Dfinsupp.mapRange.addMonoidHom_comp is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} {β₁ : ι -> Type.{u3}} {β₂ : ι -> Type.{u4}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : forall (i : ι), AddZeroClass.{u3} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u4} (β₂ i)] (f : forall (i : ι), AddMonoidHom.{u3, u4} (β₁ i) (β₂ i) (_inst_2 i) (_inst_3 i)) (f₂ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) (β₁ i) (_inst_1 i) (_inst_2 i)), Eq.{max (succ (max u1 u4)) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, max u1 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u4} (β₂ i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.addZeroClass.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i))) (Dfinsupp.mapRange.addMonoidHom.{u1, u2, u4} ι (fun (i : ι) => β i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_1 i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => AddMonoidHom.comp.{u2, u3, u4} (β i) (β₁ i) (β₂ i) (_inst_1 i) (_inst_2 i) (_inst_3 i) (f i) (f₂ i))) (AddMonoidHom.comp.{max u1 u2, max u1 u3, max u1 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₁ i) (_inst_2 i))) (Dfinsupp.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u4} (β₂ i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.addZeroClass.{u1, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.addZeroClass.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.mapRange.addMonoidHom.{u1, u3, u4} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) f) (Dfinsupp.mapRange.addMonoidHom.{u1, u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_1 i) (fun (i : ι) => _inst_2 i) f₂))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} {β₁ : ι -> Type.{u3}} {β₂ : ι -> Type.{u4}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : forall (i : ι), AddZeroClass.{u3} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u4} (β₂ i)] (f : forall (i : ι), AddMonoidHom.{u3, u4} (β₁ i) (β₂ i) (_inst_2 i) (_inst_3 i)) (f₂ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) (β₁ i) (_inst_1 i) (_inst_2 i)), Eq.{max (max (succ u1) (succ u2)) (succ u4)} (AddMonoidHom.{max u2 u1, max u4 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.addZeroClass.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i))) (Dfinsupp.mapRange.addMonoidHom.{u1, u2, u4} ι (fun (i : ι) => β i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_1 i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => AddMonoidHom.comp.{u2, u3, u4} (β i) (β₁ i) (β₂ i) (_inst_1 i) (_inst_2 i) (_inst_3 i) (f i) (f₂ i))) (AddMonoidHom.comp.{max u2 u1, max u1 u3, max u1 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.addZeroClass.{u1, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.addZeroClass.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.mapRange.addMonoidHom.{u1, u3, u4} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) f) (Dfinsupp.mapRange.addMonoidHom.{u1, u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_1 i) (fun (i : ι) => _inst_2 i) f₂))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.map_range.add_monoid_hom_comp Dfinsupp.mapRange.addMonoidHom_compₓ'. -/
 theorem mapRange.addMonoidHom_comp (f : ∀ i, β₁ i →+ β₂ i) (f₂ : ∀ i, β i →+ β₁ i) :
     (mapRange.addMonoidHom fun i => (f i).comp (f₂ i)) =
       (mapRange.addMonoidHom f).comp (mapRange.addMonoidHom f₂) :=
   AddMonoidHom.ext <| mapRange_comp (fun i x => f i x) (fun i x => f₂ i x) _ _ _
 #align dfinsupp.map_range.add_monoid_hom_comp Dfinsupp.mapRange.addMonoidHom_comp
 
-/- warning: dfinsupp.map_range.add_equiv -> Dfinsupp.mapRange.addEquiv is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} {β₂ : ι -> Type.{u3}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u3} (β₂ i)], (forall (i : ι), AddEquiv.{u2, u3} (β₁ i) (β₂ i) (AddZeroClass.toHasAdd.{u2} (β₁ i) (_inst_2 i)) (AddZeroClass.toHasAdd.{u3} (β₂ i) (_inst_3 i))) -> (AddEquiv.{max u1 u2, max u1 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.hasAdd.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)))
-but is expected to have type
-  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} {β₂ : ι -> Type.{u3}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u3} (β₂ i)], (forall (i : ι), AddEquiv.{u2, u3} (β₁ i) (β₂ i) (AddZeroClass.toAdd.{u2} (β₁ i) (_inst_2 i)) (AddZeroClass.toAdd.{u3} (β₂ i) (_inst_3 i))) -> (AddEquiv.{max u2 u1, max u3 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.instAddDfinsuppToZero.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.map_range.add_equiv Dfinsupp.mapRange.addEquivₓ'. -/
 /-- `dfinsupp.map_range.add_monoid_hom` as an `add_equiv`. -/
 @[simps apply]
 def mapRange.addEquiv (e : ∀ i, β₁ i ≃+ β₂ i) : (Π₀ i, β₁ i) ≃+ Π₀ i, β₂ i :=
@@ -3038,36 +2354,18 @@ def mapRange.addEquiv (e : ∀ i, β₁ i ≃+ β₂ i) : (Π₀ i, β₁ i) ≃
     right_inv := fun x => by rw [← map_range_comp] <;> · simp_rw [AddEquiv.self_comp_symm]; simp }
 #align dfinsupp.map_range.add_equiv Dfinsupp.mapRange.addEquiv
 
-/- warning: dfinsupp.map_range.add_equiv_refl -> Dfinsupp.mapRange.addEquiv_refl is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)], Eq.{succ (max u1 u2)} (AddEquiv.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i))) (Dfinsupp.mapRange.addEquiv.{u1, u2, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => AddEquiv.refl.{u2} (β₁ i) (AddZeroClass.toHasAdd.{u2} (β₁ i) (_inst_2 i)))) (AddEquiv.refl.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)))
-but is expected to have type
-  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)], Eq.{max (succ u1) (succ u2)} (AddEquiv.{max u2 u1, max u2 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i))) (Dfinsupp.mapRange.addEquiv.{u1, u2, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => AddEquiv.refl.{u2} (β₁ i) (AddZeroClass.toAdd.{u2} (β₁ i) (_inst_2 i)))) (AddEquiv.refl.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.map_range.add_equiv_refl Dfinsupp.mapRange.addEquiv_reflₓ'. -/
 @[simp]
 theorem mapRange.addEquiv_refl :
     (mapRange.addEquiv fun i => AddEquiv.refl (β₁ i)) = AddEquiv.refl _ :=
   AddEquiv.ext mapRange_id
 #align dfinsupp.map_range.add_equiv_refl Dfinsupp.mapRange.addEquiv_refl
 
-/- warning: dfinsupp.map_range.add_equiv_trans -> Dfinsupp.mapRange.addEquiv_trans is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} {β₁ : ι -> Type.{u3}} {β₂ : ι -> Type.{u4}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : forall (i : ι), AddZeroClass.{u3} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u4} (β₂ i)] (f : forall (i : ι), AddEquiv.{u2, u3} (β i) (β₁ i) (AddZeroClass.toHasAdd.{u2} (β i) (_inst_1 i)) (AddZeroClass.toHasAdd.{u3} (β₁ i) (_inst_2 i))) (f₂ : forall (i : ι), AddEquiv.{u3, u4} (β₁ i) (β₂ i) (AddZeroClass.toHasAdd.{u3} (β₁ i) (_inst_2 i)) (AddZeroClass.toHasAdd.{u4} (β₂ i) (_inst_3 i))), Eq.{max (succ (max u1 u2)) (succ (max u1 u4))} (AddEquiv.{max u1 u2, max u1 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u4} (β₂ i) (_inst_3 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.hasAdd.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i))) (Dfinsupp.mapRange.addEquiv.{u1, u2, u4} ι (fun (i : ι) => β i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_1 i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => AddEquiv.trans.{u2, u3, u4} (β i) (β₁ i) (β₂ i) (AddZeroClass.toHasAdd.{u2} (β i) (_inst_1 i)) (AddZeroClass.toHasAdd.{u3} (β₁ i) (_inst_2 i)) (AddZeroClass.toHasAdd.{u4} (β₂ i) (_inst_3 i)) (f i) (f₂ i))) (AddEquiv.trans.{max u1 u2, max u1 u3, max u1 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₁ i) (_inst_2 i))) (Dfinsupp.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u4} (β₂ i) (_inst_3 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.hasAdd.{u1, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.hasAdd.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.mapRange.addEquiv.{u1, u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_1 i) (fun (i : ι) => _inst_2 i) f) (Dfinsupp.mapRange.addEquiv.{u1, u3, u4} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) f₂))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} {β₁ : ι -> Type.{u3}} {β₂ : ι -> Type.{u4}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : forall (i : ι), AddZeroClass.{u3} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u4} (β₂ i)] (f : forall (i : ι), AddEquiv.{u2, u3} (β i) (β₁ i) (AddZeroClass.toAdd.{u2} (β i) (_inst_1 i)) (AddZeroClass.toAdd.{u3} (β₁ i) (_inst_2 i))) (f₂ : forall (i : ι), AddEquiv.{u3, u4} (β₁ i) (β₂ i) (AddZeroClass.toAdd.{u3} (β₁ i) (_inst_2 i)) (AddZeroClass.toAdd.{u4} (β₂ i) (_inst_3 i))), Eq.{max (max (succ u1) (succ u2)) (succ u4)} (AddEquiv.{max u2 u1, max u4 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.instAddDfinsuppToZero.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i))) (Dfinsupp.mapRange.addEquiv.{u1, u2, u4} ι (fun (i : ι) => β i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_1 i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => AddEquiv.trans.{u2, u3, u4} (β i) (β₁ i) (β₂ i) (AddZeroClass.toAdd.{u2} (β i) (_inst_1 i)) (AddZeroClass.toAdd.{u3} (β₁ i) (_inst_2 i)) (AddZeroClass.toAdd.{u4} (β₂ i) (_inst_3 i)) (f i) (f₂ i))) (AddEquiv.trans.{max u1 u2, max u1 u3, max u1 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.instAddDfinsuppToZero.{u1, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.instAddDfinsuppToZero.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.mapRange.addEquiv.{u1, u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_1 i) (fun (i : ι) => _inst_2 i) f) (Dfinsupp.mapRange.addEquiv.{u1, u3, u4} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) f₂))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.map_range.add_equiv_trans Dfinsupp.mapRange.addEquiv_transₓ'. -/
 theorem mapRange.addEquiv_trans (f : ∀ i, β i ≃+ β₁ i) (f₂ : ∀ i, β₁ i ≃+ β₂ i) :
     (mapRange.addEquiv fun i => (f i).trans (f₂ i)) =
       (mapRange.addEquiv f).trans (mapRange.addEquiv f₂) :=
   AddEquiv.ext <| mapRange_comp (fun i x => f₂ i x) (fun i x => f i x) _ _ _
 #align dfinsupp.map_range.add_equiv_trans Dfinsupp.mapRange.addEquiv_trans
 
-/- warning: dfinsupp.map_range.add_equiv_symm -> Dfinsupp.mapRange.addEquiv_symm is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} {β₂ : ι -> Type.{u3}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u3} (β₂ i)] (e : forall (i : ι), AddEquiv.{u2, u3} (β₁ i) (β₂ i) (AddZeroClass.toHasAdd.{u2} (β₁ i) (_inst_2 i)) (AddZeroClass.toHasAdd.{u3} (β₂ i) (_inst_3 i))), Eq.{max (succ (max u1 u3)) (succ (max u1 u2))} (AddEquiv.{max u1 u3, max u1 u2} (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.hasAdd.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i))) (AddEquiv.symm.{max u1 u2, max u1 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.hasAdd.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.mapRange.addEquiv.{u1, u2, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) e)) (Dfinsupp.mapRange.addEquiv.{u1, u3, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => AddEquiv.symm.{u2, u3} (β₁ i) (β₂ i) (AddZeroClass.toHasAdd.{u2} (β₁ i) (_inst_2 i)) (AddZeroClass.toHasAdd.{u3} (β₂ i) (_inst_3 i)) (e i)))
-but is expected to have type
-  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} {β₂ : ι -> Type.{u3}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u3} (β₂ i)] (e : forall (i : ι), AddEquiv.{u2, u3} (β₁ i) (β₂ i) (AddZeroClass.toAdd.{u2} (β₁ i) (_inst_2 i)) (AddZeroClass.toAdd.{u3} (β₂ i) (_inst_3 i))), Eq.{max (max (succ u1) (succ u2)) (succ u3)} (AddEquiv.{max u1 u3, max u1 u2} (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i))) (AddEquiv.symm.{max u1 u2, max u1 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.instAddDfinsuppToZero.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.mapRange.addEquiv.{u1, u2, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) e)) (Dfinsupp.mapRange.addEquiv.{u1, u3, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => AddEquiv.symm.{u2, u3} (β₁ i) (β₂ i) (AddZeroClass.toAdd.{u2} (β₁ i) (_inst_2 i)) (AddZeroClass.toAdd.{u3} (β₂ i) (_inst_3 i)) (e i)))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.map_range.add_equiv_symm Dfinsupp.mapRange.addEquiv_symmₓ'. -/
 @[simp]
 theorem mapRange.addEquiv_symm (e : ∀ i, β₁ i ≃+ β₂ i) :
     (mapRange.addEquiv e).symm = mapRange.addEquiv fun i => (e i).symm :=
@@ -3100,9 +2398,6 @@ variable {R S : Type _}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
-/- warning: monoid_hom.map_dfinsupp_prod -> MonoidHom.map_dfinsupp_prod is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align monoid_hom.map_dfinsupp_prod MonoidHom.map_dfinsupp_prodₓ'. -/
 @[simp, to_additive]
 theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R →* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Prod g) = f.Prod fun a b => h (g a b) :=
@@ -3110,12 +2405,6 @@ theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R →* S) (f : Π
 #align monoid_hom.map_dfinsupp_prod MonoidHom.map_dfinsupp_prod
 #align add_monoid_hom.map_dfinsupp_sum AddMonoidHom.map_dfinsupp_sum
 
-/- warning: monoid_hom.coe_dfinsupp_prod -> MonoidHom.coe_dfinsupp_prod is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : Monoid.{u3} R] [_inst_5 : CommMonoid.{u4} S] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))), Eq.{succ (max u3 u4)} (R -> S) (coeFn.{succ (max u4 u3), succ (max u3 u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (Dfinsupp.prod.{u1, u2, max u4 u3} ι (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) _inst_5) f g)) (Dfinsupp.prod.{u1, u2, max u3 u4} ι (R -> S) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (Pi.commMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_5)) f (fun (a : ι) (b : β a) => coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (g a b)))
-but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : Monoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) _inst_5) f g)) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) ᾰ) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (Pi.commMonoid.{u2, u1} R (fun (ᾰ : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) ᾰ) (fun (i : R) => _inst_5)) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (g a b)))
-Case conversion may be inaccurate. Consider using '#align monoid_hom.coe_dfinsupp_prod MonoidHom.coe_dfinsupp_prodₓ'. -/
 @[to_additive]
 theorem coe_dfinsupp_prod [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀ i, β i → R →* S) :
     ⇑(f.Prod g) = f.Prod fun a b => g a b :=
@@ -3123,12 +2412,6 @@ theorem coe_dfinsupp_prod [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀
 #align monoid_hom.coe_dfinsupp_prod MonoidHom.coe_dfinsupp_prod
 #align add_monoid_hom.coe_dfinsupp_sum AddMonoidHom.coe_dfinsupp_sum
 
-/- warning: monoid_hom.dfinsupp_prod_apply -> MonoidHom.dfinsupp_prod_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : Monoid.{u3} R] [_inst_5 : CommMonoid.{u4} S] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) (r : R), Eq.{succ u4} S (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (Dfinsupp.prod.{u1, u2, max u4 u3} ι (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) _inst_5) f g) r) (Dfinsupp.prod.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (g a b) r))
-but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : Monoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) (r : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) _inst_5) f g) r) (Dfinsupp.prod.{u3, u4, u1} ι ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (g a b) r))
-Case conversion may be inaccurate. Consider using '#align monoid_hom.dfinsupp_prod_apply MonoidHom.dfinsupp_prod_applyₓ'. -/
 @[simp, to_additive]
 theorem dfinsupp_prod_apply [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀ i, β i → R →* S)
     (r : R) : (f.Prod g) r = f.Prod fun a b => (g a b) r :=
@@ -3144,18 +2427,12 @@ variable {R S : Type _}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
-/- warning: ring_hom.map_dfinsupp_prod -> RingHom.map_dfinsupp_prod is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_prod RingHom.map_dfinsupp_prodₓ'. -/
 @[simp]
 theorem map_dfinsupp_prod [CommSemiring R] [CommSemiring S] (h : R →+* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Prod g) = f.Prod fun a b => h (g a b) :=
   h.map_prod _ _
 #align ring_hom.map_dfinsupp_prod RingHom.map_dfinsupp_prod
 
-/- warning: ring_hom.map_dfinsupp_sum -> RingHom.map_dfinsupp_sum is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_sum RingHom.map_dfinsupp_sumₓ'. -/
 @[simp]
 theorem map_dfinsupp_sum [NonAssocSemiring R] [NonAssocSemiring S] (h : R →+* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Sum g) = f.Sum fun a b => h (g a b) :=
@@ -3170,9 +2447,6 @@ variable {R S : Type _}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
-/- warning: mul_equiv.map_dfinsupp_prod -> MulEquiv.map_dfinsupp_prod is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align mul_equiv.map_dfinsupp_prod MulEquiv.map_dfinsupp_prodₓ'. -/
 @[simp, to_additive]
 theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R ≃* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Prod g) = f.Prod fun a b => h (g a b) :=
@@ -3191,9 +2465,6 @@ variable {R S : Type _}
 
 open Dfinsupp
 
-/- warning: add_monoid_hom.map_dfinsupp_sum_add_hom -> AddMonoidHom.map_dfinsupp_sumAddHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_hom.map_dfinsupp_sum_add_hom AddMonoidHom.map_dfinsupp_sumAddHomₓ'. -/
 @[simp]
 theorem map_dfinsupp_sumAddHom [AddCommMonoid R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (h : R →+ S) (f : Π₀ i, β i) (g : ∀ i, β i →+ R) :
@@ -3201,9 +2472,6 @@ theorem map_dfinsupp_sumAddHom [AddCommMonoid R] [AddCommMonoid S] [∀ i, AddZe
   congr_fun (comp_liftAddHom h g) f
 #align add_monoid_hom.map_dfinsupp_sum_add_hom AddMonoidHom.map_dfinsupp_sumAddHom
 
-/- warning: add_monoid_hom.dfinsupp_sum_add_hom_apply -> AddMonoidHom.dfinsupp_sumAddHom_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_hom.dfinsupp_sum_add_hom_apply AddMonoidHom.dfinsupp_sumAddHom_applyₓ'. -/
 @[simp]
 theorem dfinsupp_sumAddHom_apply [AddZeroClass R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (f : Π₀ i, β i) (g : ∀ i, β i →+ R →+ S) (r : R) :
@@ -3211,9 +2479,6 @@ theorem dfinsupp_sumAddHom_apply [AddZeroClass R] [AddCommMonoid S] [∀ i, AddZ
   map_dfinsupp_sumAddHom (eval r) f g
 #align add_monoid_hom.dfinsupp_sum_add_hom_apply AddMonoidHom.dfinsupp_sumAddHom_apply
 
-/- warning: add_monoid_hom.coe_dfinsupp_sum_add_hom -> AddMonoidHom.coe_dfinsupp_sumAddHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_hom.coe_dfinsupp_sum_add_hom AddMonoidHom.coe_dfinsupp_sumAddHomₓ'. -/
 theorem coe_dfinsupp_sumAddHom [AddZeroClass R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (f : Π₀ i, β i) (g : ∀ i, β i →+ R →+ S) :
     ⇑(sumAddHom g f) = sumAddHom (fun i => (coeFn R S).comp (g i)) f :=
@@ -3228,9 +2493,6 @@ variable {R S : Type _}
 
 open Dfinsupp
 
-/- warning: ring_hom.map_dfinsupp_sum_add_hom -> RingHom.map_dfinsupp_sumAddHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_sum_add_hom RingHom.map_dfinsupp_sumAddHomₓ'. -/
 @[simp]
 theorem map_dfinsupp_sumAddHom [NonAssocSemiring R] [NonAssocSemiring S] [∀ i, AddZeroClass (β i)]
     (h : R →+* S) (f : Π₀ i, β i) (g : ∀ i, β i →+ R) :
@@ -3246,9 +2508,6 @@ variable {R S : Type _}
 
 open Dfinsupp
 
-/- warning: add_equiv.map_dfinsupp_sum_add_hom -> AddEquiv.map_dfinsupp_sumAddHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_equiv.map_dfinsupp_sum_add_hom AddEquiv.map_dfinsupp_sumAddHomₓ'. -/
 @[simp]
 theorem map_dfinsupp_sumAddHom [AddCommMonoid R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (h : R ≃+ S) (f : Π₀ i, β i) (g : ∀ i, β i →+ R) :
@@ -3277,12 +2536,6 @@ instance Dfinsupp.infinite_of_left {ι : Sort _} {π : ι → Sort _} [∀ i, No
 #align dfinsupp.infinite_of_left Dfinsupp.infinite_of_left
 -/
 
-/- warning: dfinsupp.infinite_of_exists_right -> Dfinsupp.infinite_of_exists_right is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {π : ι -> Type.{u2}} (i : ι) [_inst_1 : Infinite.{succ u2} (π i)] [_inst_2 : forall (i : ι), Zero.{u2} (π i)], Infinite.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => π i) (fun (i : ι) => _inst_2 i))
-but is expected to have type
-  forall {ι : Type.{u2}} {π : ι -> Type.{u1}} (i : ι) [_inst_1 : Infinite.{succ u1} (π i)] [_inst_2 : forall (i : ι), Zero.{u1} (π i)], Infinite.{max (succ u1) (succ u2)} (Dfinsupp.{u2, u1} ι (fun (i : ι) => π i) (fun (i : ι) => _inst_2 i))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.infinite_of_exists_right Dfinsupp.infinite_of_exists_rightₓ'. -/
 /-- See `dfinsupp.infinite_of_right` for this in instance form, with the drawback that
 it needs all `π i` to be infinite. -/
 theorem Dfinsupp.infinite_of_exists_right {ι : Sort _} {π : ι → Sort _} (i : ι) [Infinite (π i)]
Diff
@@ -88,10 +88,7 @@ variable [∀ i, Zero (β i)] [∀ i, Zero (β₁ i)] [∀ i, Zero (β₂ i)]
 
 #print Dfinsupp.funLike /-
 instance funLike : FunLike (Π₀ i, β i) ι β :=
-  ⟨fun f => f.toFun, fun ⟨f₁, s₁⟩ ⟨f₂, s₁⟩ (h : f₁ = f₂) =>
-    by
-    subst h
-    congr ⟩
+  ⟨fun f => f.toFun, fun ⟨f₁, s₁⟩ ⟨f₂, s₁⟩ (h : f₁ = f₂) => by subst h; congr ⟩
 #align dfinsupp.fun_like Dfinsupp.funLike
 -/
 
@@ -183,19 +180,14 @@ theorem mapRange_apply (f : ∀ i, β₁ i → β₂ i) (hf : ∀ i, f i 0 = 0)
 #print Dfinsupp.mapRange_id /-
 @[simp]
 theorem mapRange_id (h : ∀ i, id (0 : β₁ i) = 0 := fun i => rfl) (g : Π₀ i : ι, β₁ i) :
-    mapRange (fun i => (id : β₁ i → β₁ i)) h g = g :=
-  by
-  ext
-  rfl
+    mapRange (fun i => (id : β₁ i → β₁ i)) h g = g := by ext; rfl
 #align dfinsupp.map_range_id Dfinsupp.mapRange_id
 -/
 
 #print Dfinsupp.mapRange_comp /-
 theorem mapRange_comp (f : ∀ i, β₁ i → β₂ i) (f₂ : ∀ i, β i → β₁ i) (hf : ∀ i, f i 0 = 0)
     (hf₂ : ∀ i, f₂ i 0 = 0) (h : ∀ i, (f i ∘ f₂ i) 0 = 0) (g : Π₀ i : ι, β i) :
-    mapRange (fun i => f i ∘ f₂ i) h g = mapRange f hf (mapRange f₂ hf₂ g) :=
-  by
-  ext
+    mapRange (fun i => f i ∘ f₂ i) h g = mapRange f hf (mapRange f₂ hf₂ g) := by ext;
   simp only [map_range_apply]
 #align dfinsupp.map_range_comp Dfinsupp.mapRange_comp
 -/
@@ -203,8 +195,7 @@ theorem mapRange_comp (f : ∀ i, β₁ i → β₂ i) (f₂ : ∀ i, β i → 
 #print Dfinsupp.mapRange_zero /-
 @[simp]
 theorem mapRange_zero (f : ∀ i, β₁ i → β₂ i) (hf : ∀ i, f i 0 = 0) :
-    mapRange f hf (0 : Π₀ i, β₁ i) = 0 := by
-  ext
+    mapRange f hf (0 : Π₀ i, β₁ i) = 0 := by ext;
   simp only [map_range_apply, coe_zero, Pi.zero_apply, hf]
 #align dfinsupp.map_range_zero Dfinsupp.mapRange_zero
 -/
@@ -219,15 +210,9 @@ def zipWith (f : ∀ i, β₁ i → β₂ i → β i) (hf : ∀ i, f i 0 0 = 0)
     refine' y.support'.map fun ys => _
     refine' ⟨xs + ys, fun i => _⟩
     obtain h1 | (h1 : x i = 0) := xs.prop i
-    · left
-      rw [Multiset.mem_add]
-      left
-      exact h1
+    · left; rw [Multiset.mem_add]; left; exact h1
     obtain h2 | (h2 : y i = 0) := ys.prop i
-    · left
-      rw [Multiset.mem_add]
-      right
-      exact h2
+    · left; rw [Multiset.mem_add]; right; exact h2
     right; rw [h1, h2, hf]⟩
 #align dfinsupp.zip_with Dfinsupp.zipWith
 -/
@@ -260,10 +245,7 @@ theorem piecewise_apply (i : ι) : x.piecewise y s i = if i ∈ s then x i else
 
 #print Dfinsupp.coe_piecewise /-
 @[simp, norm_cast]
-theorem coe_piecewise : ⇑(x.piecewise y s) = s.piecewise x y :=
-  by
-  ext
-  apply piecewise_apply
+theorem coe_piecewise : ⇑(x.piecewise y s) = s.piecewise x y := by ext; apply piecewise_apply
 #align dfinsupp.coe_piecewise Dfinsupp.coe_piecewise
 -/
 
@@ -577,9 +559,7 @@ theorem filter_pos_add_filter_neg [∀ i, AddZeroClass (β i)] (f : Π₀ i, β
 #print Dfinsupp.filter_zero /-
 @[simp]
 theorem filter_zero [∀ i, Zero (β i)] (p : ι → Prop) [DecidablePred p] :
-    (0 : Π₀ i, β i).filterₓ p = 0 := by
-  ext
-  simp
+    (0 : Π₀ i, β i).filterₓ p = 0 := by ext; simp
 #align dfinsupp.filter_zero Dfinsupp.filter_zero
 -/
 
@@ -591,10 +571,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align dfinsupp.filter_add Dfinsupp.filter_addₓ'. -/
 @[simp]
 theorem filter_add [∀ i, AddZeroClass (β i)] (p : ι → Prop) [DecidablePred p] (f g : Π₀ i, β i) :
-    (f + g).filterₓ p = f.filterₓ p + g.filterₓ p :=
-  by
-  ext
-  simp [ite_add_zero]
+    (f + g).filterₓ p = f.filterₓ p + g.filterₓ p := by ext; simp [ite_add_zero]
 #align dfinsupp.filter_add Dfinsupp.filter_add
 
 /- warning: dfinsupp.filter_smul -> Dfinsupp.filter_smul is a dubious translation:
@@ -605,9 +582,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align dfinsupp.filter_smul Dfinsupp.filter_smulₓ'. -/
 @[simp]
 theorem filter_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] (p : ι → Prop)
-    [DecidablePred p] (r : γ) (f : Π₀ i, β i) : (r • f).filterₓ p = r • f.filterₓ p :=
-  by
-  ext
+    [DecidablePred p] (r : γ) (f : Π₀ i, β i) : (r • f).filterₓ p = r • f.filterₓ p := by ext;
   simp [smul_ite]
 #align dfinsupp.filter_smul Dfinsupp.filter_smul
 
@@ -1001,19 +976,14 @@ theorem filter_single_neg {p : ι → Prop} [DecidablePred p] (i : ι) (x : β i
 #print Dfinsupp.single_eq_of_sigma_eq /-
 /-- Equality of sigma types is sufficient (but not necessary) to show equality of `dfinsupp`s. -/
 theorem single_eq_of_sigma_eq {i j} {xi : β i} {xj : β j} (h : (⟨i, xi⟩ : Sigma β) = ⟨j, xj⟩) :
-    Dfinsupp.single i xi = Dfinsupp.single j xj :=
-  by
-  cases h
-  rfl
+    Dfinsupp.single i xi = Dfinsupp.single j xj := by cases h; rfl
 #align dfinsupp.single_eq_of_sigma_eq Dfinsupp.single_eq_of_sigma_eq
 -/
 
 #print Dfinsupp.equivFunOnFintype_single /-
 @[simp]
 theorem equivFunOnFintype_single [Fintype ι] (i : ι) (m : β i) :
-    (@Dfinsupp.equivFunOnFintype ι β _ _) (Dfinsupp.single i m) = Pi.single i m :=
-  by
-  ext
+    (@Dfinsupp.equivFunOnFintype ι β _ _) (Dfinsupp.single i m) = Pi.single i m := by ext;
   simp [Dfinsupp.single_eq_pi_single]
 #align dfinsupp.equiv_fun_on_fintype_single Dfinsupp.equivFunOnFintype_single
 -/
@@ -1021,9 +991,7 @@ theorem equivFunOnFintype_single [Fintype ι] (i : ι) (m : β i) :
 #print Dfinsupp.equivFunOnFintype_symm_single /-
 @[simp]
 theorem equivFunOnFintype_symm_single [Fintype ι] (i : ι) (m : β i) :
-    (@Dfinsupp.equivFunOnFintype ι β _ _).symm (Pi.single i m) = Dfinsupp.single i m :=
-  by
-  ext i'
+    (@Dfinsupp.equivFunOnFintype ι β _ _).symm (Pi.single i m) = Dfinsupp.single i m := by ext i';
   simp only [← single_eq_pi_single, equiv_fun_on_fintype_symm_coe]
 #align dfinsupp.equiv_fun_on_fintype_symm_single Dfinsupp.equivFunOnFintype_symm_single
 -/
@@ -1162,9 +1130,7 @@ theorem coe_update : (f.update i b : ∀ i : ι, β i) = Function.update f i b :
 
 #print Dfinsupp.update_self /-
 @[simp]
-theorem update_self : f.update i (f i) = f := by
-  ext
-  simp
+theorem update_self : f.update i (f i) = f := by ext; simp
 #align dfinsupp.update_self Dfinsupp.update_self
 -/
 
@@ -1235,8 +1201,7 @@ Case conversion may be inaccurate. Consider using '#align dfinsupp.single_add Df
 theorem single_add (i : ι) (b₁ b₂ : β i) : single i (b₁ + b₂) = single i b₁ + single i b₂ :=
   ext fun i' => by
     by_cases h : i = i'
-    · subst h
-      simp only [add_apply, single_eq_same]
+    · subst h; simp only [add_apply, single_eq_same]
     · simp only [add_apply, single_eq_of_ne h, zero_add]
 #align dfinsupp.single_add Dfinsupp.single_add
 
@@ -1383,27 +1348,21 @@ protected theorem induction {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (
       Subtype.coe_mk]
     have H2 : ∀ j, j ∈ s ∨ ite (j = i) 0 (f j) = 0 :=
       by
-      intro j
-      cases' H j with H2 H2
+      intro j; cases' H j with H2 H2
       · cases' Multiset.mem_cons.1 H2 with H3 H3
-        · right
-          exact if_pos H3
-        · left
-          exact H3
-      right
-      split_ifs <;> [rfl;exact H2]
+        · right; exact if_pos H3
+        · left; exact H3
+      right; split_ifs <;> [rfl;exact H2]
     have H3 :
       (⟨fun j : ι => ite (j = i) 0 (f j), Trunc.mk ⟨i ::ₘ s, _⟩⟩ : Π₀ i, β i) =
         ⟨fun j : ι => ite (j = i) 0 (f j), Trunc.mk ⟨s, H2⟩⟩ :=
       ext fun _ => rfl
-    rw [H3]
-    apply ih
+    rw [H3]; apply ih
   have H3 : single i _ + _ = (⟨f, Trunc.mk ⟨i ::ₘ s, H⟩⟩ : Π₀ i, β i) := single_add_erase _ _
   rw [← H3]
   change p (single i (f i) + _)
   cases' Classical.em (f i = 0) with h h
-  · rw [h, single_zero, zero_add]
-    exact H2
+  · rw [h, single_zero, zero_add]; exact H2
   refine' ha _ _ _ _ h H2
   rw [erase_same]
 #align dfinsupp.induction Dfinsupp.induction
@@ -1420,8 +1379,7 @@ theorem induction₂ {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (h0 : p
     have h4 : f + single i b = single i b + f :=
       by
       ext j; by_cases H : i = j
-      · subst H
-        simp [h1]
+      · subst H; simp [h1]
       · simp [H]
     Eq.recOn h4 <| ha i b f h1 h2 h3
 #align dfinsupp.induction₂ Dfinsupp.induction₂
@@ -1649,8 +1607,7 @@ theorem support_subset_iff {s : Set ι} {f : Π₀ i, β i} :
 theorem support_single_ne_zero {i : ι} {b : β i} (hb : b ≠ 0) : (single i b).support = {i} :=
   by
   ext j; by_cases h : i = j
-  · subst h
-    simp [hb]
+  · subst h; simp [hb]
   simp [Ne.symm h, h]
 #align dfinsupp.support_single_ne_zero Dfinsupp.support_single_ne_zero
 -/
@@ -1679,11 +1636,7 @@ theorem mapRange_def [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] {f : ∀ i, β
 @[simp]
 theorem mapRange_single {f : ∀ i, β₁ i → β₂ i} {hf : ∀ i, f i 0 = 0} {i : ι} {b : β₁ i} :
     mapRange f hf (single i b) = single i (f i b) :=
-  Dfinsupp.ext fun i' => by
-    by_cases i = i' <;>
-      [·
-        subst i'
-        simp;simp [h, hf]]
+  Dfinsupp.ext fun i' => by by_cases i = i' <;> [· subst i'; simp;simp [h, hf]]
 #align dfinsupp.map_range_single Dfinsupp.mapRange_single
 -/
 
@@ -1720,20 +1673,14 @@ end MapRangeAndZipWith
 
 #print Dfinsupp.erase_def /-
 theorem erase_def (i : ι) (f : Π₀ i, β i) : f.eraseₓ i = mk (f.support.eraseₓ i) fun j => f j.1 :=
-  by
-  ext j
-  by_cases h1 : j = i <;> by_cases h2 : f j ≠ 0 <;> simp at h2 <;> simp [h1, h2]
+  by ext j; by_cases h1 : j = i <;> by_cases h2 : f j ≠ 0 <;> simp at h2 <;> simp [h1, h2]
 #align dfinsupp.erase_def Dfinsupp.erase_def
 -/
 
 #print Dfinsupp.support_erase /-
 @[simp]
-theorem support_erase (i : ι) (f : Π₀ i, β i) : (f.eraseₓ i).support = f.support.eraseₓ i :=
-  by
-  ext j
-  by_cases h1 : j = i
-  simp [h1]
-  by_cases h2 : f j ≠ 0 <;> simp at h2 <;> simp [h1, h2]
+theorem support_erase (i : ι) (f : Π₀ i, β i) : (f.eraseₓ i).support = f.support.eraseₓ i := by
+  ext j; by_cases h1 : j = i; simp [h1]; by_cases h2 : f j ≠ 0 <;> simp at h2 <;> simp [h1, h2]
 #align dfinsupp.support_erase Dfinsupp.support_erase
 -/
 
@@ -1754,8 +1701,7 @@ theorem support_update (f : Π₀ i, β i) (i : ι) (b : β i) [Decidable (b = 0
   by
   ext j
   split_ifs with hb
-  · subst hb
-    simp [update_eq_erase, support_erase]
+  · subst hb; simp [update_eq_erase, support_erase]
   · rw [support_update_ne_zero f _ hb]
 #align dfinsupp.support_update Dfinsupp.support_update
 -/
@@ -1793,9 +1739,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align dfinsupp.support_subtype_domain Dfinsupp.support_subtypeDomainₓ'. -/
 @[simp]
 theorem support_subtypeDomain {f : Π₀ i, β i} : (subtypeDomain p f).support = f.support.Subtype p :=
-  by
-  ext i
-  simp
+  by ext i; simp
 #align dfinsupp.support_subtype_domain Dfinsupp.support_subtypeDomain
 
 end FilterAndSubtypeDomain
@@ -1842,9 +1786,7 @@ instance [∀ i, Zero (β i)] [∀ i, DecidableEq (β i)] : DecidableEq (Π₀ i
           have hf : f i = 0 := by rwa [mem_support_iff, Classical.not_not] at h
           have hg : g i = 0 := by rwa [h₁, mem_support_iff, Classical.not_not] at h
           rw [hf, hg],
-      by
-      rintro rfl
-      simp⟩
+      by rintro rfl; simp⟩
 
 section Equiv
 
@@ -1884,9 +1826,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align dfinsupp.comap_domain_zero Dfinsupp.comapDomain_zeroₓ'. -/
 @[simp]
 theorem comapDomain_zero [∀ i, Zero (β i)] (h : κ → ι) (hh : Function.Injective h) :
-    comapDomain h hh (0 : Π₀ i, β i) = 0 := by
-  ext
-  rw [zero_apply, comap_domain_apply, zero_apply]
+    comapDomain h hh (0 : Π₀ i, β i) = 0 := by ext; rw [zero_apply, comap_domain_apply, zero_apply]
 #align dfinsupp.comap_domain_zero Dfinsupp.comapDomain_zero
 
 /- warning: dfinsupp.comap_domain_add -> Dfinsupp.comapDomain_add is a dubious translation:
@@ -1897,10 +1837,8 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align dfinsupp.comap_domain_add Dfinsupp.comapDomain_addₓ'. -/
 @[simp]
 theorem comapDomain_add [∀ i, AddZeroClass (β i)] (h : κ → ι) (hh : Function.Injective h)
-    (f g : Π₀ i, β i) : comapDomain h hh (f + g) = comapDomain h hh f + comapDomain h hh g :=
-  by
-  ext
-  rw [add_apply, comap_domain_apply, comap_domain_apply, comap_domain_apply, add_apply]
+    (f g : Π₀ i, β i) : comapDomain h hh (f + g) = comapDomain h hh f + comapDomain h hh g := by
+  ext; rw [add_apply, comap_domain_apply, comap_domain_apply, comap_domain_apply, add_apply]
 #align dfinsupp.comap_domain_add Dfinsupp.comapDomain_add
 
 /- warning: dfinsupp.comap_domain_smul -> Dfinsupp.comapDomain_smul is a dubious translation:
@@ -1912,9 +1850,7 @@ Case conversion may be inaccurate. Consider using '#align dfinsupp.comap_domain_
 @[simp]
 theorem comapDomain_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
     (h : κ → ι) (hh : Function.Injective h) (r : γ) (f : Π₀ i, β i) :
-    comapDomain h hh (r • f) = r • comapDomain h hh f :=
-  by
-  ext
+    comapDomain h hh (r • f) = r • comapDomain h hh f := by ext;
   rw [smul_apply, comap_domain_apply, smul_apply, comap_domain_apply]
 #align dfinsupp.comap_domain_smul Dfinsupp.comapDomain_smul
 
@@ -1969,9 +1905,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align dfinsupp.comap_domain'_zero Dfinsupp.comapDomain'_zeroₓ'. -/
 @[simp]
 theorem comapDomain'_zero [∀ i, Zero (β i)] (h : κ → ι) {h' : ι → κ}
-    (hh' : Function.LeftInverse h' h) : comapDomain' h hh' (0 : Π₀ i, β i) = 0 :=
-  by
-  ext
+    (hh' : Function.LeftInverse h' h) : comapDomain' h hh' (0 : Π₀ i, β i) = 0 := by ext;
   rw [zero_apply, comap_domain'_apply, zero_apply]
 #align dfinsupp.comap_domain'_zero Dfinsupp.comapDomain'_zero
 
@@ -1984,9 +1918,7 @@ Case conversion may be inaccurate. Consider using '#align dfinsupp.comap_domain'
 @[simp]
 theorem comapDomain'_add [∀ i, AddZeroClass (β i)] (h : κ → ι) {h' : ι → κ}
     (hh' : Function.LeftInverse h' h) (f g : Π₀ i, β i) :
-    comapDomain' h hh' (f + g) = comapDomain' h hh' f + comapDomain' h hh' g :=
-  by
-  ext
+    comapDomain' h hh' (f + g) = comapDomain' h hh' f + comapDomain' h hh' g := by ext;
   rw [add_apply, comap_domain'_apply, comap_domain'_apply, comap_domain'_apply, add_apply]
 #align dfinsupp.comap_domain'_add Dfinsupp.comapDomain'_add
 
@@ -1999,9 +1931,7 @@ Case conversion may be inaccurate. Consider using '#align dfinsupp.comap_domain'
 @[simp]
 theorem comapDomain'_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
     (h : κ → ι) {h' : ι → κ} (hh' : Function.LeftInverse h' h) (r : γ) (f : Π₀ i, β i) :
-    comapDomain' h hh' (r • f) = r • comapDomain' h hh' f :=
-  by
-  ext
+    comapDomain' h hh' (r • f) = r • comapDomain' h hh' f := by ext;
   rw [smul_apply, comap_domain'_apply, smul_apply, comap_domain'_apply]
 #align dfinsupp.comap_domain'_smul Dfinsupp.comapDomain'_smul
 
@@ -2034,16 +1964,13 @@ def equivCongrLeft [∀ i, Zero (β i)] (h : ι ≃ κ) : (Π₀ i, β i) ≃ Π
   invFun f :=
     mapRange (fun i => Equiv.cast <| congr_arg β <| h.symm_apply_apply i)
       (fun i =>
-        (Equiv.cast_eq_iff_heq _).mpr <| by
-          convert HEq.rfl
+        (Equiv.cast_eq_iff_heq _).mpr <| by convert HEq.rfl;
           repeat' exact (h.symm_apply_apply i).symm)
       (@comapDomain' _ _ _ _ h _ h.left_inv f)
-  left_inv f := by
-    ext i
+  left_inv f := by ext i;
     rw [map_range_apply, comap_domain'_apply, comap_domain'_apply, Equiv.cast_eq_iff_heq,
       h.symm_apply_apply]
-  right_inv f := by
-    ext k
+  right_inv f := by ext k;
     rw [comap_domain'_apply, map_range_apply, comap_domain'_apply, Equiv.cast_eq_iff_heq,
       h.apply_symm_apply]
 #align dfinsupp.equiv_congr_left Dfinsupp.equivCongrLeft
@@ -2116,21 +2043,10 @@ Case conversion may be inaccurate. Consider using '#align dfinsupp.sigma_curry_a
 theorem sigmaCurry_apply [∀ i j, Zero (δ i j)] (f : Π₀ i : Σi, _, δ i.1 i.2) (i : ι) (j : α i) :
     sigmaCurry f i j = f ⟨i, j⟩ := by
   dsimp only [sigma_curry]; by_cases h : f ⟨i, j⟩ = 0
-  · rw [h, mk_apply]
-    split_ifs
-    · rw [mk_apply]
-      split_ifs
-      · exact h
-      · rfl
-    · rfl
-  · rw [mk_of_mem, mk_of_mem]
-    · rfl
-    · rw [mem_preimage, mem_support_to_fun]
-      exact h
-    · rw [mem_image]
-      refine' ⟨⟨i, j⟩, _, rfl⟩
-      rw [mem_support_to_fun]
-      exact h
+  · rw [h, mk_apply]; split_ifs; · rw [mk_apply]; split_ifs; · exact h; · rfl; · rfl
+  · rw [mk_of_mem, mk_of_mem]; · rfl
+    · rw [mem_preimage, mem_support_to_fun]; exact h
+    · rw [mem_image]; refine' ⟨⟨i, j⟩, _, rfl⟩; rw [mem_support_to_fun]; exact h
 #align dfinsupp.sigma_curry_apply Dfinsupp.sigmaCurry_apply
 
 /- warning: dfinsupp.sigma_curry_zero -> Dfinsupp.sigmaCurry_zero is a dubious translation:
@@ -2140,11 +2056,8 @@ but is expected to have type
   forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_1 : forall (i : ι) (j : α i), Zero.{u3} (δ i j)], Eq.{max (max (succ u2) (succ u3)) (succ u1)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) (Dfinsupp.sigmaCurry.{u2, u3, u1} ι (fun (i : ι) => α i) δ _inst_1 (OfNat.ofNat.{max (max u2 u3) u1} (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) 0 (Zero.toOfNat0.{max (max u2 u3) u1} (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i))) (Dfinsupp.instZeroDfinsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))))) (OfNat.ofNat.{max (max u2 u3) u1} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) 0 (Zero.toOfNat0.{max (max u2 u3) u1} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1))) (Dfinsupp.instZeroDfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_1 i i_1)))))
 Case conversion may be inaccurate. Consider using '#align dfinsupp.sigma_curry_zero Dfinsupp.sigmaCurry_zeroₓ'. -/
 @[simp]
-theorem sigmaCurry_zero [∀ i j, Zero (δ i j)] : sigmaCurry (0 : Π₀ i : Σi, _, δ i.1 i.2) = 0 :=
-  by
-  ext (i j)
-  rw [sigma_curry_apply]
-  rfl
+theorem sigmaCurry_zero [∀ i j, Zero (δ i j)] : sigmaCurry (0 : Π₀ i : Σi, _, δ i.1 i.2) = 0 := by
+  ext (i j); rw [sigma_curry_apply]; rfl
 #align dfinsupp.sigma_curry_zero Dfinsupp.sigmaCurry_zero
 
 /- warning: dfinsupp.sigma_curry_add -> Dfinsupp.sigmaCurry_add is a dubious translation:
@@ -2303,12 +2216,8 @@ noncomputable def sigmaCurryEquiv [∀ i j, Zero (δ i j)] [∀ i, DecidableEq (
     where
   toFun := sigmaCurry
   invFun := sigmaUncurry
-  left_inv f := by
-    ext ⟨i, j⟩
-    rw [sigma_uncurry_apply, sigma_curry_apply]
-  right_inv f := by
-    ext (i j)
-    rw [sigma_curry_apply, sigma_uncurry_apply]
+  left_inv f := by ext ⟨i, j⟩; rw [sigma_uncurry_apply, sigma_curry_apply]
+  right_inv f := by ext (i j); rw [sigma_curry_apply, sigma_uncurry_apply]
 #align dfinsupp.sigma_curry_equiv Dfinsupp.sigmaCurryEquiv
 -/
 
@@ -2446,9 +2355,7 @@ theorem prod_mapRange_index {β₁ : ι → Type v₁} {β₂ : ι → Type v₂
   rw [map_range_def]
   refine' (Finset.prod_subset support_mk_subset _).trans _
   · intro i h1 h2
-    dsimp
-    simp [h1] at h2
-    dsimp at h2
+    dsimp; simp [h1] at h2; dsimp at h2
     simp [h1, h2, h0]
   · refine' Finset.prod_congr rfl _
     intro i h1
@@ -2481,9 +2388,7 @@ theorem prod_single_index [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x
   by
   by_cases h : b ≠ 0
   · simp [Dfinsupp.prod, support_single_ne_zero h]
-  · rw [Classical.not_not] at h
-    simp [h, prod_zero_index, h_zero]
-    rfl
+  · rw [Classical.not_not] at h; simp [h, prod_zero_index, h_zero]; rfl
 #align dfinsupp.prod_single_index Dfinsupp.prod_single_index
 #align dfinsupp.sum_single_index Dfinsupp.sum_single_index
 
@@ -2690,14 +2595,11 @@ def sumAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i
       refine'
         (Finset.sum_subset H1 _).symm.trans
           ((Finset.sum_congr rfl _).trans (Finset.sum_subset H2 _))
-      · intro i H1 H2
-        rw [Finset.mem_inter] at H2
+      · intro i H1 H2; rw [Finset.mem_inter] at H2
         simp only [Multiset.mem_toFinset] at H1 H2
         rw [(hy i).resolve_left (mt (And.intro H1) H2), AddMonoidHom.map_zero]
-      · intro i H1
-        rfl
-      · intro i H1 H2
-        rw [Finset.mem_inter] at H2
+      · intro i H1; rfl
+      · intro i H1 H2; rw [Finset.mem_inter] at H2
         simp only [Multiset.mem_toFinset] at H1 H2
         rw [(hx i).resolve_left (mt (fun H3 => And.intro H3 H1) H2), AddMonoidHom.map_zero]
   map_add' := by
@@ -2706,18 +2608,12 @@ def sumAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i
     simp only [coe_add, coe_mk', Subtype.coe_mk, Pi.add_apply, map_add, Finset.sum_add_distrib]
     congr 1
     · refine' (Finset.sum_subset _ _).symm
-      · intro i
-        simp only [Multiset.mem_toFinset, Multiset.mem_add]
-        exact Or.inl
-      · intro i H1 H2
-        simp only [Multiset.mem_toFinset, Multiset.mem_add] at H2
+      · intro i; simp only [Multiset.mem_toFinset, Multiset.mem_add]; exact Or.inl
+      · intro i H1 H2; simp only [Multiset.mem_toFinset, Multiset.mem_add] at H2
         rw [(hf i).resolve_left H2, AddMonoidHom.map_zero]
     · refine' (Finset.sum_subset _ _).symm
-      · intro i
-        simp only [Multiset.mem_toFinset, Multiset.mem_add]
-        exact Or.inr
-      · intro i H1 H2
-        simp only [Multiset.mem_toFinset, Multiset.mem_add] at H2
+      · intro i; simp only [Multiset.mem_toFinset, Multiset.mem_add]; exact Or.inr
+      · intro i H1 H2; simp only [Multiset.mem_toFinset, Multiset.mem_add] at H2
         rw [(hg i).resolve_left H2, AddMonoidHom.map_zero]
   map_zero' := rfl
 #align dfinsupp.sum_add_hom Dfinsupp.sumAddHom
@@ -2874,15 +2770,9 @@ def liftAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] : (∀ i, β i 
     where
   toFun := sumAddHom
   invFun F i := F.comp (singleAddHom β i)
-  left_inv x := by
-    ext
-    simp
-  right_inv ψ := by
-    ext
-    simp
-  map_add' F G := by
-    ext
-    simp
+  left_inv x := by ext; simp
+  right_inv ψ := by ext; simp
+  map_add' F G := by ext; simp
 #align dfinsupp.lift_add_hom Dfinsupp.liftAddHom
 
 /- warning: dfinsupp.lift_add_hom_single_add_hom -> Dfinsupp.liftAddHom_singleAddHom is a dubious translation:
@@ -3144,14 +3034,8 @@ def mapRange.addEquiv (e : ∀ i, β₁ i ≃+ β₂ i) : (Π₀ i, β₁ i) ≃
       (e i).toAddMonoidHom with
     toFun := mapRange (fun i x => e i x) fun i => (e i).map_zero
     invFun := mapRange (fun i x => (e i).symm x) fun i => (e i).symm.map_zero
-    left_inv := fun x => by
-      rw [← map_range_comp] <;>
-        · simp_rw [AddEquiv.symm_comp_self]
-          simp
-    right_inv := fun x => by
-      rw [← map_range_comp] <;>
-        · simp_rw [AddEquiv.self_comp_symm]
-          simp }
+    left_inv := fun x => by rw [← map_range_comp] <;> · simp_rw [AddEquiv.symm_comp_self]; simp
+    right_inv := fun x => by rw [← map_range_comp] <;> · simp_rw [AddEquiv.self_comp_symm]; simp }
 #align dfinsupp.map_range.add_equiv Dfinsupp.mapRange.addEquiv
 
 /- warning: dfinsupp.map_range.add_equiv_refl -> Dfinsupp.mapRange.addEquiv_refl is a dubious translation:
Diff
@@ -418,20 +418,14 @@ instance [∀ i, AddGroup (β i)] : Sub (Π₀ i, β i) :=
   ⟨zipWith (fun _ => Sub.sub) fun _ => sub_zero 0⟩
 
 /- warning: dfinsupp.sub_apply -> Dfinsupp.sub_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] (g₁ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (g₂ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (i : ι), Eq.{succ u2} (β i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.hasSub.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) g₁ g₂) i) (HSub.hSub.{u2, u2, u2} (β i) (β i) (β i) (instHSub.{u2} (β i) (SubNegMonoid.toHasSub.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i)))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) g₁ i) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) g₂ i))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] (g₁ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (g₂ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (i : ι), Eq.{succ u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) g₁ g₂) i) (HSub.hSub.{u2, u2, u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => (fun (i : ι) => β i) i) i) ((fun (i : ι) => (fun (i : ι) => β i) i) i) (instHSub.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (SubNegMonoid.toSub.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (_inst_1 i)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) g₁ i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) g₂ i))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.sub_apply Dfinsupp.sub_applyₓ'. -/
 theorem sub_apply [∀ i, AddGroup (β i)] (g₁ g₂ : Π₀ i, β i) (i : ι) : (g₁ - g₂) i = g₁ i - g₂ i :=
   rfl
 #align dfinsupp.sub_apply Dfinsupp.sub_apply
 
 /- warning: dfinsupp.coe_sub -> Dfinsupp.coe_sub is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] (g₁ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (g₂ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))), Eq.{succ (max u1 u2)} (forall (i : ι), β i) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.hasSub.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) g₁ g₂)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (forall (i : ι), β i) (forall (i : ι), β i) (forall (i : ι), β i) (instHSub.{max u1 u2} (forall (i : ι), β i) (Pi.instSub.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => SubNegMonoid.toHasSub.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i))))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) g₁) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) g₂))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] (g₁ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (g₂ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))), Eq.{max (succ u1) (succ u2)} (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) g₁ g₂)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (instHSub.{max u1 u2} (forall (i : ι), (fun (i : ι) => (fun (i : ι) => β i) i) i) (Pi.instSub.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) i) (fun (i : ι) => SubNegMonoid.toSub.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => (fun (i : ι) => β i) i) i) (_inst_1 i))))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) g₁) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) i)) g₂))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.coe_sub Dfinsupp.coe_subₓ'. -/
 @[simp]
 theorem coe_sub [∀ i, AddGroup (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g₁ - g₂) = g₁ - g₂ :=
@@ -707,10 +701,7 @@ theorem subtypeDomain_apply [∀ i, Zero (β i)] {p : ι → Prop} [DecidablePre
 -/
 
 /- warning: dfinsupp.subtype_domain_add -> Dfinsupp.subtypeDomain_add is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] {p : ι -> Prop} [_inst_2 : DecidablePred.{succ u1} ι p] (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (v' : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) p (fun (a : ι) => _inst_2 a) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) v v')) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))) (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))) (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))) (Dfinsupp.hasAdd.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) p (fun (a : ι) => _inst_2 a) v) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) p (fun (a : ι) => _inst_2 a) v'))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] {p : ι -> Prop} [_inst_2 : DecidablePred.{succ u1} ι p] (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (v' : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_1 (Subtype.val.{succ u1} ι p i)))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) p (fun (a : ι) => _inst_2 a) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) v v')) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_1 (Subtype.val.{succ u1} ι p i)))) (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_1 (Subtype.val.{succ u1} ι p i)))) (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_1 (Subtype.val.{succ u1} ι p i)))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_1 (Subtype.val.{succ u1} ι p i)))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => _inst_1 (Subtype.val.{succ u1} ι p i)))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) p (fun (a : ι) => _inst_2 a) v) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) p (fun (a : ι) => _inst_2 a) v'))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.subtype_domain_add Dfinsupp.subtypeDomain_addₓ'. -/
 @[simp]
 theorem subtypeDomain_add [∀ i, AddZeroClass (β i)] {p : ι → Prop} [DecidablePred p]
@@ -768,10 +759,7 @@ def subtypeDomainLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, M
 variable {γ β}
 
 /- warning: dfinsupp.subtype_domain_neg -> Dfinsupp.subtypeDomain_neg is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] {p : ι -> Prop} [_inst_2 : DecidablePred.{succ u1} ι p] {v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))}, Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i))))))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.hasNeg.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) v)) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i))))))) (Dfinsupp.hasNeg.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) v))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] {p : ι -> Prop} [_inst_2 : DecidablePred.{succ u1} ι p] {v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))}, Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_1 (Subtype.val.{succ u1} ι p i))))))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.instNegDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) v)) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_1 (Subtype.val.{succ u1} ι p i))))))) (Dfinsupp.instNegDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => _inst_1 (Subtype.val.{succ u1} ι p i))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) v))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.subtype_domain_neg Dfinsupp.subtypeDomain_negₓ'. -/
 @[simp]
 theorem subtypeDomain_neg [∀ i, AddGroup (β i)] {p : ι → Prop} [DecidablePred p] {v : Π₀ i, β i} :
@@ -780,10 +768,7 @@ theorem subtypeDomain_neg [∀ i, AddGroup (β i)] {p : ι → Prop} [DecidableP
 #align dfinsupp.subtype_domain_neg Dfinsupp.subtypeDomain_neg
 
 /- warning: dfinsupp.subtype_domain_sub -> Dfinsupp.subtypeDomain_sub is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] {p : ι -> Prop} [_inst_2 : DecidablePred.{succ u1} ι p] {v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))} {v' : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))}, Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i))))))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.hasSub.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) v v')) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i))))))) (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i))))))) (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i))))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i))))))) (Dfinsupp.hasSub.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) v) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) v'))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] {p : ι -> Prop} [_inst_2 : DecidablePred.{succ u1} ι p] {v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))} {v' : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))}, Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_1 (Subtype.val.{succ u1} ι p i))))))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) v v')) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_1 (Subtype.val.{succ u1} ι p i))))))) (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_1 (Subtype.val.{succ u1} ι p i))))))) (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_1 (Subtype.val.{succ u1} ι p i))))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_1 (Subtype.val.{succ u1} ι p i))))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => _inst_1 (Subtype.val.{succ u1} ι p i)))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) v) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) p (fun (a : ι) => _inst_2 a) v'))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.subtype_domain_sub Dfinsupp.subtypeDomain_subₓ'. -/
 @[simp]
 theorem subtypeDomain_sub [∀ i, AddGroup (β i)] {p : ι → Prop} [DecidablePred p]
@@ -1225,10 +1210,7 @@ theorem update_eq_erase_add_single {β : ι → Type _} [∀ i, AddZeroClass (β
 #align dfinsupp.update_eq_erase_add_single Dfinsupp.update_eq_erase_add_single
 
 /- warning: dfinsupp.update_eq_sub_add_single -> Dfinsupp.update_eq_sub_add_single is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {β : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddGroup.{u2} (β i)] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (i : ι) (b : β i), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.update.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) i f b) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.hasSub.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i))) f (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) i (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))))) f i))) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) i b))
-but is expected to have type
-  forall {ι : Type.{u2}} [dec : DecidableEq.{succ u2} ι] {β : ι -> Type.{u1}} [_inst_2 : forall (i : ι), AddGroup.{u1} (β i)] (f : Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (i : ι) (b : β i), Eq.{max (succ u2) (succ u1)} (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.update.{u2, u1} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i))))) i f b) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u1} (β i) (SubNegZeroMonoid.toNegZeroClass.{u1} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} (β i) (AddGroup.toSubtractionMonoid.{u1} (β i) (_inst_2 i)))))) (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (instHAdd.{max u2 u1} (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.instAddDfinsuppToZero.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u1} (β i) (SubNegMonoid.toAddMonoid.{u1} (β i) (AddGroup.toSubNegMonoid.{u1} (β i) (_inst_2 i)))))) (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u1} (β i) (SubNegZeroMonoid.toNegZeroClass.{u1} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} (β i) (AddGroup.toSubtractionMonoid.{u1} (β i) (_inst_2 i)))))) (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (instHSub.{max u2 u1} (Dfinsupp.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i)))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u2, u1} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i))) f (Dfinsupp.single.{u2, u1} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u1} (β i) (SubNegZeroMonoid.toNegZeroClass.{u1} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} (β i) (AddGroup.toSubtractionMonoid.{u1} (β i) (_inst_2 i))))) i (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (Dfinsupp.{u2, u1} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i))))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u2, u1} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => NegZeroClass.toZero.{u1} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u1} ((fun (i : ι) => β i) i) (_inst_2 i))))) i)) f i))) (Dfinsupp.single.{u2, u1} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u1} (β i) (SubNegZeroMonoid.toNegZeroClass.{u1} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} (β i) (AddGroup.toSubtractionMonoid.{u1} (β i) (_inst_2 i))))) i b))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.update_eq_sub_add_single Dfinsupp.update_eq_sub_add_singleₓ'. -/
 theorem update_eq_sub_add_single {β : ι → Type _} [∀ i, AddGroup (β i)] (f : Π₀ i, β i) (i : ι)
     (b : β i) : f.update i b = f - single i (f i) + single i b := by
@@ -1462,10 +1444,7 @@ theorem add_closure_iUnion_range_single :
 #align dfinsupp.add_closure_Union_range_single Dfinsupp.add_closure_iUnion_range_single
 
 /- warning: dfinsupp.add_hom_ext -> Dfinsupp.addHom_ext is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddZeroClass.{u3} γ] {{f : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2}} {{g : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2}}, (forall (i : ι) (y : β i), Eq.{succ u3} γ (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) f (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i)) i y)) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) g (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i)) i y))) -> (Eq.{max (succ u3) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) f g)
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddZeroClass.{u3} γ] {{f : AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2}} {{g : AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2}}, (forall (i : ι) (y : β i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i y)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u3} γ _inst_2) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2 (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2))) f (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i y)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u3} γ _inst_2) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2 (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2))) g (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i y))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) f g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.add_hom_ext Dfinsupp.addHom_extₓ'. -/
 /-- If two additive homomorphisms from `Π₀ i, β i` are equal on each `single a b`, then
 they are equal. -/
@@ -1497,10 +1476,7 @@ theorem addHom_ext' {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →
 end AddMonoid
 
 /- warning: dfinsupp.mk_add -> Dfinsupp.mk_add is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] {s : Finset.{u1} ι} {x : forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)} {y : forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)}, Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.mk.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i)) s (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (instHAdd.{max u1 u2} (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (Pi.instAdd.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => AddZeroClass.toHasAdd.{u2} (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i))))) x y)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.mk.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i)) s x) (Dfinsupp.mk.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i)) s y))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] {s : Finset.{u1} ι} {x : forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)} {y : forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)}, Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.mk.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i)) s (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (instHAdd.{max u1 u2} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (Pi.instAdd.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddZeroClass.toAdd.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))) x y)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.mk.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i)) s x) (Dfinsupp.mk.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} (β i) (_inst_1 i)) s y))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.mk_add Dfinsupp.mk_addₓ'. -/
 @[simp]
 theorem mk_add [∀ i, AddZeroClass (β i)] {s : Finset ι} {x y : ∀ i : (↑s : Set ι), β i} :
@@ -1516,10 +1492,7 @@ theorem mk_zero [∀ i, Zero (β i)] {s : Finset ι} : mk s (0 : ∀ i : (↑s :
 -/
 
 /- warning: dfinsupp.mk_neg -> Dfinsupp.mk_neg is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] {s : Finset.{u1} ι} {x : forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)}, Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i)))))) (Dfinsupp.mk.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i))))) s (Neg.neg.{max u1 u2} (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (Pi.instNeg.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => SubNegMonoid.toHasNeg.{u2} (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (AddGroup.toSubNegMonoid.{u2} (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i))))) x)) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i)))))) (Dfinsupp.hasNeg.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.mk.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i))))) s x))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] {s : Finset.{u1} ι} {x : forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)}, Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_1 i)))))) (Dfinsupp.mk.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_1 i))))) s (Neg.neg.{max u1 u2} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (Pi.instNeg.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => NegZeroClass.toNeg.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (SubNegZeroMonoid.toNegZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddGroup.toSubtractionMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))))) x)) (Neg.neg.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_1 i)))))) (Dfinsupp.instNegDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.mk.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_1 i))))) s x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.mk_neg Dfinsupp.mk_negₓ'. -/
 @[simp]
 theorem mk_neg [∀ i, AddGroup (β i)] {s : Finset ι} {x : ∀ i : (↑s : Set ι), β i.1} :
@@ -1528,10 +1501,7 @@ theorem mk_neg [∀ i, AddGroup (β i)] {s : Finset ι} {x : ∀ i : (↑s : Set
 #align dfinsupp.mk_neg Dfinsupp.mk_neg
 
 /- warning: dfinsupp.mk_sub -> Dfinsupp.mk_sub is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] {s : Finset.{u1} ι} {x : forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)} {y : forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) i)}, Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i)))))) (Dfinsupp.mk.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i))))) s (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (instHSub.{max u1 u2} (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (Pi.instSub.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => SubNegMonoid.toHasSub.{u2} (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (AddGroup.toSubNegMonoid.{u2} (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)))))) x y)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i)))))) (Dfinsupp.hasSub.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.mk.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i))))) s x) (Dfinsupp.mk.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i))))) s y))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] {s : Finset.{u1} ι} {x : forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)} {y : forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)}, Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_1 i)))))) (Dfinsupp.mk.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_1 i))))) s (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (instHSub.{max u1 u2} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (Pi.instSub.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => SubNegMonoid.toSub.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddGroup.toSubNegMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)))))) x y)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_1 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_1 i)))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.mk.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_1 i))))) s x) (Dfinsupp.mk.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_1 i))))) s y))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.mk_sub Dfinsupp.mk_subₓ'. -/
 @[simp]
 theorem mk_sub [∀ i, AddGroup (β i)] {s : Finset ι} {x y : ∀ i : (↑s : Set ι), β i.1} :
@@ -1540,10 +1510,7 @@ theorem mk_sub [∀ i, AddGroup (β i)] {s : Finset ι} {x y : ∀ i : (↑s : S
 #align dfinsupp.mk_sub Dfinsupp.mk_sub
 
 /- warning: dfinsupp.mk_add_group_hom -> Dfinsupp.mkAddGroupHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] (s : Finset.{u1} ι), AddMonoidHom.{max u1 u2, max u1 u2} (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i)))))) (Pi.addZeroClass.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => AddMonoid.toAddZeroClass.{u2} (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (SubNegMonoid.toAddMonoid.{u2} (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (AddGroup.toSubNegMonoid.{u2} (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i)))))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] (s : Finset.{u1} ι), AddMonoidHom.{max u1 u2, max u2 u1} (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Pi.addZeroClass.{u1, u2} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (SubNegMonoid.toAddMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddGroup.toSubNegMonoid.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_1 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.mk_add_group_hom Dfinsupp.mkAddGroupHomₓ'. -/
 /-- If `s` is a subset of `ι` then `mk_add_group_hom s` is the canonical additive
 group homomorphism from $\prod_{i\in s}\beta_i$ to $\prod_{\mathtt{i : \iota}}\beta_i.$-/
@@ -1559,10 +1526,7 @@ section
 variable [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
 
 /- warning: dfinsupp.mk_smul -> Dfinsupp.mk_smul is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : ι), AddMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), DistribMulAction.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] {s : Finset.{u1} ι} (c : γ) (x : forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (_inst_2 i)))) (Dfinsupp.mk.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (_inst_2 i))) s (SMul.smul.{u3, max u1 u2} γ (forall (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)), β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (Pi.instSMul.{u1, u2, u3} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) γ (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) => SMulZeroClass.toHasSmul.{u3, u2} γ (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (AddZeroClass.toHasZero.{u2} (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (AddMonoid.toAddZeroClass.{u2} (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (_inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)))) (DistribSMul.toSmulZeroClass.{u3, u2} γ (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (AddMonoid.toAddZeroClass.{u2} (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (_inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i))) (DistribMulAction.toDistribSMul.{u3, u2} γ (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) _inst_1 (_inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)) (_inst_3 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} ι) Type.{u1} (Set.hasCoeToSort.{u1} ι) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)) ι (coeSubtype.{succ u1} ι (fun (x : ι) => Membership.Mem.{u1, u1} ι (Set.{u1} ι) (Set.hasMem.{u1} ι) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} ι) (Set.{u1} ι) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} ι) (Set.{u1} ι) (Finset.Set.hasCoeT.{u1} ι))) s)))))) i)))))) c x)) (SMul.smul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (_inst_2 i)))) (Dfinsupp.hasSmul.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) c (Dfinsupp.mk.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (_inst_2 i))) s x))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : ι), AddMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), DistribMulAction.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] {s : Finset.{u1} ι} (c : γ) (x : forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} (β i) (_inst_2 i))) (Dfinsupp.mk.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} (β i) (_inst_2 i)) s (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (instHSMul.{u3, max u1 u2} γ (forall (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)), β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (Pi.instSMul.{u1, u2, u3} (Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) γ (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (fun (i : Set.Elem.{u1} ι (Finset.toSet.{u1} ι s)) => SMulZeroClass.toSMul.{u3, u2} γ (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddMonoid.toZero.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_2 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))) (DistribSMul.toSMulZeroClass.{u3, u2} γ (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (AddMonoid.toAddZeroClass.{u2} (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_2 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))) (DistribMulAction.toDistribSMul.{u3, u2} γ (β (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) _inst_1 (_inst_2 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i)) (_inst_3 (Subtype.val.{succ u1} ι (fun (x : ι) => Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) x (Finset.toSet.{u1} ι s)) i))))))) c x)) (HSMul.hSMul.{u3, max u2 u1, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} (β i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} (β i) (_inst_2 i))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} (β i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i))) c (Dfinsupp.mk.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} (β i) (_inst_2 i)) s x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.mk_smul Dfinsupp.mk_smulₓ'. -/
 @[simp]
 theorem mk_smul {s : Finset ι} (c : γ) (x : ∀ i : (↑s : Set ι), β (i : ι)) :
@@ -1814,10 +1778,7 @@ theorem support_filter (f : Π₀ i, β i) : (f.filterₓ p).support = f.support
 -/
 
 /- warning: dfinsupp.subtype_domain_def -> Dfinsupp.subtypeDomain_def is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), Zero.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_1 i)))))] {p : ι -> Prop} [_inst_3 : DecidablePred.{succ u1} ι p] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) p (fun (a : ι) => _inst_3 a) f) (Dfinsupp.mk.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (a : Subtype.{succ u1} ι p) (b : Subtype.{succ u1} ι p) => Subtype.decidableEq.{u1} ι (fun (x : ι) => p x) (fun (a : ι) (b : ι) => dec a b) a b) (fun (i : Subtype.{succ u1} ι p) => _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (Finset.subtype.{u1} ι p (fun (a : ι) => _inst_3 a) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β i) => _inst_2 i x) f)) (fun (i : coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Subtype.{succ u1} ι p)) Type.{u1} (Set.hasCoeToSort.{u1} (Subtype.{succ u1} ι p)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (Subtype.{succ u1} ι p)) (Set.{u1} (Subtype.{succ u1} ι p)) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (Subtype.{succ u1} ι p)) (Set.{u1} (Subtype.{succ u1} ι p)) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (Subtype.{succ u1} ι p)) (Set.{u1} (Subtype.{succ u1} ι p)) (Finset.Set.hasCoeT.{u1} (Subtype.{succ u1} ι p)))) (Finset.subtype.{u1} ι p (fun (a : ι) => _inst_3 a) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β i) => _inst_2 i x) f)))) => coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) f ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Subtype.{succ u1} ι p)) Type.{u1} (Set.hasCoeToSort.{u1} (Subtype.{succ u1} ι p)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (Subtype.{succ u1} ι p)) (Set.{u1} (Subtype.{succ u1} ι p)) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (Subtype.{succ u1} ι p)) (Set.{u1} (Subtype.{succ u1} ι p)) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (Subtype.{succ u1} ι p)) (Set.{u1} (Subtype.{succ u1} ι p)) (Finset.Set.hasCoeT.{u1} (Subtype.{succ u1} ι p)))) (Finset.subtype.{u1} ι p (fun (a : ι) => _inst_3 a) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β i) => _inst_2 i x) f)))) ι (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Subtype.{succ u1} ι p)) Type.{u1} (Set.hasCoeToSort.{u1} (Subtype.{succ u1} ι p)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (Subtype.{succ u1} ι p)) (Set.{u1} (Subtype.{succ u1} ι p)) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (Subtype.{succ u1} ι p)) (Set.{u1} (Subtype.{succ u1} ι p)) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (Subtype.{succ u1} ι p)) (Set.{u1} (Subtype.{succ u1} ι p)) (Finset.Set.hasCoeT.{u1} (Subtype.{succ u1} ι p)))) (Finset.subtype.{u1} ι p (fun (a : ι) => _inst_3 a) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β i) => _inst_2 i x) f)))) ι (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Subtype.{succ u1} ι p)) Type.{u1} (Set.hasCoeToSort.{u1} (Subtype.{succ u1} ι p)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (Subtype.{succ u1} ι p)) (Set.{u1} (Subtype.{succ u1} ι p)) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (Subtype.{succ u1} ι p)) (Set.{u1} (Subtype.{succ u1} ι p)) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (Subtype.{succ u1} ι p)) (Set.{u1} (Subtype.{succ u1} ι p)) (Finset.Set.hasCoeT.{u1} (Subtype.{succ u1} ι p)))) (Finset.subtype.{u1} ι p (fun (a : ι) => _inst_3 a) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β i) => _inst_2 i x) f)))) ι (coeTrans.{succ u1, succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} (Subtype.{succ u1} ι p)) Type.{u1} (Set.hasCoeToSort.{u1} (Subtype.{succ u1} ι p)) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (Subtype.{succ u1} ι p)) (Set.{u1} (Subtype.{succ u1} ι p)) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (Subtype.{succ u1} ι p)) (Set.{u1} (Subtype.{succ u1} ι p)) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (Subtype.{succ u1} ι p)) (Set.{u1} (Subtype.{succ u1} ι p)) (Finset.Set.hasCoeT.{u1} (Subtype.{succ u1} ι p)))) (Finset.subtype.{u1} ι p (fun (a : ι) => _inst_3 a) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β i) => _inst_2 i x) f)))) (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))) (coeSubtype.{succ u1} (Subtype.{succ u1} ι p) (fun (x : Subtype.{succ u1} ι p) => Membership.Mem.{u1, u1} (Subtype.{succ u1} ι p) (Set.{u1} (Subtype.{succ u1} ι p)) (Set.hasMem.{u1} (Subtype.{succ u1} ι p)) x ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Finset.{u1} (Subtype.{succ u1} ι p)) (Set.{u1} (Subtype.{succ u1} ι p)) (HasLiftT.mk.{succ u1, succ u1} (Finset.{u1} (Subtype.{succ u1} ι p)) (Set.{u1} (Subtype.{succ u1} ι p)) (CoeTCₓ.coe.{succ u1, succ u1} (Finset.{u1} (Subtype.{succ u1} ι p)) (Set.{u1} (Subtype.{succ u1} ι p)) (Finset.Set.hasCoeT.{u1} (Subtype.{succ u1} ι p)))) (Finset.subtype.{u1} ι p (fun (a : ι) => _inst_3 a) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β i) => _inst_2 i x) f)))))))) i)))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), Zero.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (_inst_1 i))))] {p : ι -> Prop} [_inst_3 : DecidablePred.{succ u1} ι p] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)), Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => _inst_1 (Subtype.val.{succ u1} ι p i))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) p (fun (a : ι) => _inst_3 a) f) (Dfinsupp.mk.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (a : Subtype.{succ u1} ι p) (b : Subtype.{succ u1} ι p) => Subtype.instDecidableEqSubtype.{u1} ι (fun (x : ι) => p x) (fun (a : ι) (b : ι) => dec a b) a b) (fun (i : Subtype.{succ u1} ι p) => _inst_1 (Subtype.val.{succ u1} ι p i)) (Finset.subtype.{u1} ι p (fun (a : ι) => _inst_3 a) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β i) => _inst_2 i x) f)) (fun (i : Set.Elem.{u1} (Subtype.{succ u1} ι p) (Finset.toSet.{u1} (Subtype.{succ u1} ι p) (Finset.subtype.{u1} ι p (fun (a : ι) => _inst_3 a) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β i) => _inst_2 i x) f)))) => FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) f (Subtype.val.{succ u1} ι p (Subtype.val.{succ u1} (Subtype.{succ u1} ι p) (fun (x : Subtype.{succ u1} ι p) => Membership.mem.{u1, u1} (Subtype.{succ u1} ι p) (Set.{u1} (Subtype.{succ u1} ι p)) (Set.instMembershipSet.{u1} (Subtype.{succ u1} ι p)) x (Finset.toSet.{u1} (Subtype.{succ u1} ι p) (Finset.subtype.{u1} ι p (fun (a : ι) => _inst_3 a) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β i) => _inst_2 i x) f)))) i))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.subtype_domain_def Dfinsupp.subtypeDomain_defₓ'. -/
 theorem subtypeDomain_def (f : Π₀ i, β i) :
     f.subtypeDomain p = mk (f.support.Subtype p) fun i => f i := by
@@ -1864,10 +1825,7 @@ theorem support_neg [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x 
 #align dfinsupp.support_neg Dfinsupp.support_neg
 
 /- warning: dfinsupp.support_smul -> Dfinsupp.support_smul is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] {γ : Type.{u3}} [_inst_1 : Semiring.{u3} γ] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), Module.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] [_inst_4 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_2 i))))))))] (b : γ) (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))), HasSubset.Subset.{u1} (Finset.{u1} ι) (Finset.hasSubset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (fun (i : ι) (x : β i) => _inst_4 i x) (SMul.smul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) (SMulZeroClass.toHasSmul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) (AddZeroClass.toHasZero.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i))))) (SMulWithZero.toSmulZeroClass.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) (MulZeroClass.toHasZero.{u3} γ (MulZeroOneClass.toMulZeroClass.{u3} γ (MonoidWithZero.toMulZeroOneClass.{u3} γ (Semiring.toMonoidWithZero.{u3} γ _inst_1)))) (AddZeroClass.toHasZero.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i))))) (MulActionWithZero.toSMulWithZero.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) (Semiring.toMonoidWithZero.{u3} γ _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i))))) (Module.toMulActionWithZero.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))))) _inst_1 (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.module.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)))))) b v)) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (fun (i : ι) (x : β i) => _inst_4 i x) v)
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] {γ : Type.{u3}} [_inst_1 : Semiring.{u3} γ] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), Module.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] [_inst_4 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_2 i))))))] (b : γ) (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))), HasSubset.Subset.{u1} (Finset.{u1} ι) (Finset.instHasSubsetFinset.{u1} ι) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (fun (i : ι) (x : β i) => _inst_4 i x) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι γ (fun (i : ι) => β i) (MonoidWithZero.toMonoid.{u3} γ (Semiring.toMonoidWithZero.{u3} γ _inst_1)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_2 i)) (fun (i : ι) => Module.toDistribMulAction.{u3, u2} γ (β i) _inst_1 (_inst_2 i) (_inst_3 i)))) b v)) (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i))) (fun (i : ι) (x : β i) => _inst_4 i x) v)
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.support_smul Dfinsupp.support_smulₓ'. -/
 theorem support_smul {γ : Type w} [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (β i)]
     [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (b : γ) (v : Π₀ i, β i) :
@@ -2190,10 +2148,7 @@ theorem sigmaCurry_zero [∀ i j, Zero (δ i j)] : sigmaCurry (0 : Π₀ i : Σi
 #align dfinsupp.sigma_curry_zero Dfinsupp.sigmaCurry_zero
 
 /- warning: dfinsupp.sigma_curry_add -> Dfinsupp.sigmaCurry_add is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u3}} {δ : forall (i : ι), (α i) -> Type.{u2}} [_inst_1 : forall (i : ι) (j : α i), AddZeroClass.{u2} (δ i j)] (f : Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => AddZeroClass.toHasZero.{u2} ((fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) i) (_inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)))) (g : Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => AddZeroClass.toHasZero.{u2} ((fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) i) (_inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)))), Eq.{succ (max u1 u3 u2)} (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (_inst_1 i j)) i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (_inst_1 i j)) i i_1))) (Dfinsupp.sigmaCurry.{u1, u2, u3} ι (fun (i : ι) => α i) δ (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (_inst_1 i j)) (HAdd.hAdd.{max (max u1 u3) u2, max (max u1 u3) u2, max (max u1 u3) u2} (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (_inst_1 i j)) (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i))) (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (_inst_1 i j)) (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i))) (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (_inst_1 i j)) (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i))) (instHAdd.{max (max u1 u3) u2} (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (_inst_1 i j)) (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i))) (Dfinsupp.hasAdd.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)))) f g)) (HAdd.hAdd.{max u1 u3 u2, max u1 u3 u2, max u1 u3 u2} (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (_inst_1 i j)) i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (_inst_1 i j)) i i_1))) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (_inst_1 i j)) i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (_inst_1 i j)) i i_1))) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (_inst_1 i j)) i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (_inst_1 i j)) i i_1))) (instHAdd.{max u1 u3 u2} (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (_inst_1 i j)) i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (_inst_1 i j)) i i_1))) (Dfinsupp.hasAdd₂.{u1, u2, u3} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_1 i i_1))) (Dfinsupp.sigmaCurry.{u1, u2, u3} ι (fun (i : ι) => α i) δ (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (_inst_1 i j)) f) (Dfinsupp.sigmaCurry.{u1, u2, u3} ι α δ (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (_inst_1 i j)) g))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_1 : forall (i : ι) (j : α i), AddZeroClass.{u3} (δ i j)] (f : Dfinsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddZeroClass.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i) (_inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (g : Dfinsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddZeroClass.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i) (_inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))), Eq.{max (max (succ u2) (succ u3)) (succ u1)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} (δ i i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} (δ i i_1) (_inst_1 i i_1)))) (Dfinsupp.sigmaCurry.{u2, u3, u1} ι (fun (i : ι) => α i) δ (fun (i : ι) (j : α i) => AddZeroClass.toZero.{u3} (δ i j) (_inst_1 i j)) (HAdd.hAdd.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (Dfinsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddZeroClass.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i) (_inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (Dfinsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddZeroClass.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i) (_inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (Dfinsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddZeroClass.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i) (_inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (instHAdd.{max (max u2 u3) u1} (Dfinsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddZeroClass.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i) (_inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (Dfinsupp.instAddDfinsuppToZero.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) f g)) (HAdd.hAdd.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} (δ i i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} (δ i i_1) (_inst_1 i i_1)))) (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} (δ i i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} (δ i i_1) (_inst_1 i i_1)))) (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} (δ i i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} (δ i i_1) (_inst_1 i i_1)))) (instHAdd.{max (max u2 u3) u1} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} (δ i i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} (δ i i_1) (_inst_1 i i_1)))) (Dfinsupp.hasAdd₂.{u2, u3, u1} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_1 i i_1))) (Dfinsupp.sigmaCurry.{u2, u3, u1} ι (fun (i : ι) => α i) δ (fun (i : ι) (j : α i) => AddZeroClass.toZero.{u3} (δ i j) (_inst_1 i j)) f) (Dfinsupp.sigmaCurry.{u2, u3, u1} ι α δ (fun (i : ι) (j : α i) => AddZeroClass.toZero.{u3} (δ i j) (_inst_1 i j)) g))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.sigma_curry_add Dfinsupp.sigmaCurry_addₓ'. -/
 @[simp]
 theorem sigmaCurry_add [∀ i j, AddZeroClass (δ i j)] (f g : Π₀ i : Σi, α i, δ i.1 i.2) :
@@ -2205,10 +2160,7 @@ theorem sigmaCurry_add [∀ i j, AddZeroClass (δ i j)] (f g : Π₀ i : Σi, α
 #align dfinsupp.sigma_curry_add Dfinsupp.sigmaCurry_add
 
 /- warning: dfinsupp.sigma_curry_smul -> Dfinsupp.sigmaCurry_smul is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {α : ι -> Type.{u4}} {δ : forall (i : ι), (α i) -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : ι) (j : α i), AddMonoid.{u2} (δ i j)] [_inst_3 : forall (i : ι) (j : α i), DistribMulAction.{u3, u2} γ (δ i j) _inst_1 (_inst_2 i j)] (r : γ) (f : Dfinsupp.{max u1 u4, u2} (Sigma.{u1, u4} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u4} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u4} ι (fun (i : ι) => α i)) => AddZeroClass.toHasZero.{u2} ((fun (i : Sigma.{u1, u4} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i)) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Sigma.{u1, u4} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i)) i) (_inst_2 (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i))))), Eq.{succ (max u1 u4 u2)} (Dfinsupp.{u1, max u4 u2} ι (fun (i : ι) => Dfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) i i_1))) (Dfinsupp.sigmaCurry.{u1, u2, u4} ι (fun (i : ι) => α i) δ (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) (SMul.smul.{u3, max (max u1 u4) u2} γ (Dfinsupp.{max u1 u4, u2} (Sigma.{u1, u4} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u4} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u4} ι (fun (i : ι) => α i)) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i))) (Dfinsupp.hasSmul.{max u1 u4, u2, u3} (Sigma.{u1, u4} ι (fun (i : ι) => α i)) γ (fun (i : Sigma.{u1, u4} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i)) _inst_1 (fun (i : Sigma.{u1, u4} ι (fun (i : ι) => α i)) => _inst_2 (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u4} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i))) r f)) (SMul.smul.{u3, max u1 u4 u2} γ (Dfinsupp.{u1, max u4 u2} ι (fun (i : ι) => Dfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) i i_1))) (SMulZeroClass.toHasSmul.{u3, max u1 u4 u2} γ (Dfinsupp.{u1, max u4 u2} ι (fun (i : ι) => Dfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) i i_1))) (AddZeroClass.toHasZero.{max u1 u4 u2} (Dfinsupp.{u1, max u4 u2} ι (fun (i : ι) => Dfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) i i_1))) (AddMonoid.toAddZeroClass.{max u1 u4 u2} (Dfinsupp.{u1, max u4 u2} ι (fun (i : ι) => Dfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) i i_1))) (Dfinsupp.addMonoid₂.{u1, u2, u4} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_2 i i_1)))) (DistribSMul.toSmulZeroClass.{u3, max u1 u4 u2} γ (Dfinsupp.{u1, max u4 u2} ι (fun (i : ι) => Dfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) i i_1))) (AddMonoid.toAddZeroClass.{max u1 u4 u2} (Dfinsupp.{u1, max u4 u2} ι (fun (i : ι) => Dfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) i i_1))) (Dfinsupp.addMonoid₂.{u1, u2, u4} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_2 i i_1))) (DistribMulAction.toDistribSMul.{u3, max u1 u4 u2} γ (Dfinsupp.{u1, max u4 u2} ι (fun (i : ι) => Dfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) i i_1)) (fun (i : ι) => Dfinsupp.hasZero.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) i i_1))) _inst_1 (Dfinsupp.addMonoid₂.{u1, u2, u4} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_2 i i_1)) (Dfinsupp.distribMulAction₂.{u1, u2, u3, u4} ι γ (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) _inst_1 (fun (i : ι) (i_1 : α i) => _inst_2 i i_1) (fun (i : ι) (j : α i) => _inst_3 i j))))) r (Dfinsupp.sigmaCurry.{u1, u2, u4} ι (fun (i : ι) => α i) δ (fun (i : ι) (j : α i) => AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j))) f))
-but is expected to have type
-  forall {ι : Type.{u2}} {γ : Type.{u4}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_1 : Monoid.{u4} γ] [_inst_2 : forall (i : ι) (j : α i), AddMonoid.{u3} (δ i j)] [_inst_3 : forall (i : ι) (j : α i), DistribMulAction.{u4, u3} γ (δ i j) _inst_1 (_inst_2 i j)] (r : γ) (f : Dfinsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddMonoid.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i) (_inst_2 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))), Eq.{max (max (succ u2) (succ u3)) (succ u1)} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u3} (δ i i_1) (_inst_2 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u3} (δ i i_1) (_inst_2 i i_1)))) (Dfinsupp.sigmaCurry.{u2, u3, u1} ι (fun (i : ι) => α i) δ (fun (i : ι) (j : α i) => AddMonoid.toZero.{u3} (δ i j) (_inst_2 i j)) (HSMul.hSMul.{u4, max (max u2 u3) u1, max (max u2 u3) u1} γ (Dfinsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddMonoid.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i) (_inst_2 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (Dfinsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddMonoid.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i) (_inst_2 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (instHSMul.{u4, max (max u2 u3) u1} γ (Dfinsupp.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddMonoid.toZero.{u3} ((fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) i) (_inst_2 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (Dfinsupp.instSMulDfinsuppToZero.{max u2 u1, u3, u4} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) γ (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) _inst_1 (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_2 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_3 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) r f)) (HSMul.hSMul.{u4, max (max u2 u3) u1, max (max u2 u3) u1} γ (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u3} (δ i i_1) (_inst_2 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u3} (δ i i_1) (_inst_2 i i_1)))) (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u3} (δ i i_1) (_inst_2 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u3} (δ i i_1) (_inst_2 i i_1)))) (instHSMul.{u4, max (max u2 u3) u1} γ (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u3} (δ i i_1) (_inst_2 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u3} (δ i i_1) (_inst_2 i i_1)))) (Dfinsupp.instSMulDfinsuppToZero.{u2, max u3 u1, u4} ι γ (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u3} (δ i i_1) (_inst_2 i i_1))) _inst_1 (fun (i : ι) => Dfinsupp.instAddMonoidDfinsuppToZero.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_2 i i_1)) (fun (i : ι) => Dfinsupp.distribMulAction.{u1, u3, u4} (α i) γ (fun (j : α i) => δ i j) _inst_1 (fun (i_1 : α i) => _inst_2 i i_1) (fun (i_1 : α i) => _inst_3 i i_1)))) r (Dfinsupp.sigmaCurry.{u2, u3, u1} ι (fun (i : ι) => α i) δ (fun (i : ι) (j : α i) => AddMonoid.toZero.{u3} (δ i j) (_inst_2 i j)) f))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.sigma_curry_smul Dfinsupp.sigmaCurry_smulₓ'. -/
 @[simp]
 theorem sigmaCurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)] [∀ i j, DistribMulAction γ (δ i j)]
@@ -2296,10 +2248,7 @@ theorem sigmaUncurry_zero [∀ i j, Zero (δ i j)] [∀ i, DecidableEq (α i)]
 #align dfinsupp.sigma_uncurry_zero Dfinsupp.sigmaUncurry_zero
 
 /- warning: dfinsupp.sigma_uncurry_add -> Dfinsupp.sigmaUncurry_add is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {α : ι -> Type.{u3}} {δ : forall (i : ι), (α i) -> Type.{u2}} [_inst_1 : forall (i : ι) (j : α i), AddZeroClass.{u2} (δ i j)] [_inst_2 : forall (i : ι), DecidableEq.{succ u3} (α i)] [_inst_3 : forall (i : ι) (j : α i) (x : δ i j), Decidable (Ne.{succ u2} (δ i j) x (OfNat.ofNat.{u2} (δ i j) 0 (OfNat.mk.{u2} (δ i j) 0 (Zero.zero.{u2} (δ i j) (AddZeroClass.toHasZero.{u2} (δ i j) (_inst_1 i j))))))] (f : Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1)))) (g : Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1)))), Eq.{succ (max (max u1 u3) u2)} (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => AddZeroClass.toHasZero.{u2} (δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (_inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)))) (Dfinsupp.sigmaUncurry.{u1, u2, u3} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1)) (fun (i : ι) (a : α i) (b : α i) => _inst_2 i a b) (fun (i : ι) (j : α i) (x : δ i j) => _inst_3 i j x) (HAdd.hAdd.{max u1 u3 u2, max u1 u3 u2, max u1 u3 u2} (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1)))) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1)))) (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1)))) (instHAdd.{max u1 u3 u2} (Dfinsupp.{u1, max u3 u2} ι (fun (i : ι) => Dfinsupp.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.hasZero.{u3, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1)))) (Dfinsupp.hasAdd₂.{u1, u2, u3} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_1 i i_1))) f g)) (HAdd.hAdd.{max (max u1 u3) u2, max (max u1 u3) u2, max (max u1 u3) u2} (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => AddZeroClass.toHasZero.{u2} (δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (_inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)))) (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => AddZeroClass.toHasZero.{u2} (δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (_inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)))) (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => AddZeroClass.toHasZero.{u2} (δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (_inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)))) (instHAdd.{max (max u1 u3) u2} (Dfinsupp.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => AddZeroClass.toHasZero.{u2} (δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (_inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)))) (Dfinsupp.hasAdd.{max u1 u3, u2} (Sigma.{u1, u3} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u3} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u1, u3} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u3} ι (fun (i : ι) => α i) i)))) (Dfinsupp.sigmaUncurry.{u1, u2, u3} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1)) (fun (i : ι) (a : α i) (b : α i) => _inst_2 i a b) (fun (i : ι) (j : α i) (x : δ i j) => _inst_3 i j x) f) (Dfinsupp.sigmaUncurry.{u1, u2, u3} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (_inst_1 i i_1)) (fun (i : ι) (a : α i) (b : α i) => _inst_2 i a b) (fun (i : ι) (j : α i) (x : δ i j) => _inst_3 i j x) g))
-but is expected to have type
-  forall {ι : Type.{u2}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_1 : forall (i : ι) (j : α i), AddZeroClass.{u3} (δ i j)] [_inst_2 : forall (i : ι), DecidableEq.{succ u1} (α i)] [_inst_3 : forall (i : ι) (j : α i) (x : δ i j), Decidable (Ne.{succ u3} (δ i j) x (OfNat.ofNat.{u3} (δ i j) 0 (Zero.toOfNat0.{u3} (δ i j) (AddZeroClass.toZero.{u3} (δ i j) (_inst_1 i j)))))] (f : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1)))) (g : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1)))), Eq.{max (max (succ u2) (succ u3)) (succ u1)} (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddZeroClass.toZero.{u3} ((fun (j : α (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) j) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (_inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (Dfinsupp.sigmaUncurry.{u2, u3, u1} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => AddZeroClass.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1)) (fun (i : ι) (a : α i) (b : α i) => _inst_2 i a b) (fun (i : ι) (j : α i) (x : δ i j) => _inst_3 i j x) (HAdd.hAdd.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1)))) (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1)))) (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1)))) (instHAdd.{max (max u2 u3) u1} (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1)))) (Dfinsupp.hasAdd₂.{u2, u3, u1} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_1 i i_1))) f g)) (HAdd.hAdd.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddZeroClass.toZero.{u3} ((fun (j : α (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) j) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (_inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddZeroClass.toZero.{u3} ((fun (j : α (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) j) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (_inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddZeroClass.toZero.{u3} ((fun (j : α (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) j) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (_inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (instHAdd.{max (max u2 u3) u1} (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddZeroClass.toZero.{u3} ((fun (j : α (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) j) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (_inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (Dfinsupp.instAddDfinsuppToZero.{max u2 u1, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_1 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (Dfinsupp.sigmaUncurry.{u2, u3, u1} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => AddZeroClass.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1)) (fun (i : ι) (a : α i) (b : α i) => _inst_2 i a b) (fun (i : ι) (j : α i) (x : δ i j) => _inst_3 i j x) f) (Dfinsupp.sigmaUncurry.{u2, u3, u1} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => AddZeroClass.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_1 i i_1)) (fun (i : ι) (a : α i) (b : α i) => _inst_2 i a b) (fun (i : ι) (j : α i) (x : δ i j) => _inst_3 i j x) g))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.sigma_uncurry_add Dfinsupp.sigmaUncurry_addₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
@@ -2310,10 +2259,7 @@ theorem sigmaUncurry_add [∀ i j, AddZeroClass (δ i j)] [∀ i, DecidableEq (
 #align dfinsupp.sigma_uncurry_add Dfinsupp.sigmaUncurry_add
 
 /- warning: dfinsupp.sigma_uncurry_smul -> Dfinsupp.sigmaUncurry_smul is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {α : ι -> Type.{u4}} {δ : forall (i : ι), (α i) -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : ι) (j : α i), AddMonoid.{u2} (δ i j)] [_inst_3 : forall (i : ι), DecidableEq.{succ u4} (α i)] [_inst_4 : forall (i : ι) (j : α i) (x : δ i j), Decidable (Ne.{succ u2} (δ i j) x (OfNat.ofNat.{u2} (δ i j) 0 (OfNat.mk.{u2} (δ i j) 0 (Zero.zero.{u2} (δ i j) (AddZeroClass.toHasZero.{u2} (δ i j) (AddMonoid.toAddZeroClass.{u2} (δ i j) (_inst_2 i j)))))))] [_inst_5 : forall (i : ι) (j : α i), DistribMulAction.{u3, u2} γ (δ i j) _inst_1 (_inst_2 i j)] (r : γ) (f : Dfinsupp.{u1, max u4 u2} ι (fun (i : ι) => Dfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1)))) (fun (i : ι) => Dfinsupp.hasZero.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1))))), Eq.{succ (max (max u1 u4) u2)} (Dfinsupp.{max u1 u4, u2} (Sigma.{u1, u4} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u4} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u4} ι (fun (i : ι) => α i)) => AddZeroClass.toHasZero.{u2} (δ (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i)) (AddMonoid.toAddZeroClass.{u2} (δ (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i)) (_inst_2 (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i))))) (Dfinsupp.sigmaUncurry.{u1, u2, u4} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1))) (fun (i : ι) (a : α i) (b : α i) => _inst_3 i a b) (fun (i : ι) (j : α i) (x : δ i j) => _inst_4 i j x) (SMul.smul.{u3, max u1 u4 u2} γ (Dfinsupp.{u1, max u4 u2} ι (fun (i : ι) => Dfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1)))) (fun (i : ι) => Dfinsupp.hasZero.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1))))) (SMulZeroClass.toHasSmul.{u3, max u1 u4 u2} γ (Dfinsupp.{u1, max u4 u2} ι (fun (i : ι) => Dfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1)))) (fun (i : ι) => Dfinsupp.hasZero.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1))))) (AddZeroClass.toHasZero.{max u1 u4 u2} (Dfinsupp.{u1, max u4 u2} ι (fun (i : ι) => Dfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1)))) (fun (i : ι) => Dfinsupp.hasZero.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1))))) (AddMonoid.toAddZeroClass.{max u1 u4 u2} (Dfinsupp.{u1, max u4 u2} ι (fun (i : ι) => Dfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1)))) (fun (i : ι) => Dfinsupp.hasZero.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1))))) (Dfinsupp.addMonoid₂.{u1, u2, u4} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_2 i i_1)))) (DistribSMul.toSmulZeroClass.{u3, max u1 u4 u2} γ (Dfinsupp.{u1, max u4 u2} ι (fun (i : ι) => Dfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1)))) (fun (i : ι) => Dfinsupp.hasZero.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1))))) (AddMonoid.toAddZeroClass.{max u1 u4 u2} (Dfinsupp.{u1, max u4 u2} ι (fun (i : ι) => Dfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1)))) (fun (i : ι) => Dfinsupp.hasZero.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1))))) (Dfinsupp.addMonoid₂.{u1, u2, u4} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_2 i i_1))) (DistribMulAction.toDistribSMul.{u3, max u1 u4 u2} γ (Dfinsupp.{u1, max u4 u2} ι (fun (i : ι) => Dfinsupp.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1)))) (fun (i : ι) => Dfinsupp.hasZero.{u4, u2} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1))))) _inst_1 (Dfinsupp.addMonoid₂.{u1, u2, u4} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => _inst_2 i i_1)) (Dfinsupp.distribMulAction₂.{u1, u2, u3, u4} ι γ (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) _inst_1 (fun (i : ι) (i_1 : α i) => _inst_2 i i_1) (fun (i : ι) (j : α i) => _inst_5 i j))))) r f)) (SMul.smul.{u3, max (max u1 u4) u2} γ (Dfinsupp.{max u1 u4, u2} (Sigma.{u1, u4} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u1, u4} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u4} ι (fun (i : ι) => α i)) => AddZeroClass.toHasZero.{u2} (δ (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i)) (AddMonoid.toAddZeroClass.{u2} (δ (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i)) (_inst_2 (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i))))) (Dfinsupp.hasSmul.{max u1 u4, u2, u3} (Sigma.{u1, u4} ι (fun (i : ι) => α i)) γ (fun (i : Sigma.{u1, u4} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i)) _inst_1 (fun (i : Sigma.{u1, u4} ι (fun (i : ι) => α i)) => _inst_2 (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u1, u4} ι (fun (i : ι) => α i)) => _inst_5 (Sigma.fst.{u1, u4} ι (fun (i : ι) => α i) i) (Sigma.snd.{u1, u4} ι (fun (i : ι) => α i) i))) r (Dfinsupp.sigmaUncurry.{u1, u2, u4} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => AddZeroClass.toHasZero.{u2} (δ i i_1) (AddMonoid.toAddZeroClass.{u2} (δ i i_1) (_inst_2 i i_1))) (fun (i : ι) (a : α i) (b : α i) => _inst_3 i a b) (fun (i : ι) (j : α i) (x : δ i j) => _inst_4 i j x) f))
-but is expected to have type
-  forall {ι : Type.{u2}} {γ : Type.{u4}} {α : ι -> Type.{u1}} {δ : forall (i : ι), (α i) -> Type.{u3}} [_inst_1 : Monoid.{u4} γ] [_inst_2 : forall (i : ι) (j : α i), AddMonoid.{u3} (δ i j)] [_inst_3 : forall (i : ι), DecidableEq.{succ u1} (α i)] [_inst_4 : forall (i : ι) (j : α i) (x : δ i j), Decidable (Ne.{succ u3} (δ i j) x (OfNat.ofNat.{u3} (δ i j) 0 (Zero.toOfNat0.{u3} (δ i j) (AddMonoid.toZero.{u3} (δ i j) (_inst_2 i j)))))] [_inst_5 : forall (i : ι) (j : α i), DistribMulAction.{u4, u3} γ (δ i j) _inst_1 (_inst_2 i j)] (r : γ) (f : Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_2 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_2 i i_1)))), Eq.{max (max (succ u2) (succ u3)) (succ u1)} (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddMonoid.toZero.{u3} ((fun (j : α (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) j) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (_inst_2 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (Dfinsupp.sigmaUncurry.{u2, u3, u1} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_2 i i_1)) (fun (i : ι) (a : α i) (b : α i) => _inst_3 i a b) (fun (i : ι) (j : α i) (x : δ i j) => _inst_4 i j x) (HSMul.hSMul.{u4, max (max u2 u3) u1, max (max u2 u3) u1} γ (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_2 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_2 i i_1)))) (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_2 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_2 i i_1)))) (instHSMul.{u4, max (max u2 u3) u1} γ (Dfinsupp.{u2, max u3 u1} ι (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_2 i i_1))) (fun (i : ι) => Dfinsupp.instZeroDfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_2 i i_1)))) (Dfinsupp.instSMulDfinsuppToZero.{u2, max u3 u1, u4} ι γ (fun (i : ι) => Dfinsupp.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_2 i i_1))) _inst_1 (fun (i : ι) => Dfinsupp.instAddMonoidDfinsuppToZero.{u1, u3} (α i) (fun (j : α i) => δ i j) (fun (i_1 : α i) => _inst_2 i i_1)) (fun (i : ι) => Dfinsupp.distribMulAction.{u1, u3, u4} (α i) γ (fun (j : α i) => δ i j) _inst_1 (fun (i_1 : α i) => _inst_2 i i_1) (fun (i_1 : α i) => _inst_5 i i_1)))) r f)) (HSMul.hSMul.{u4, max (max u1 u3) u2, max (max u2 u3) u1} γ (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddMonoid.toZero.{u3} ((fun (j : α (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) j) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (_inst_2 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddMonoid.toZero.{u3} ((fun (j : α (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) j) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (_inst_2 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (instHSMul.{u4, max (max u2 u3) u1} γ (Dfinsupp.{max u1 u2, u3} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => AddMonoid.toZero.{u3} ((fun (j : α (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) j) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (_inst_2 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) (Dfinsupp.instSMulDfinsuppToZero.{max u2 u1, u3, u4} (Sigma.{u2, u1} ι (fun (i : ι) => α i)) γ (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => δ (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) _inst_1 (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_2 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)) (fun (i : Sigma.{u2, u1} ι (fun (i : ι) => α i)) => _inst_5 (Sigma.fst.{u2, u1} ι (fun (i : ι) => α i) i) (Sigma.snd.{u2, u1} ι (fun (i : ι) => α i) i)))) r (Dfinsupp.sigmaUncurry.{u2, u3, u1} ι (fun (i : ι) => α i) (fun (i : ι) (j : α i) => δ i j) (fun (i : ι) (i_1 : α i) => AddMonoid.toZero.{u3} ((fun (j : α i) => δ i j) i_1) (_inst_2 i i_1)) (fun (i : ι) (a : α i) (b : α i) => _inst_3 i a b) (fun (i : ι) (j : α i) (x : δ i j) => _inst_4 i j x) f))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.sigma_uncurry_smul Dfinsupp.sigmaUncurry_smulₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
@@ -2456,10 +2402,7 @@ noncomputable def equivProdDfinsupp [∀ i, Zero (α i)] : (Π₀ i, α i) ≃ 
 -/
 
 /- warning: dfinsupp.equiv_prod_dfinsupp_add -> Dfinsupp.equivProdDfinsupp_add is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {α : (Option.{u1} ι) -> Type.{u2}} [_inst_1 : forall (i : Option.{u1} ι), AddZeroClass.{u2} (α i)] (f : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (g : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))), Eq.{max (succ u2) (succ (max u1 u2))} (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (coeFn.{max 1 (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (fun (_x : Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) => (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) -> (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_1 i))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (instHAdd.{max u1 u2} (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (Prod.hasAdd.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))) (AddZeroClass.toHasAdd.{u2} (α (Option.none.{u1} ι)) (_inst_1 (Option.none.{u1} ι))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_1 (Option.some.{u1} ι i))))) (coeFn.{max 1 (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (fun (_x : Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) => (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) -> (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) f) (coeFn.{max 1 (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (fun (_x : Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) => (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) -> (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) g))
-but is expected to have type
-  forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {α : (Option.{u1} ι) -> Type.{u2}} [_inst_1 : forall (i : Option.{u1} ι), AddZeroClass.{u2} (α i)] (f : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (g : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_1 i))) f g)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_1 i))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) f) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) g) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) f) (instHAdd.{max u1 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) f) (Prod.instAddSum.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))) (AddZeroClass.toAdd.{u2} (α (Option.none.{u1} ι)) (_inst_1 (Option.none.{u1} ι))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_1 (Option.some.{u1} ι i))))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) f) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) g))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.equiv_prod_dfinsupp_add Dfinsupp.equivProdDfinsupp_addₓ'. -/
 theorem equivProdDfinsupp_add [∀ i, AddZeroClass (α i)] (f g : Π₀ i, α i) :
     equivProdDfinsupp (f + g) = equivProdDfinsupp f + equivProdDfinsupp g :=
@@ -2467,10 +2410,7 @@ theorem equivProdDfinsupp_add [∀ i, AddZeroClass (α i)] (f g : Π₀ i, α i)
 #align dfinsupp.equiv_prod_dfinsupp_add Dfinsupp.equivProdDfinsupp_add
 
 /- warning: dfinsupp.equiv_prod_dfinsupp_smul -> Dfinsupp.equivProdDfinsupp_smul is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} [dec : DecidableEq.{succ u1} ι] {α : (Option.{u1} ι) -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : Option.{u1} ι), AddMonoid.{u2} (α i)] [_inst_3 : forall (i : Option.{u1} ι), DistribMulAction.{u3, u2} γ (α i) _inst_1 (_inst_2 i)] (r : γ) (f : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))), Eq.{max (succ u2) (succ (max u1 u2))} (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (coeFn.{max 1 (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) (fun (_x : Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) => (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) -> (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (SMul.smul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Dfinsupp.hasSmul.{u1, u2, u3} (Option.{u1} ι) γ (fun (i : Option.{u1} ι) => α i) _inst_1 (fun (i : Option.{u1} ι) => _inst_2 i) (fun (i : Option.{u1} ι) => _inst_3 i)) r f)) (SMul.smul.{u3, max u1 u2} γ (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Prod.smul.{u3, u2, max u1 u2} γ (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) (SMulZeroClass.toHasSmul.{u3, u2} γ (α (Option.none.{u1} ι)) (AddZeroClass.toHasZero.{u2} (α (Option.none.{u1} ι)) (AddMonoid.toAddZeroClass.{u2} (α (Option.none.{u1} ι)) (_inst_2 (Option.none.{u1} ι)))) (DistribSMul.toSmulZeroClass.{u3, u2} γ (α (Option.none.{u1} ι)) (AddMonoid.toAddZeroClass.{u2} (α (Option.none.{u1} ι)) (_inst_2 (Option.none.{u1} ι))) (DistribMulAction.toDistribSMul.{u3, u2} γ (α (Option.none.{u1} ι)) _inst_1 (_inst_2 (Option.none.{u1} ι)) (_inst_3 (Option.none.{u1} ι))))) (Dfinsupp.hasSmul.{u1, u2, u3} ι γ (fun (i : ι) => α (Option.some.{u1} ι i)) _inst_1 (fun (i : ι) => _inst_2 (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i)))) r (coeFn.{max 1 (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) (fun (_x : Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) => (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) -> (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) f))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} [dec : DecidableEq.{succ u1} ι] {α : (Option.{u1} ι) -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : Option.{u1} ι), AddMonoid.{u2} (α i)] [_inst_3 : forall (i : Option.{u1} ι), DistribMulAction.{u3, u2} γ (α i) _inst_1 (_inst_2 i)] (r : γ) (f : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} (Option.{u1} ι) γ (fun (i : Option.{u1} ι) => α i) _inst_1 (fun (i : Option.{u1} ι) => _inst_2 i) (fun (i : Option.{u1} ι) => _inst_3 i))) r f)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} (Option.{u1} ι) γ (fun (i : Option.{u1} ι) => α i) _inst_1 (fun (i : Option.{u1} ι) => _inst_2 i) (fun (i : Option.{u1} ι) => _inst_3 i))) r f)) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) f) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) f) (instHSMul.{u3, max u1 u2} γ ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) f) (Prod.smul.{u3, u2, max u1 u2} γ (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))) (SMulZeroClass.toSMul.{u3, u2} γ (α (Option.none.{u1} ι)) (AddMonoid.toZero.{u2} (α (Option.none.{u1} ι)) (_inst_2 (Option.none.{u1} ι))) (DistribSMul.toSMulZeroClass.{u3, u2} γ (α (Option.none.{u1} ι)) (AddMonoid.toAddZeroClass.{u2} (α (Option.none.{u1} ι)) (_inst_2 (Option.none.{u1} ι))) (DistribMulAction.toDistribSMul.{u3, u2} γ (α (Option.none.{u1} ι)) _inst_1 (_inst_2 (Option.none.{u1} ι)) (_inst_3 (Option.none.{u1} ι))))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι γ (fun (i : ι) => α (Option.some.{u1} ι i)) _inst_1 (fun (i : ι) => _inst_2 (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i))))) r (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) f))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.equiv_prod_dfinsupp_smul Dfinsupp.equivProdDfinsupp_smulₓ'. -/
 theorem equivProdDfinsupp_smul [Monoid γ] [∀ i, AddMonoid (α i)] [∀ i, DistribMulAction γ (α i)]
     (r : γ) (f : Π₀ i, α i) : equivProdDfinsupp (r • f) = r • equivProdDfinsupp f :=
@@ -2581,10 +2521,7 @@ theorem prod_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂ : ι
 #align dfinsupp.sum_comm Dfinsupp.sum_comm
 
 /- warning: dfinsupp.sum_apply -> Dfinsupp.sum_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u3}} {ι₁ : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι₁] {β₁ : ι₁ -> Type.{u4}} [_inst_2 : forall (i₁ : ι₁), Zero.{u4} (β₁ i₁)] [_inst_3 : forall (i : ι₁) (x : β₁ i), Decidable (Ne.{succ u4} (β₁ i) x (OfNat.ofNat.{u4} (β₁ i) 0 (OfNat.mk.{u4} (β₁ i) 0 (Zero.zero.{u4} (β₁ i) (_inst_2 i)))))] [_inst_4 : forall (i : ι), AddCommMonoid.{u3} (β i)] {f : Dfinsupp.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (i : ι₁) => _inst_2 i)} {g : forall (i₁ : ι₁), (β₁ i₁) -> (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i)))))} {i₂ : ι}, Eq.{succ u3} (β i₂) (coeFn.{succ (max u1 u3), max (succ u1) (succ u3)} (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))))) (fun (_x : Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))))) (Dfinsupp.sum.{u2, u4, max u1 u3} ι₁ (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))))) (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) (Dfinsupp.addCommMonoid.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) f g) i₂) (Dfinsupp.sum.{u2, u4, u3} ι₁ (β i₂) (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) (_inst_4 i₂) f (fun (i₁ : ι₁) (b : β₁ i₁) => coeFn.{succ (max u1 u3), max (succ u1) (succ u3)} (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))))) (fun (_x : Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))))) (g i₁ b) i₂))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u3}} {ι₁ : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι₁] {β₁ : ι₁ -> Type.{u4}} [_inst_2 : forall (i₁ : ι₁), Zero.{u4} (β₁ i₁)] [_inst_3 : forall (i : ι₁) (x : β₁ i), Decidable (Ne.{succ u4} (β₁ i) x (OfNat.ofNat.{u4} (β₁ i) 0 (Zero.toOfNat0.{u4} (β₁ i) (_inst_2 i))))] [_inst_4 : forall (i : ι), AddCommMonoid.{u3} (β i)] {f : Dfinsupp.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (i : ι₁) => _inst_2 i)} {g : forall (i₁ : ι₁), (β₁ i₁) -> (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))))} {i₂ : ι}, Eq.{succ u3} ((fun (i : ι) => (fun (i : ι) => β i) i) i₂) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))) i)) (Dfinsupp.sum.{u2, u4, max u1 u3} ι₁ (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i)))) (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) f g) i₂) (Dfinsupp.sum.{u2, u4, u3} ι₁ ((fun (i : ι) => (fun (i : ι) => β i) i) i₂) (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) (_inst_4 i₂) f (fun (i₁ : ι₁) (b : β₁ i₁) => FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))) i)) (g i₁ b) i₂))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.sum_apply Dfinsupp.sum_applyₓ'. -/
 @[simp]
 theorem sum_apply {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
@@ -2596,10 +2533,7 @@ theorem sum_apply {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Typ
 include dec
 
 /- warning: dfinsupp.support_sum -> Dfinsupp.support_sum is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u1} ι] {ι₁ : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι₁] {β₁ : ι₁ -> Type.{u4}} [_inst_2 : forall (i₁ : ι₁), Zero.{u4} (β₁ i₁)] [_inst_3 : forall (i : ι₁) (x : β₁ i), Decidable (Ne.{succ u4} (β₁ i) x (OfNat.ofNat.{u4} (β₁ i) 0 (OfNat.mk.{u4} (β₁ i) 0 (Zero.zero.{u4} (β₁ i) (_inst_2 i)))))] [_inst_4 : forall (i : ι), AddCommMonoid.{u3} (β i)] [_inst_5 : forall (i : ι) (x : β i), Decidable (Ne.{succ u3} (β i) x (OfNat.ofNat.{u3} (β i) 0 (OfNat.mk.{u3} (β i) 0 (Zero.zero.{u3} (β i) (AddZeroClass.toHasZero.{u3} (β i) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_4 i))))))))] {f : Dfinsupp.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (i : ι₁) => _inst_2 i)} {g : forall (i₁ : ι₁), (β₁ i₁) -> (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i)))))}, HasSubset.Subset.{u1} (Finset.{u1} ι) (Finset.hasSubset.{u1} ι) (Dfinsupp.support.{u1, u3} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i)))) (fun (i : ι) (x : β i) => _inst_5 i x) (Dfinsupp.sum.{u2, u4, max u1 u3} ι₁ (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))))) (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) (Dfinsupp.addCommMonoid.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) f g)) (Finset.biUnion.{u2, u1} ι₁ ι (fun (a : ι) (b : ι) => dec a b) (Dfinsupp.support.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) f) (fun (i : ι₁) => Dfinsupp.support.{u1, u3} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i)))) (fun (i : ι) (x : β i) => _inst_5 i x) (g i (coeFn.{succ (max u2 u4), max (succ u2) (succ u4)} (Dfinsupp.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (i : ι₁) => _inst_2 i)) (fun (_x : Dfinsupp.{u2, u4} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_2 i)) => forall (i : ι₁), β₁ i) (Dfinsupp.hasCoeToFun.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (i : ι₁) => _inst_2 i)) f i))))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u1} ι] {ι₁ : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι₁] {β₁ : ι₁ -> Type.{u4}} [_inst_2 : forall (i₁ : ι₁), Zero.{u4} (β₁ i₁)] [_inst_3 : forall (i : ι₁) (x : β₁ i), Decidable (Ne.{succ u4} (β₁ i) x (OfNat.ofNat.{u4} (β₁ i) 0 (Zero.toOfNat0.{u4} (β₁ i) (_inst_2 i))))] [_inst_4 : forall (i : ι), AddCommMonoid.{u3} (β i)] [_inst_5 : forall (i : ι) (x : β i), Decidable (Ne.{succ u3} (β i) x (OfNat.ofNat.{u3} (β i) 0 (Zero.toOfNat0.{u3} (β i) (AddMonoid.toZero.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_4 i))))))] {f : Dfinsupp.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (i : ι₁) => _inst_2 i)} {g : forall (i₁ : ι₁), (β₁ i₁) -> (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))))}, HasSubset.Subset.{u1} (Finset.{u1} ι) (Finset.instHasSubsetFinset.{u1} ι) (Dfinsupp.support.{u1, u3} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (i : ι) (x : β i) => _inst_5 i x) (Dfinsupp.sum.{u2, u4, max u1 u3} ι₁ (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i)))) (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) f g)) (Finset.biUnion.{u2, u1} ι₁ ι (fun (a : ι) (b : ι) => dec a b) (Dfinsupp.support.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) f) (fun (i : ι₁) => Dfinsupp.support.{u1, u3} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (i : ι) (x : β i) => _inst_5 i x) (g i (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (Dfinsupp.{u2, u4} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => (fun (i : ι₁) => _inst_2 i) i)) ι₁ (fun (_x : ι₁) => (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) _x) (Dfinsupp.funLike.{u2, u4} ι₁ (fun (i₁ : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i₁) (fun (i : ι₁) => (fun (i : ι₁) => _inst_2 i) i)) f i))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.support_sum Dfinsupp.support_sumₓ'. -/
 theorem support_sum {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
     [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)]
@@ -2681,10 +2615,7 @@ theorem smul_sum {α : Type _} [Monoid α] [∀ i, Zero (β i)] [∀ (i) (x : β
 #align dfinsupp.smul_sum Dfinsupp.smul_sum
 
 /- warning: dfinsupp.prod_add_index -> Dfinsupp.prod_add_index is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))))] [_inst_3 : CommMonoid.{u3} γ] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))} {g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))} {h : forall (i : ι), (β i) -> γ}, (forall (i : ι), Eq.{succ u3} γ (h i (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))))))) (OfNat.ofNat.{u3} γ 1 (OfNat.mk.{u3} γ 1 (One.one.{u3} γ (MulOneClass.toHasOne.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3))))))) -> (forall (i : ι) (b₁ : β i) (b₂ : β i), Eq.{succ u3} γ (h i (HAdd.hAdd.{u2, u2, u2} (β i) (β i) (β i) (instHAdd.{u2} (β i) (AddZeroClass.toHasAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) b₁ b₂)) (HMul.hMul.{u3, u3, u3} γ γ γ (instHMul.{u3} γ (MulOneClass.toHasMul.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3)))) (h i b₁) (h i b₂))) -> (Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) f g) h) (HMul.hMul.{u3, u3, u3} γ γ γ (instHMul.{u3} γ (MulOneClass.toHasMul.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3)))) (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f h) (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 g h)))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))))] [_inst_3 : CommMonoid.{u3} γ] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))} {g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))} {h : forall (i : ι), (β i) -> γ}, (forall (i : ι), Eq.{succ u3} γ (h i (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddMonoid.toZero.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))))) (OfNat.ofNat.{u3} γ 1 (One.toOfNat1.{u3} γ (Monoid.toOne.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3))))) -> (forall (i : ι) (b₁ : β i) (b₂ : β i), Eq.{succ u3} γ (h i (HAdd.hAdd.{u2, u2, u2} (β i) (β i) (β i) (instHAdd.{u2} (β i) (AddZeroClass.toAdd.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) b₁ b₂)) (HMul.hMul.{u3, u3, u3} γ γ γ (instHMul.{u3} γ (MulOneClass.toMul.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3)))) (h i b₁) (h i b₂))) -> (Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) f g) h) (HMul.hMul.{u3, u3, u3} γ γ γ (instHMul.{u3} γ (MulOneClass.toMul.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3)))) (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f h) (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 g h)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.prod_add_index Dfinsupp.prod_add_indexₓ'. -/
 @[to_additive]
 theorem prod_add_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
@@ -2708,10 +2639,7 @@ theorem prod_add_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decida
 #align dfinsupp.sum_add_index Dfinsupp.sum_add_index
 
 /- warning: dfinsupp_prod_mem -> dfinsupp_prod_mem is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), Zero.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_1 i)))))] [_inst_3 : CommMonoid.{u3} γ] {S : Type.{u4}} [_inst_4 : SetLike.{u4, u3} S γ] [_inst_5 : SubmonoidClass.{u4, u3} S γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_3)) _inst_4] (s : S) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (g : forall (i : ι), (β i) -> γ), (forall (c : ι), (Ne.{succ u2} (β c) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) f c) (OfNat.ofNat.{u2} (β c) 0 (OfNat.mk.{u2} (β c) 0 (Zero.zero.{u2} (β c) (_inst_1 c))))) -> (Membership.Mem.{u3, u4} γ S (SetLike.hasMem.{u4, u3} S γ _inst_4) (g c (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) f c)) s)) -> (Membership.Mem.{u3, u4} γ S (SetLike.hasMem.{u4, u3} S γ _inst_4) (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f g) s)
-but is expected to have type
-  forall {ι : Type.{u2}} {γ : Type.{u4}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u2} ι] [_inst_1 : forall (i : ι), Zero.{u3} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u3} (β i) x (OfNat.ofNat.{u3} (β i) 0 (Zero.toOfNat0.{u3} (β i) (_inst_1 i))))] [_inst_3 : CommMonoid.{u4} γ] {S : Type.{u1}} [_inst_4 : SetLike.{u1, u4} S γ] [_inst_5 : SubmonoidClass.{u1, u4} S γ (Monoid.toMulOneClass.{u4} γ (CommMonoid.toMonoid.{u4} γ _inst_3)) _inst_4] (s : S) (f : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (g : forall (i : ι), (β i) -> γ), (forall (c : ι), (Ne.{succ u3} ((fun (i : ι) => (fun (i : ι) => β i) i) c) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) f c) (OfNat.ofNat.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) c) 0 (Zero.toOfNat0.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) c) (_inst_1 c)))) -> (Membership.mem.{u4, u1} γ S (SetLike.instMembership.{u1, u4} S γ _inst_4) (g c (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) f c)) s)) -> (Membership.mem.{u4, u1} γ S (SetLike.instMembership.{u1, u4} S γ _inst_4) (Dfinsupp.prod.{u2, u3, u4} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f g) s)
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp_prod_mem dfinsupp_prod_memₓ'. -/
 @[to_additive]
 theorem dfinsupp_prod_mem [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
@@ -2795,10 +2723,7 @@ def sumAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i
 #align dfinsupp.sum_add_hom Dfinsupp.sumAddHom
 
 /- warning: dfinsupp.sum_add_hom_single -> Dfinsupp.sumAddHom_single is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (φ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι) (x : β i), Eq.{succ u3} γ (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 φ) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i)) i x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (β i) -> γ) (AddMonoidHom.hasCoeToFun.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (φ i) x)
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (φ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι) (x : β i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 φ) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i x)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => γ) _x) (AddHomClass.toFunLike.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (AddZeroClass.toAdd.{u2} (β i) (_inst_1 i)) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (φ i) x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.sum_add_hom_single Dfinsupp.sumAddHom_singleₓ'. -/
 @[simp]
 theorem sumAddHom_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i →+ γ) (i)
@@ -2817,10 +2742,7 @@ theorem sumAddHom_comp_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f
 -/
 
 /- warning: dfinsupp.sum_add_hom_apply -> Dfinsupp.sumAddHom_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))))))] [_inst_3 : AddCommMonoid.{u3} γ] (φ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{succ u3} γ (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_3 φ) f) (Dfinsupp.sum.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f (fun (x : ι) => coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (fun (_x : AddMonoidHom.{u2, u3} (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) => (β x) -> γ) (AddMonoidHom.hasCoeToFun.{u2, u3} (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (φ x)))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddZeroClass.toZero.{u2} (β i) (_inst_1 i)))))] [_inst_3 : AddCommMonoid.{u3} γ] (φ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) f) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_3 φ) f) (Dfinsupp.sum.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f (fun (x : ι) => FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (AddMonoidHom.{u2, u3} (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (β x) (fun (_x : β x) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β x) => γ) _x) (AddHomClass.toFunLike.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (β x) γ (AddZeroClass.toAdd.{u2} (β x) (_inst_1 x)) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) (AddMonoidHom.addMonoidHomClass.{u2, u3} (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))))) (φ x)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.sum_add_hom_apply Dfinsupp.sumAddHom_applyₓ'. -/
 /-- While we didn't need decidable instances to define it, we do to reduce it to a sum -/
 theorem sumAddHom_apply [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
@@ -2837,10 +2759,7 @@ theorem sumAddHom_apply [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decida
 #align dfinsupp.sum_add_hom_apply Dfinsupp.sumAddHom_apply
 
 /- warning: dfinsupp_sum_add_hom_mem -> dfinsupp_sumAddHom_mem is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] {S : Type.{u4}} [_inst_3 : SetLike.{u4, u3} S γ] [_inst_4 : AddSubmonoidClass.{u4, u3} S γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) _inst_3] (s : S) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (g : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))), (forall (c : ι), (Ne.{succ u2} (β c) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) f c) (OfNat.ofNat.{u2} (β c) 0 (OfNat.mk.{u2} (β c) 0 (Zero.zero.{u2} (β c) (AddZeroClass.toHasZero.{u2} (β c) (_inst_1 c)))))) -> (Membership.Mem.{u3, u4} γ S (SetLike.hasMem.{u4, u3} S γ _inst_3) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{u2, u3} (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (β c) -> γ) (AddMonoidHom.hasCoeToFun.{u2, u3} (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (g c) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) f c)) s)) -> (Membership.Mem.{u3, u4} γ S (SetLike.hasMem.{u4, u3} S γ _inst_3) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 g) f) s)
-but is expected to have type
-  forall {ι : Type.{u2}} {γ : Type.{u4}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u2} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u3} (β i)] [_inst_2 : AddCommMonoid.{u4} γ] {S : Type.{u1}} [_inst_3 : SetLike.{u1, u4} S γ] [_inst_4 : AddSubmonoidClass.{u1, u4} S γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) _inst_3] (s : S) (f : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (g : forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))), (forall (c : ι), (Ne.{succ u3} ((fun (i : ι) => (fun (i : ι) => β i) i) c) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) f c) (OfNat.ofNat.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) c) 0 (Zero.toOfNat0.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) c) (AddZeroClass.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) c) (_inst_1 c))))) -> (Membership.mem.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β c) => γ) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (a : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) a) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) f c)) S (SetLike.instMembership.{u1, u4} S γ _inst_3) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AddMonoidHom.{u3, u4} (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (β c) (fun (_x : β c) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β c) => γ) _x) (AddHomClass.toFunLike.{max u3 u4, u3, u4} (AddMonoidHom.{u3, u4} (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (β c) γ (AddZeroClass.toAdd.{u3} (β c) (_inst_1 c)) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u3 u4, u3, u4} (AddMonoidHom.{u3, u4} (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{u3, u4} (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))))) (g c) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) f c)) s)) -> (Membership.mem.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) f) S (SetLike.instMembership.{u1, u4} S γ _inst_3) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (succ u2) (succ u3), succ u4} (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u2 u3) u4, max u2 u3, u4} (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u2 u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u4, max u2 u3, u4} (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))))) (Dfinsupp.sumAddHom.{u2, u3, u4} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 g) f) s)
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp_sum_add_hom_mem dfinsupp_sumAddHom_memₓ'. -/
 theorem dfinsupp_sumAddHom_mem [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] {S : Type _}
     [SetLike S γ] [AddSubmonoidClass S γ] (s : S) (f : Π₀ i, β i) (g : ∀ i, β i →+ γ)
@@ -2853,10 +2772,7 @@ theorem dfinsupp_sumAddHom_mem [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] {
 #align dfinsupp_sum_add_hom_mem dfinsupp_sumAddHom_mem
 
 /- warning: add_submonoid.supr_eq_mrange_dfinsupp_sum_add_hom -> AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))), Eq.{succ u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))))) ι S) (AddMonoidHom.mrange.{max u1 u2, u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) _inst_1 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))), Eq.{succ u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) ι S) (AddMonoidHom.mrange.{max u1 u2, u2, max u2 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) _inst_1 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_submonoid.supr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHomₓ'. -/
 /-- The supremum of a family of commutative additive submonoids is equal to the range of
 `dfinsupp.sum_add_hom`; that is, every element in the `supr` can be produced from taking a finite
@@ -2873,10 +2789,7 @@ theorem AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom [AddCommMonoid γ] (S : 
 #align add_submonoid.supr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom
 
 /- warning: add_submonoid.bsupr_eq_mrange_dfinsupp_sum_add_hom -> AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] (p : ι -> Prop) [_inst_1 : DecidablePred.{succ u1} ι p] [_inst_2 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))), Eq.{succ u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) ι (fun (i : ι) => iSup.{u2, 0} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) (p i) (fun (h : p i) => S i))) (AddMonoidHom.mrange.{max u1 u2, u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddMonoidHom.comp.{max u1 u2, max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) _inst_2 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.filterAddMonoidHom.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) p (fun (a : ι) => _inst_1 a))))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] (p : ι -> Prop) [_inst_1 : DecidablePred.{succ u1} ι p] [_inst_2 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))), Eq.{succ u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) ι (fun (i : ι) => iSup.{u2, 0} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (p i) (fun (h : p i) => S i))) (AddMonoidHom.mrange.{max u1 u2, u2, max u2 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddMonoidHom.comp.{max u2 u1, max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) _inst_2 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.filterAddMonoidHom.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) p (fun (a : ι) => _inst_1 a))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_submonoid.bsupr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHomₓ'. -/
 /-- The bounded supremum of a family of commutative additive submonoids is equal to the range of
 `dfinsupp.sum_add_hom` composed with `dfinsupp.filter_add_monoid_hom`; that is, every element in the
@@ -2900,10 +2813,7 @@ theorem AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom (p : ι → Prop) [Decid
 #align add_submonoid.bsupr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom
 
 /- warning: add_submonoid.mem_supr_iff_exists_dfinsupp -> AddSubmonoid.mem_iSup_iff_exists_dfinsupp is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (x : γ), Iff (Membership.Mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.hasMem.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))))) ι S)) (Exists.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) => Eq.{succ u2} γ (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (fun (_x : AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) _inst_1 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) f) x))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (x : γ), Iff (Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) ι S)) (Exists.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) => Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) => γ) f) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) => γ) _x) (AddHomClass.toFunLike.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) (AddZeroClass.toAdd.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) _inst_1 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) f) x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_submonoid.mem_supr_iff_exists_dfinsupp AddSubmonoid.mem_iSup_iff_exists_dfinsuppₓ'. -/
 theorem AddSubmonoid.mem_iSup_iff_exists_dfinsupp [AddCommMonoid γ] (S : ι → AddSubmonoid γ)
     (x : γ) : x ∈ iSup S ↔ ∃ f : Π₀ i, S i, Dfinsupp.sumAddHom (fun i => (S i).Subtype) f = x :=
@@ -2911,10 +2821,7 @@ theorem AddSubmonoid.mem_iSup_iff_exists_dfinsupp [AddCommMonoid γ] (S : ι →
 #align add_submonoid.mem_supr_iff_exists_dfinsupp AddSubmonoid.mem_iSup_iff_exists_dfinsupp
 
 /- warning: add_submonoid.mem_supr_iff_exists_dfinsupp' -> AddSubmonoid.mem_iSup_iff_exists_dfinsupp' is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) [_inst_2 : forall (i : ι) (x : coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)), Decidable (Ne.{succ u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) x (OfNat.ofNat.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) 0 (OfNat.mk.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) 0 (Zero.zero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))))))] (x : γ), Iff (Membership.Mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.hasMem.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))))) ι S)) (Exists.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) => Eq.{succ u2} γ (Dfinsupp.sum.{u1, u2, u2} ι γ (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) (fun (i : ι) (x : coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) => _inst_2 i x) _inst_1 f (fun (i : ι) (xi : coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) γ (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) γ (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) γ (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) γ (coeSubtype.{succ u2} γ (fun (x : γ) => Membership.Mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.hasMem.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i)))))) xi)) x))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) [_inst_2 : forall (i : ι) (x : Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))), Decidable (Ne.{succ u2} (Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) x (OfNat.ofNat.{u2} (Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) 0 (Zero.toOfNat0.{u2} (Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))))] (x : γ), Iff (Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) ι S)) (Exists.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) => Eq.{succ u2} γ (Dfinsupp.sum.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) (fun (i : ι) (x : Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) => _inst_2 i x) _inst_1 f (fun (i : ι) (xi : Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) => Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (SetLike.coe.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (S i))) xi)) x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_submonoid.mem_supr_iff_exists_dfinsupp' AddSubmonoid.mem_iSup_iff_exists_dfinsupp'ₓ'. -/
 /-- A variant of `add_submonoid.mem_supr_iff_exists_dfinsupp` with the RHS fully unfolded. -/
 theorem AddSubmonoid.mem_iSup_iff_exists_dfinsupp' [AddCommMonoid γ] (S : ι → AddSubmonoid γ)
@@ -2927,10 +2834,7 @@ theorem AddSubmonoid.mem_iSup_iff_exists_dfinsupp' [AddCommMonoid γ] (S : ι 
 #align add_submonoid.mem_supr_iff_exists_dfinsupp' AddSubmonoid.mem_iSup_iff_exists_dfinsupp'
 
 /- warning: add_submonoid.mem_bsupr_iff_exists_dfinsupp -> AddSubmonoid.mem_bsupr_iff_exists_dfinsupp is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] (p : ι -> Prop) [_inst_1 : DecidablePred.{succ u1} ι p] [_inst_2 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (x : γ), Iff (Membership.Mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.hasMem.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) ι (fun (i : ι) => iSup.{u2, 0} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) (p i) (fun (h : p i) => S i)))) (Exists.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) => Eq.{succ u2} γ (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) _inst_2 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) p (fun (a : ι) => _inst_1 a) f)) x))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] (p : ι -> Prop) [_inst_1 : DecidablePred.{succ u1} ι p] [_inst_2 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (x : γ), Iff (Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) ι (fun (i : ι) => iSup.{u2, 0} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (p i) (fun (h : p i) => S i)))) (Exists.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) => Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) => γ) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) p (fun (a : ι) => _inst_1 a) f)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) => γ) _x) (AddHomClass.toFunLike.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (AddZeroClass.toAdd.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) _inst_2 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) p (fun (a : ι) => _inst_1 a) f)) x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_submonoid.mem_bsupr_iff_exists_dfinsupp AddSubmonoid.mem_bsupr_iff_exists_dfinsuppₓ'. -/
 theorem AddSubmonoid.mem_bsupr_iff_exists_dfinsupp (p : ι → Prop) [DecidablePred p]
     [AddCommMonoid γ] (S : ι → AddSubmonoid γ) (x : γ) :
@@ -2942,10 +2846,7 @@ theorem AddSubmonoid.mem_bsupr_iff_exists_dfinsupp (p : ι → Prop) [DecidableP
 omit dec
 
 /- warning: dfinsupp.sum_add_hom_comm -> Dfinsupp.sumAddHom_comm is a dubious translation:
-lean 3 declaration is
-  forall {ι₁ : Type.{u1}} {ι₂ : Type.{u2}} {β₁ : ι₁ -> Type.{u3}} {β₂ : ι₂ -> Type.{u4}} {γ : Type.{u5}} [_inst_1 : DecidableEq.{succ u1} ι₁] [_inst_2 : DecidableEq.{succ u2} ι₂] [_inst_3 : forall (i : ι₁), AddZeroClass.{u3} (β₁ i)] [_inst_4 : forall (i : ι₂), AddZeroClass.{u4} (β₂ i)] [_inst_5 : AddCommMonoid.{u5} γ] (f₁ : Dfinsupp.{u1, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toHasZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (f₂ : Dfinsupp.{u2, u4} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toHasZero.{u4} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (h : forall (i : ι₁) (j : ι₂), AddMonoidHom.{u3, max u5 u4} (β₁ i) (AddMonoidHom.{u4, u5} (β₂ j) γ (_inst_4 j) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (_inst_3 i) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} (β₂ j) γ (_inst_4 j) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} (β₂ j) γ (_inst_4 j) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u4, u5} (β₂ j) γ (_inst_4 j) _inst_5)))), Eq.{succ u5} γ (coeFn.{max (succ u5) (succ (max u2 u4)), max (succ (max u2 u4)) (succ u5)} (AddMonoidHom.{max u2 u4, u5} (Dfinsupp.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => AddZeroClass.toHasZero.{u4} ((fun (i₂ : ι₂) => β₂ i₂) i) ((fun (i₂ : ι₂) => _inst_4 i₂) i))) γ (Dfinsupp.addZeroClass.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_4 i₂) i)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (fun (_x : AddMonoidHom.{max u2 u4, u5} (Dfinsupp.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => AddZeroClass.toHasZero.{u4} ((fun (i₂ : ι₂) => β₂ i₂) i) ((fun (i₂ : ι₂) => _inst_4 i₂) i))) γ (Dfinsupp.addZeroClass.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_4 i₂) i)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) => (Dfinsupp.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => AddZeroClass.toHasZero.{u4} ((fun (i₂ : ι₂) => β₂ i₂) i) ((fun (i₂ : ι₂) => _inst_4 i₂) i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u2 u4, u5} (Dfinsupp.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => AddZeroClass.toHasZero.{u4} ((fun (i₂ : ι₂) => β₂ i₂) i) ((fun (i₂ : ι₂) => _inst_4 i₂) i))) γ (Dfinsupp.addZeroClass.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_4 i₂) i)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (Dfinsupp.sumAddHom.{u2, u4, u5} ι₂ γ (fun (i₂ : ι₂) => β₂ i₂) (fun (a : ι₂) (b : ι₂) => _inst_2 a b) (fun (i₂ : ι₂) => _inst_4 i₂) _inst_5 (fun (i₂ : ι₂) => coeFn.{max (succ (max u5 u4)) (succ (max u1 u3)), max (succ (max u1 u3)) (succ (max u5 u4))} (AddMonoidHom.{max u1 u3, max u5 u4} (Dfinsupp.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => AddZeroClass.toHasZero.{u3} ((fun (i₁ : ι₁) => β₁ i₁) i) ((fun (i₁ : ι₁) => _inst_3 i₁) i))) (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (Dfinsupp.addZeroClass.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_3 i₁) i)) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))) (fun (_x : AddMonoidHom.{max u1 u3, max u5 u4} (Dfinsupp.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => AddZeroClass.toHasZero.{u3} ((fun (i₁ : ι₁) => β₁ i₁) i) ((fun (i₁ : ι₁) => _inst_3 i₁) i))) (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (Dfinsupp.addZeroClass.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_3 i₁) i)) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))) => (Dfinsupp.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => AddZeroClass.toHasZero.{u3} ((fun (i₁ : ι₁) => β₁ i₁) i) ((fun (i₁ : ι₁) => _inst_3 i₁) i))) -> (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5)))) (AddMonoidHom.hasCoeToFun.{max u1 u3, max u5 u4} (Dfinsupp.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => AddZeroClass.toHasZero.{u3} ((fun (i₁ : ι₁) => β₁ i₁) i) ((fun (i₁ : ι₁) => _inst_3 i₁) i))) (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (Dfinsupp.addZeroClass.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_3 i₁) i)) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))) (Dfinsupp.sumAddHom.{u1, u3, max u5 u4} ι₁ (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i₁ : ι₁) => _inst_3 i₁) (AddMonoidHom.addCommMonoid.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) _inst_5) (fun (i₁ : ι₁) => h i₁ i₂)) f₁)) f₂) (coeFn.{max (succ u5) (succ (max u1 u3)), max (succ (max u1 u3)) (succ u5)} (AddMonoidHom.{max u1 u3, u5} (Dfinsupp.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => AddZeroClass.toHasZero.{u3} ((fun (i₁ : ι₁) => β₁ i₁) i) ((fun (i₁ : ι₁) => _inst_3 i₁) i))) γ (Dfinsupp.addZeroClass.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_3 i₁) i)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (fun (_x : AddMonoidHom.{max u1 u3, u5} (Dfinsupp.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => AddZeroClass.toHasZero.{u3} ((fun (i₁ : ι₁) => β₁ i₁) i) ((fun (i₁ : ι₁) => _inst_3 i₁) i))) γ (Dfinsupp.addZeroClass.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_3 i₁) i)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) => (Dfinsupp.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => AddZeroClass.toHasZero.{u3} ((fun (i₁ : ι₁) => β₁ i₁) i) ((fun (i₁ : ι₁) => _inst_3 i₁) i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u3, u5} (Dfinsupp.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => AddZeroClass.toHasZero.{u3} ((fun (i₁ : ι₁) => β₁ i₁) i) ((fun (i₁ : ι₁) => _inst_3 i₁) i))) γ (Dfinsupp.addZeroClass.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_3 i₁) i)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (Dfinsupp.sumAddHom.{u1, u3, u5} ι₁ γ (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i₁ : ι₁) => _inst_3 i₁) _inst_5 (fun (i₁ : ι₁) => coeFn.{max (succ (max u5 u3)) (succ (max u2 u4)), max (succ (max u2 u4)) (succ (max u5 u3))} (AddMonoidHom.{max u2 u4, max u5 u3} (Dfinsupp.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => AddZeroClass.toHasZero.{u4} ((fun (i₂ : ι₂) => β₂ i₂) i) ((fun (i₂ : ι₂) => _inst_4 i₂) i))) (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (Dfinsupp.addZeroClass.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_4 i₂) i)) (AddMonoid.toAddZeroClass.{max u5 u3} (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u5 u3} (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))) (fun (_x : AddMonoidHom.{max u2 u4, max u5 u3} (Dfinsupp.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => AddZeroClass.toHasZero.{u4} ((fun (i₂ : ι₂) => β₂ i₂) i) ((fun (i₂ : ι₂) => _inst_4 i₂) i))) (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (Dfinsupp.addZeroClass.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_4 i₂) i)) (AddMonoid.toAddZeroClass.{max u5 u3} (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u5 u3} (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))) => (Dfinsupp.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => AddZeroClass.toHasZero.{u4} ((fun (i₂ : ι₂) => β₂ i₂) i) ((fun (i₂ : ι₂) => _inst_4 i₂) i))) -> (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5)))) (AddMonoidHom.hasCoeToFun.{max u2 u4, max u5 u3} (Dfinsupp.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => AddZeroClass.toHasZero.{u4} ((fun (i₂ : ι₂) => β₂ i₂) i) ((fun (i₂ : ι₂) => _inst_4 i₂) i))) (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (Dfinsupp.addZeroClass.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_4 i₂) i)) (AddMonoid.toAddZeroClass.{max u5 u3} (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u5 u3} (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))) (Dfinsupp.sumAddHom.{u2, u4, max u5 u3} ι₂ (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (fun (i₂ : ι₂) => β₂ i₂) (fun (a : ι₂) (b : ι₂) => _inst_2 a b) (fun (i₂ : ι₂) => _inst_4 i₂) (AddMonoidHom.addCommMonoid.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) _inst_5) (fun (i₂ : ι₂) => AddMonoidHom.flip.{u3, u4, u5} (β₁ i₁) (β₂ i₂) γ (_inst_3 i₁) (_inst_4 i₂) _inst_5 (h i₁ i₂))) f₂)) f₁)
-but is expected to have type
-  forall {ι₁ : Type.{u5}} {ι₂ : Type.{u4}} {β₁ : ι₁ -> Type.{u3}} {β₂ : ι₂ -> Type.{u2}} {γ : Type.{u1}} [_inst_1 : DecidableEq.{succ u5} ι₁] [_inst_2 : DecidableEq.{succ u4} ι₂] [_inst_3 : forall (i : ι₁), AddZeroClass.{u3} (β₁ i)] [_inst_4 : forall (i : ι₂), AddZeroClass.{u2} (β₂ i)] [_inst_5 : AddCommMonoid.{u1} γ] (f₁ : Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (f₂ : Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (h : forall (i : ι₁) (j : ι₂), AddMonoidHom.{u3, max u1 u2} (β₁ i) (AddMonoidHom.{u2, u1} (β₂ j) γ (_inst_4 j) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (_inst_3 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ j) γ (_inst_4 j) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ j) γ (_inst_4 j) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ j) γ (_inst_4 j) _inst_5)))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) => γ) f₂) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u4), max (succ u2) (succ u4), succ u1} (AddMonoidHom.{max u2 u4, u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) γ (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u2 u1) u4, max u2 u4, u1} (AddMonoidHom.{max u2 u4, u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) γ (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) γ (AddZeroClass.toAdd.{max u2 u4} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i))) (AddZeroClass.toAdd.{u1} γ (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u1) u4, max u2 u4, u1} (AddMonoidHom.{max u2 u4, u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) γ (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) γ (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5)) (AddMonoidHom.addMonoidHomClass.{max u2 u4, u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) γ (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))))) (Dfinsupp.sumAddHom.{u4, u2, u1} ι₂ γ (fun (i₂ : ι₂) => β₂ i₂) (fun (a : ι₂) (b : ι₂) => _inst_2 a b) (fun (i₂ : ι₂) => _inst_4 i₂) _inst_5 (fun (i₂ : ι₂) => FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u1)) (succ u5), max (succ u3) (succ u5), max (succ u2) (succ u1)} (AddMonoidHom.{max u3 u5, max u2 u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))) (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (fun (_x : Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) => AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) _x) (AddHomClass.toFunLike.{max (max (max u3 u2) u1) u5, max u3 u5, max u2 u1} (AddMonoidHom.{max u3 u5, max u2 u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))) (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddZeroClass.toAdd.{max u3 u5} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i))) (AddZeroClass.toAdd.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u2) u1) u5, max u3 u5, max u2 u1} (AddMonoidHom.{max u3 u5, max u2 u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))) (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5))) (AddMonoidHom.addMonoidHomClass.{max u3 u5, max u2 u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))))) (Dfinsupp.sumAddHom.{u5, u3, max u2 u1} ι₁ (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i₁ : ι₁) => _inst_3 i₁) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5) (fun (i₁ : ι₁) => h i₁ i₂)) f₁)) f₂) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u5), max (succ u3) (succ u5), succ u1} (AddMonoidHom.{max u3 u5, u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) γ (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (fun (_x : Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u3 u1) u5, max u3 u5, u1} (AddMonoidHom.{max u3 u5, u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) γ (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) γ (AddZeroClass.toAdd.{max u3 u5} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i))) (AddZeroClass.toAdd.{u1} γ (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u1) u5, max u3 u5, u1} (AddMonoidHom.{max u3 u5, u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) γ (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) γ (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5)) (AddMonoidHom.addMonoidHomClass.{max u3 u5, u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) γ (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))))) (Dfinsupp.sumAddHom.{u5, u3, u1} ι₁ γ (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i₁ : ι₁) => _inst_3 i₁) _inst_5 (fun (i₁ : ι₁) => FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u1)) (succ u4), max (succ u2) (succ u4), max (succ u3) (succ u1)} (AddMonoidHom.{max u2 u4, max u3 u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))) (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) => AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) _x) (AddHomClass.toFunLike.{max (max (max u3 u2) u1) u4, max u2 u4, max u3 u1} (AddMonoidHom.{max u2 u4, max u3 u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))) (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddZeroClass.toAdd.{max u2 u4} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i))) (AddZeroClass.toAdd.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u2) u1) u4, max u2 u4, max u3 u1} (AddMonoidHom.{max u2 u4, max u3 u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))) (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5))) (AddMonoidHom.addMonoidHomClass.{max u2 u4, max u3 u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))))) (Dfinsupp.sumAddHom.{u4, u2, max u3 u1} ι₂ (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (fun (i₂ : ι₂) => β₂ i₂) (fun (a : ι₂) (b : ι₂) => _inst_2 a b) (fun (i₂ : ι₂) => _inst_4 i₂) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5) (fun (i₂ : ι₂) => AddMonoidHom.flip.{u3, u2, u1} (β₁ i₁) (β₂ i₂) γ (_inst_3 i₁) (_inst_4 i₂) _inst_5 (h i₁ i₂))) f₂)) f₁)
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.sum_add_hom_comm Dfinsupp.sumAddHom_commₓ'. -/
 theorem sumAddHom_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂ : ι₂ → Type _} {γ : Type _}
     [DecidableEq ι₁] [DecidableEq ι₂] [∀ i, AddZeroClass (β₁ i)] [∀ i, AddZeroClass (β₂ i)]
@@ -2985,10 +2886,7 @@ def liftAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] : (∀ i, β i 
 #align dfinsupp.lift_add_hom Dfinsupp.liftAddHom
 
 /- warning: dfinsupp.lift_add_hom_single_add_hom -> Dfinsupp.liftAddHom_singleAddHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)], Eq.{succ (max u1 u2)} (AddMonoidHom.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (AddEquiv.{max u1 u2, max u1 u2} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.hasAdd.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (fun (_x : AddEquiv.{max u1 u2, max u1 u2} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.hasAdd.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) => (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) -> (AddMonoidHom.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (AddEquiv.hasCoeToFun.{max u1 u2, max u1 u2} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.hasAdd.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (Dfinsupp.liftAddHom.{u1, u2, max u1 u2} ι (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoidHom.id.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)))
-but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)], Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (FunLike.coe.{succ (max u1 u2), succ (max u1 u2), succ (max u1 u2)} (AddEquiv.{max u1 u2, max u1 u2} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.add.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.add.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) _x) (EmbeddingLike.toFunLike.{succ (max u1 u2), succ (max u1 u2), succ (max u1 u2)} (AddEquiv.{max u1 u2, max u1 u2} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.add.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.add.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (EquivLike.toEmbeddingLike.{succ (max u1 u2), succ (max u1 u2), succ (max u1 u2)} (AddEquiv.{max u1 u2, max u1 u2} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.add.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.add.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddEquivClass.toEquivLike.{max u1 u2, max u1 u2, max u1 u2} (AddEquiv.{max u1 u2, max u1 u2} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.add.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.add.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.add.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.add.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddEquiv.instAddEquivClassAddEquiv.{max u1 u2, max u1 u2} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.add.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.add.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (Dfinsupp.liftAddHom.{u1, u2, max u1 u2} ι (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoidHom.id.{max u2 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.lift_add_hom_single_add_hom Dfinsupp.liftAddHom_singleAddHomₓ'. -/
 /-- The `dfinsupp` version of `finsupp.lift_add_hom_single_add_hom`,-/
 @[simp]
@@ -2998,10 +2896,7 @@ theorem liftAddHom_singleAddHom [∀ i, AddCommMonoid (β i)] :
 #align dfinsupp.lift_add_hom_single_add_hom Dfinsupp.liftAddHom_singleAddHom
 
 /- warning: dfinsupp.lift_add_hom_apply_single -> Dfinsupp.liftAddHom_apply_single is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (f : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι) (x : β i), Eq.{succ u3} γ (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (coeFn.{max (succ (max u1 u3 u2)) (succ (max u3 u1 u2)), max (succ (max u1 u3 u2)) (succ (max u3 u1 u2))} (AddEquiv.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (fun (_x : AddEquiv.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) => (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) -> (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)))) (AddEquiv.hasCoeToFun.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (Dfinsupp.liftAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2) f) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i)) i x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (β i) -> γ) (AddMonoidHom.hasCoeToFun.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (f i) x)
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (f : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι) (x : β i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) f) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) f) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) f) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (FunLike.coe.{succ (max (max u1 u2) u3), succ (max (max u1 u2) u3), succ (max (max u1 u2) u3)} (AddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) _x) (EmbeddingLike.toFunLike.{succ (max (max u1 u2) u3), succ (max (max u1 u2) u3), succ (max (max u1 u2) u3)} (AddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (EquivLike.toEmbeddingLike.{succ (max (max u1 u2) u3), succ (max (max u1 u2) u3), succ (max (max u1 u2) u3)} (AddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddEquivClass.toEquivLike.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (AddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (AddEquiv.instAddEquivClassAddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2))))) (Dfinsupp.liftAddHom.{u1, u2, u3} ι γ β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2) f) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i x)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => γ) _x) (AddHomClass.toFunLike.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (AddZeroClass.toAdd.{u2} (β i) (_inst_1 i)) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (f i) x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.lift_add_hom_apply_single Dfinsupp.liftAddHom_apply_singleₓ'. -/
 /-- The `dfinsupp` version of `finsupp.lift_add_hom_apply_single`,-/
 theorem liftAddHom_apply_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f : ∀ i, β i →+ γ)
@@ -3009,10 +2904,7 @@ theorem liftAddHom_apply_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ]
 #align dfinsupp.lift_add_hom_apply_single Dfinsupp.liftAddHom_apply_single
 
 /- warning: dfinsupp.lift_add_hom_comp_single -> Dfinsupp.liftAddHom_comp_single is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (f : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι), Eq.{max (succ u3) (succ u2)} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (_inst_1 i) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (coeFn.{max (succ (max u1 u3 u2)) (succ (max u3 u1 u2)), max (succ (max u1 u3 u2)) (succ (max u3 u1 u2))} (AddEquiv.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (fun (_x : AddEquiv.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) => (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) -> (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)))) (AddEquiv.hasCoeToFun.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (Dfinsupp.liftAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2) f) (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i)) (f i)
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (f : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι), Eq.{max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (_inst_1 i) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (FunLike.coe.{succ (max (max u1 u2) u3), succ (max (max u1 u2) u3), succ (max (max u1 u2) u3)} (AddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) _x) (EmbeddingLike.toFunLike.{succ (max (max u1 u2) u3), succ (max (max u1 u2) u3), succ (max (max u1 u2) u3)} (AddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (EquivLike.toEmbeddingLike.{succ (max (max u1 u2) u3), succ (max (max u1 u2) u3), succ (max (max u1 u2) u3)} (AddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddEquivClass.toEquivLike.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (AddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (AddEquiv.instAddEquivClassAddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2))))) (Dfinsupp.liftAddHom.{u1, u2, u3} ι γ β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2) f) (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i)) (f i)
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.lift_add_hom_comp_single Dfinsupp.liftAddHom_comp_singleₓ'. -/
 /-- The `dfinsupp` version of `finsupp.lift_add_hom_comp_single`,-/
 theorem liftAddHom_comp_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f : ∀ i, β i →+ γ)
@@ -3020,10 +2912,7 @@ theorem liftAddHom_comp_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (
 #align dfinsupp.lift_add_hom_comp_single Dfinsupp.liftAddHom_comp_single
 
 /- warning: dfinsupp.comp_lift_add_hom -> Dfinsupp.comp_liftAddHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] {δ : Type.{u4}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] [_inst_3 : AddCommMonoid.{u4} δ] (g : AddMonoidHom.{u3, u4} γ δ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (f : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))), Eq.{max (succ u4) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (AddMonoidHom.comp.{max u1 u2, u3, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3)) g (coeFn.{max (succ (max u1 u3 u2)) (succ (max u3 u1 u2)), max (succ (max u1 u3 u2)) (succ (max u3 u1 u2))} (AddEquiv.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (fun (_x : AddEquiv.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) => (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) -> (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)))) (AddEquiv.hasCoeToFun.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (Dfinsupp.liftAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2) f)) (coeFn.{max (succ (max u1 u4 u2)) (succ (max u4 u1 u2)), max (succ (max u1 u4 u2)) (succ (max u4 u1 u2))} (AddEquiv.{max u1 u4 u2, max u4 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u4} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (Pi.instAdd.{u1, max u4 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u4} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u4} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.hasAdd.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3)) (fun (_x : AddEquiv.{max u1 u4 u2, max u4 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u4} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (Pi.instAdd.{u1, max u4 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u4} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u4} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.hasAdd.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3)) => (forall (i : ι), AddMonoidHom.{u2, u4} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) -> (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3)))) (AddEquiv.hasCoeToFun.{max u1 u4 u2, max u4 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u4} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (Pi.instAdd.{u1, max u4 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u4} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u4} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.hasAdd.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3)) (Dfinsupp.liftAddHom.{u1, u2, u4} ι δ (fun (a : ι) => β a) (fun (a : ι) (b : ι) => dec a b) (fun (a : ι) => _inst_1 a) _inst_3) (fun (a : ι) => AddMonoidHom.comp.{u2, u3, u4} (β a) γ δ (_inst_1 a) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3)) g (f a)))
-but is expected to have type
-  forall {ι : Type.{u2}} {γ : Type.{u4}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u2} ι] {δ : Type.{u1}} [_inst_1 : forall (i : ι), AddZeroClass.{u3} (β i)] [_inst_2 : AddCommMonoid.{u4} γ] [_inst_3 : AddCommMonoid.{u1} δ] (g : AddMonoidHom.{u4, u1} γ δ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (f : forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))), Eq.{max (max (succ u2) (succ u3)) (succ u1)} (AddMonoidHom.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.comp.{max u2 u3, u4, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3)) g (FunLike.coe.{succ (max (max u2 u3) u4), succ (max (max u2 u3) u4), succ (max (max u2 u3) u4)} (AddEquiv.{max (max u2 u3) u4, max (max u2 u3) u4} (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Pi.instAdd.{u2, max u3 u4} ι (fun (i : ι) => AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u3, u4} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (_x : forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) => AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) _x) (EmbeddingLike.toFunLike.{succ (max (max u2 u3) u4), succ (max (max u2 u3) u4), succ (max (max u2 u3) u4)} (AddEquiv.{max (max u2 u3) u4, max (max u2 u3) u4} (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Pi.instAdd.{u2, max u3 u4} ι (fun (i : ι) => AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u3, u4} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (EquivLike.toEmbeddingLike.{succ (max (max u2 u3) u4), succ (max (max u2 u3) u4), succ (max (max u2 u3) u4)} (AddEquiv.{max (max u2 u3) u4, max (max u2 u3) u4} (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Pi.instAdd.{u2, max u3 u4} ι (fun (i : ι) => AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u3, u4} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddEquivClass.toEquivLike.{max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} (AddEquiv.{max (max u2 u3) u4, max (max u2 u3) u4} (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Pi.instAdd.{u2, max u3 u4} ι (fun (i : ι) => AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u3, u4} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Pi.instAdd.{u2, max u3 u4} ι (fun (i : ι) => AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u3, u4} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (AddEquiv.instAddEquivClassAddEquiv.{max (max u2 u3) u4, max (max u2 u3) u4} (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Pi.instAdd.{u2, max u3 u4} ι (fun (i : ι) => AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u3, u4} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2))))) (Dfinsupp.liftAddHom.{u2, u3, u4} ι γ β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2) f)) (FunLike.coe.{succ (max (max u2 u3) u1), succ (max (max u2 u3) u1), succ (max (max u2 u3) u1)} (AddEquiv.{max (max u2 u3) u1, max (max u2 u3) u1} (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (Pi.instAdd.{u2, max u3 u1} ι (fun (i : ι) => AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (i : ι) => AddMonoidHom.add.{u3, u1} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.add.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3)) (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (_x : forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) => AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) _x) (EmbeddingLike.toFunLike.{succ (max (max u2 u3) u1), succ (max (max u2 u3) u1), succ (max (max u2 u3) u1)} (AddEquiv.{max (max u2 u3) u1, max (max u2 u3) u1} (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (Pi.instAdd.{u2, max u3 u1} ι (fun (i : ι) => AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (i : ι) => AddMonoidHom.add.{u3, u1} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.add.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3)) (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (EquivLike.toEmbeddingLike.{succ (max (max u2 u3) u1), succ (max (max u2 u3) u1), succ (max (max u2 u3) u1)} (AddEquiv.{max (max u2 u3) u1, max (max u2 u3) u1} (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (Pi.instAdd.{u2, max u3 u1} ι (fun (i : ι) => AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (i : ι) => AddMonoidHom.add.{u3, u1} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.add.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3)) (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddEquivClass.toEquivLike.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (AddEquiv.{max (max u2 u3) u1, max (max u2 u3) u1} (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (Pi.instAdd.{u2, max u3 u1} ι (fun (i : ι) => AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (i : ι) => AddMonoidHom.add.{u3, u1} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.add.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3)) (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (Pi.instAdd.{u2, max u3 u1} ι (fun (i : ι) => AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (i : ι) => AddMonoidHom.add.{u3, u1} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.add.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3) (AddEquiv.instAddEquivClassAddEquiv.{max (max u2 u3) u1, max (max u2 u3) u1} (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (Pi.instAdd.{u2, max u3 u1} ι (fun (i : ι) => AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (i : ι) => AddMonoidHom.add.{u3, u1} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.add.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3))))) (Dfinsupp.liftAddHom.{u2, u3, u1} ι δ β (fun (a : ι) (b : ι) => dec a b) (fun (a : ι) => _inst_1 a) _inst_3) (fun (a : ι) => AddMonoidHom.comp.{u3, u4, u1} (β a) γ δ (_inst_1 a) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3)) g (f a)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.comp_lift_add_hom Dfinsupp.comp_liftAddHomₓ'. -/
 /-- The `dfinsupp` version of `finsupp.comp_lift_add_hom`,-/
 theorem comp_liftAddHom {δ : Type _} [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] [AddCommMonoid δ]
@@ -3081,10 +2970,7 @@ theorem comp_sumAddHom {δ : Type _} [∀ i, AddZeroClass (β i)] [AddCommMonoid
 #align dfinsupp.comp_sum_add_hom Dfinsupp.comp_sumAddHom
 
 /- warning: dfinsupp.sum_sub_index -> Dfinsupp.sum_sub_index is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (SubNegMonoid.toAddMonoid.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i)))))))))] [_inst_3 : AddCommGroup.{u3} γ] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))} {g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))} {h : forall (i : ι), (β i) -> γ}, (forall (i : ι) (b₁ : β i) (b₂ : β i), Eq.{succ u3} γ (h i (HSub.hSub.{u2, u2, u2} (β i) (β i) (β i) (instHSub.{u2} (β i) (SubNegMonoid.toHasSub.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i)))) b₁ b₂)) (HSub.hSub.{u3, u3, u3} γ γ γ (instHSub.{u3} γ (SubNegMonoid.toHasSub.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_3)))) (h i b₁) (h i b₂))) -> (Eq.{succ u3} γ (Dfinsupp.sum.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (fun (i : ι) (x : β i) => _inst_2 i x) (AddCommGroup.toAddCommMonoid.{u3} γ _inst_3) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.hasSub.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) f g) h) (HSub.hSub.{u3, u3, u3} γ γ γ (instHSub.{u3} γ (SubNegMonoid.toHasSub.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_3)))) (Dfinsupp.sum.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (fun (i : ι) (x : β i) => _inst_2 i x) (AddCommGroup.toAddCommMonoid.{u3} γ _inst_3) f h) (Dfinsupp.sum.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (SubNegMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubNegMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (fun (i : ι) (x : β i) => _inst_2 i x) (AddCommGroup.toAddCommMonoid.{u3} γ _inst_3) g h)))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddGroup.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (NegZeroClass.toZero.{u2} (β i) (SubNegZeroMonoid.toNegZeroClass.{u2} (β i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} (β i) (AddGroup.toSubtractionMonoid.{u2} (β i) (_inst_1 i))))))))] [_inst_3 : AddCommGroup.{u3} γ] {f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))} {g : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))} {h : forall (i : ι), (β i) -> γ}, (forall (i : ι) (b₁ : β i) (b₂ : β i), Eq.{succ u3} γ (h i (HSub.hSub.{u2, u2, u2} (β i) (β i) (β i) (instHSub.{u2} (β i) (SubNegMonoid.toSub.{u2} (β i) (AddGroup.toSubNegMonoid.{u2} (β i) (_inst_1 i)))) b₁ b₂)) (HSub.hSub.{u3, u3, u3} γ γ γ (instHSub.{u3} γ (SubNegMonoid.toSub.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_3)))) (h i b₁) (h i b₂))) -> (Eq.{succ u3} γ (Dfinsupp.sum.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (fun (i : ι) (x : β i) => _inst_2 i x) (AddCommGroup.toAddCommMonoid.{u3} γ _inst_3) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (instHSub.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))) (Dfinsupp.instSubDfinsuppToZeroToNegZeroClassToSubNegZeroMonoidToSubtractionMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) f g) h) (HSub.hSub.{u3, u3, u3} γ γ γ (instHSub.{u3} γ (SubNegMonoid.toSub.{u3} γ (AddGroup.toSubNegMonoid.{u3} γ (AddCommGroup.toAddGroup.{u3} γ _inst_3)))) (Dfinsupp.sum.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (fun (i : ι) (x : β i) => _inst_2 i x) (AddCommGroup.toAddCommMonoid.{u3} γ _inst_3) f h) (Dfinsupp.sum.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => NegZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (i : ι) => β i) i) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (i : ι) => β i) i) (AddGroup.toSubtractionMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) (fun (i : ι) (x : β i) => _inst_2 i x) (AddCommGroup.toAddCommMonoid.{u3} γ _inst_3) g h)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.sum_sub_index Dfinsupp.sum_sub_indexₓ'. -/
 theorem sum_sub_index [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [AddCommGroup γ]
     {f g : Π₀ i, β i} {h : ∀ i, β i → γ} (h_sub : ∀ i b₁ b₂, h i (b₁ - b₂) = h i b₁ - h i b₂) :
@@ -3114,10 +3000,7 @@ theorem prod_finset_sum_index {γ : Type w} {α : Type x} [∀ i, AddCommMonoid
 #align dfinsupp.sum_finset_sum_index Dfinsupp.sum_finset_sum_index
 
 /- warning: dfinsupp.prod_sum_index -> Dfinsupp.prod_sum_index is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u5}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u1} ι] {ι₁ : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι₁] {β₁ : ι₁ -> Type.{u4}} [_inst_2 : forall (i₁ : ι₁), Zero.{u4} (β₁ i₁)] [_inst_3 : forall (i : ι₁) (x : β₁ i), Decidable (Ne.{succ u4} (β₁ i) x (OfNat.ofNat.{u4} (β₁ i) 0 (OfNat.mk.{u4} (β₁ i) 0 (Zero.zero.{u4} (β₁ i) (_inst_2 i)))))] [_inst_4 : forall (i : ι), AddCommMonoid.{u3} (β i)] [_inst_5 : forall (i : ι) (x : β i), Decidable (Ne.{succ u3} (β i) x (OfNat.ofNat.{u3} (β i) 0 (OfNat.mk.{u3} (β i) 0 (Zero.zero.{u3} (β i) (AddZeroClass.toHasZero.{u3} (β i) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_4 i))))))))] [_inst_6 : CommMonoid.{u5} γ] {f : Dfinsupp.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (i : ι₁) => _inst_2 i)} {g : forall (i₁ : ι₁), (β₁ i₁) -> (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i)))))} {h : forall (i : ι), (β i) -> γ}, (forall (i : ι), Eq.{succ u5} γ (h i (OfNat.ofNat.{u3} (β i) 0 (OfNat.mk.{u3} (β i) 0 (Zero.zero.{u3} (β i) (AddZeroClass.toHasZero.{u3} (β i) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_4 i)))))))) (OfNat.ofNat.{u5} γ 1 (OfNat.mk.{u5} γ 1 (One.one.{u5} γ (MulOneClass.toHasOne.{u5} γ (Monoid.toMulOneClass.{u5} γ (CommMonoid.toMonoid.{u5} γ _inst_6))))))) -> (forall (i : ι) (b₁ : β i) (b₂ : β i), Eq.{succ u5} γ (h i (HAdd.hAdd.{u3, u3, u3} (β i) (β i) (β i) (instHAdd.{u3} (β i) (AddZeroClass.toHasAdd.{u3} (β i) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_4 i))))) b₁ b₂)) (HMul.hMul.{u5, u5, u5} γ γ γ (instHMul.{u5} γ (MulOneClass.toHasMul.{u5} γ (Monoid.toMulOneClass.{u5} γ (CommMonoid.toMonoid.{u5} γ _inst_6)))) (h i b₁) (h i b₂))) -> (Eq.{succ u5} γ (Dfinsupp.prod.{u1, u3, u5} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i)))) (fun (i : ι) (x : β i) => _inst_5 i x) _inst_6 (Dfinsupp.sum.{u2, u4, max u1 u3} ι₁ (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))))) (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) (Dfinsupp.addCommMonoid.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) f g) h) (Dfinsupp.prod.{u2, u4, u5} ι₁ γ (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) _inst_6 f (fun (i : ι₁) (b : β₁ i) => Dfinsupp.prod.{u1, u3, u5} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i)))) (fun (i : ι) (x : β i) => _inst_5 i x) _inst_6 (g i b) h)))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u5}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u1} ι] {ι₁ : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι₁] {β₁ : ι₁ -> Type.{u4}} [_inst_2 : forall (i₁ : ι₁), Zero.{u4} (β₁ i₁)] [_inst_3 : forall (i : ι₁) (x : β₁ i), Decidable (Ne.{succ u4} (β₁ i) x (OfNat.ofNat.{u4} (β₁ i) 0 (Zero.toOfNat0.{u4} (β₁ i) (_inst_2 i))))] [_inst_4 : forall (i : ι), AddCommMonoid.{u3} (β i)] [_inst_5 : forall (i : ι) (x : β i), Decidable (Ne.{succ u3} (β i) x (OfNat.ofNat.{u3} (β i) 0 (Zero.toOfNat0.{u3} (β i) (AddMonoid.toZero.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_4 i))))))] [_inst_6 : CommMonoid.{u5} γ] {f : Dfinsupp.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (i : ι₁) => _inst_2 i)} {g : forall (i₁ : ι₁), (β₁ i₁) -> (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))))} {h : forall (i : ι), (β i) -> γ}, (forall (i : ι), Eq.{succ u5} γ (h i (OfNat.ofNat.{u3} (β i) 0 (Zero.toOfNat0.{u3} (β i) (AddMonoid.toZero.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_4 i)))))) (OfNat.ofNat.{u5} γ 1 (One.toOfNat1.{u5} γ (Monoid.toOne.{u5} γ (CommMonoid.toMonoid.{u5} γ _inst_6))))) -> (forall (i : ι) (b₁ : β i) (b₂ : β i), Eq.{succ u5} γ (h i (HAdd.hAdd.{u3, u3, u3} (β i) (β i) (β i) (instHAdd.{u3} (β i) (AddZeroClass.toAdd.{u3} (β i) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_4 i))))) b₁ b₂)) (HMul.hMul.{u5, u5, u5} γ γ γ (instHMul.{u5} γ (MulOneClass.toMul.{u5} γ (Monoid.toMulOneClass.{u5} γ (CommMonoid.toMonoid.{u5} γ _inst_6)))) (h i b₁) (h i b₂))) -> (Eq.{succ u5} γ (Dfinsupp.prod.{u1, u3, u5} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (i : ι) (x : β i) => _inst_5 i x) _inst_6 (Dfinsupp.sum.{u2, u4, max u1 u3} ι₁ (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i)))) (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) f g) h) (Dfinsupp.prod.{u2, u4, u5} ι₁ γ (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) _inst_6 f (fun (i : ι₁) (b : β₁ i) => Dfinsupp.prod.{u1, u3, u5} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (i : ι) (x : β i) => _inst_5 i x) _inst_6 (g i b) h)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.prod_sum_index Dfinsupp.prod_sum_indexₓ'. -/
 @[to_additive]
 theorem prod_sum_index {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
@@ -3171,10 +3054,7 @@ theorem subtypeDomain_sum [∀ i, AddCommMonoid (β i)] {s : Finset γ} {h : γ
 #align dfinsupp.subtype_domain_sum Dfinsupp.subtypeDomain_sum
 
 /- warning: dfinsupp.subtype_domain_finsupp_sum -> Dfinsupp.subtypeDomain_finsupp_sum is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} {δ : γ -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} γ] [_inst_2 : forall (c : γ), Zero.{u4} (δ c)] [_inst_3 : forall (c : γ) (x : δ c), Decidable (Ne.{succ u4} (δ c) x (OfNat.ofNat.{u4} (δ c) 0 (OfNat.mk.{u4} (δ c) 0 (Zero.zero.{u4} (δ c) (_inst_2 c)))))] [_inst_4 : forall (i : ι), AddCommMonoid.{u2} (β i)] {p : ι -> Prop} [_inst_5 : DecidablePred.{succ u1} ι p] {s : Dfinsupp.{u3, u4} γ (fun (c : γ) => δ c) (fun (i : γ) => _inst_2 i)} {h : forall (c : γ), (δ c) -> (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_4 i)))))}, Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_4 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_4 i)))) p (fun (a : ι) => _inst_5 a) (Dfinsupp.sum.{u3, u4, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))))) (fun (c : γ) => δ c) (fun (a : γ) (b : γ) => _inst_1 a b) (fun (i : γ) => _inst_2 i) (fun (i : γ) (x : δ i) => _inst_3 i x) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) s h)) (Dfinsupp.sum.{u3, u4, max u1 u2} γ (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_4 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))))) (fun (c : γ) => δ c) (fun (a : γ) (b : γ) => _inst_1 a b) (fun (i : γ) => _inst_2 i) (fun (i : γ) (x : δ i) => _inst_3 i x) (Dfinsupp.addCommMonoid.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => _inst_4 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i))) s (fun (c : γ) (d : δ c) => Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_4 i)))) p (fun (a : ι) => _inst_5 a) (h c d)))
-but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} {δ : γ -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} γ] [_inst_2 : forall (c : γ), Zero.{u4} (δ c)] [_inst_3 : forall (c : γ) (x : δ c), Decidable (Ne.{succ u4} (δ c) x (OfNat.ofNat.{u4} (δ c) 0 (Zero.toOfNat0.{u4} (δ c) (_inst_2 c))))] [_inst_4 : forall (i : ι), AddCommMonoid.{u2} (β i)] {p : ι -> Prop} [_inst_5 : DecidablePred.{succ u1} ι p] {s : Dfinsupp.{u3, u4} γ (fun (c : γ) => δ c) (fun (i : γ) => _inst_2 i)} {h : forall (c : γ), (δ c) -> (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))))}, Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_4 (Subtype.val.{succ u1} ι p i))))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) p (fun (a : ι) => _inst_5 a) (Dfinsupp.sum.{u3, u4, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_4 i)))) (fun (c : γ) => δ c) (fun (a : γ) (b : γ) => _inst_1 a b) (fun (i : γ) => _inst_2 i) (fun (i : γ) (x : δ i) => _inst_3 i x) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) s h)) (Dfinsupp.sum.{u3, u4, max u1 u2} γ (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_4 (Subtype.val.{succ u1} ι p i))))) (fun (c : γ) => δ c) (fun (a : γ) (b : γ) => _inst_1 a b) (fun (i : γ) => _inst_2 i) (fun (i : γ) (x : δ i) => _inst_3 i x) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => _inst_4 (Subtype.val.{succ u1} ι p i))) s (fun (c : γ) (d : δ c) => Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) p (fun (a : ι) => _inst_5 a) (h c d)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align dfinsupp.subtype_domain_finsupp_sum Dfinsupp.subtypeDomain_finsupp_sumₓ'. -/
 theorem subtypeDomain_finsupp_sum {δ : γ → Type x} [DecidableEq γ] [∀ c, Zero (δ c)]
     [∀ (c) (x : δ c), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)] {p : ι → Prop} [DecidablePred p]
@@ -3337,10 +3217,7 @@ variable {R S : Type _}
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
 /- warning: monoid_hom.map_dfinsupp_prod -> MonoidHom.map_dfinsupp_prod is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : CommMonoid.{u3} R] [_inst_5 : CommMonoid.{u4} S] (h : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u4} S (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) h (Dfinsupp.prod.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (Dfinsupp.prod.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) h (g a b)))
-but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : CommMonoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (h : MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) h (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (Dfinsupp.prod.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) h (g a b)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align monoid_hom.map_dfinsupp_prod MonoidHom.map_dfinsupp_prodₓ'. -/
 @[simp, to_additive]
 theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R →* S) (f : Π₀ i, β i)
@@ -3384,10 +3261,7 @@ variable {R S : Type _}
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
 /- warning: ring_hom.map_dfinsupp_prod -> RingHom.map_dfinsupp_prod is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : CommSemiring.{u3} R] [_inst_5 : CommSemiring.{u4} S] (h : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) (fun (_x : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) h (Dfinsupp.prod.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u3} R _inst_4) f g)) (Dfinsupp.prod.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u4} S _inst_5) f (fun (a : ι) (b : β a) => coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) (fun (_x : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) h (g a b)))
-but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : CommSemiring.{u2} R] [_inst_5 : CommSemiring.{u1} S] (h : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u2} R _inst_4) f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))))) h (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u2} R _inst_4) f g)) (Dfinsupp.prod.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u1} S _inst_5) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))))) h (g a b)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_prod RingHom.map_dfinsupp_prodₓ'. -/
 @[simp]
 theorem map_dfinsupp_prod [CommSemiring R] [CommSemiring S] (h : R →+* S) (f : Π₀ i, β i)
@@ -3396,10 +3270,7 @@ theorem map_dfinsupp_prod [CommSemiring R] [CommSemiring S] (h : R →+* S) (f :
 #align ring_hom.map_dfinsupp_prod RingHom.map_dfinsupp_prod
 
 /- warning: ring_hom.map_dfinsupp_sum -> RingHom.map_dfinsupp_sum is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : NonAssocSemiring.{u3} R] [_inst_5 : NonAssocSemiring.{u4} S] (h : RingHom.{u3, u4} R S _inst_4 _inst_5) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S _inst_4 _inst_5) (fun (_x : RingHom.{u3, u4} R S _inst_4 _inst_5) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S _inst_4 _inst_5) h (Dfinsupp.sum.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_4)) f g)) (Dfinsupp.sum.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_5)) f (fun (a : ι) (b : β a) => coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S _inst_4 _inst_5) (fun (_x : RingHom.{u3, u4} R S _inst_4 _inst_5) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S _inst_4 _inst_5) h (g a b)))
-but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : NonAssocSemiring.{u2} R] [_inst_5 : NonAssocSemiring.{u1} S] (h : RingHom.{u2, u1} R S _inst_4 _inst_5) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Dfinsupp.sum.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S _inst_4 _inst_5 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_4 _inst_5)))) h (Dfinsupp.sum.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) f g)) (Dfinsupp.sum.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S _inst_4 _inst_5 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_4 _inst_5)))) h (g a b)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_sum RingHom.map_dfinsupp_sumₓ'. -/
 @[simp]
 theorem map_dfinsupp_sum [NonAssocSemiring R] [NonAssocSemiring S] (h : R →+* S) (f : Π₀ i, β i)
@@ -3416,10 +3287,7 @@ variable {R S : Type _}
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
 /- warning: mul_equiv.map_dfinsupp_prod -> MulEquiv.map_dfinsupp_prod is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : CommMonoid.{u3} R] [_inst_5 : CommMonoid.{u4} S] (h : MulEquiv.{u3, u4} R S (MulOneClass.toHasMul.{u3} R (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4))) (MulOneClass.toHasMul.{u4} S (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (MulEquiv.{u3, u4} R S (MulOneClass.toHasMul.{u3} R (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4))) (MulOneClass.toHasMul.{u4} S (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) (fun (_x : MulEquiv.{u3, u4} R S (MulOneClass.toHasMul.{u3} R (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4))) (MulOneClass.toHasMul.{u4} S (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) => R -> S) (MulEquiv.hasCoeToFun.{u3, u4} R S (MulOneClass.toHasMul.{u3} R (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4))) (MulOneClass.toHasMul.{u4} S (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) h (Dfinsupp.prod.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (Dfinsupp.prod.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (MulEquiv.{u3, u4} R S (MulOneClass.toHasMul.{u3} R (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4))) (MulOneClass.toHasMul.{u4} S (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) (fun (_x : MulEquiv.{u3, u4} R S (MulOneClass.toHasMul.{u3} R (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4))) (MulOneClass.toHasMul.{u4} S (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) => R -> S) (MulEquiv.hasCoeToFun.{u3, u4} R S (MulOneClass.toHasMul.{u3} R (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4))) (MulOneClass.toHasMul.{u4} S (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) h (g a b)))
-but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : CommMonoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (h : MulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : R) => S) (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) R (fun (_x : R) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : R) => S) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) R S (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) R S (MulEquivClass.toEquivLike.{max u2 u1, u2, u1} (MulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MulEquiv.instMulEquivClassMulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))))) h (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (Dfinsupp.prod.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) R (fun (_x : R) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : R) => S) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) R S (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) R S (MulEquivClass.toEquivLike.{max u2 u1, u2, u1} (MulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MulEquiv.instMulEquivClassMulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))))) h (g a b)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align mul_equiv.map_dfinsupp_prod MulEquiv.map_dfinsupp_prodₓ'. -/
 @[simp, to_additive]
 theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R ≃* S) (f : Π₀ i, β i)
@@ -3440,10 +3308,7 @@ variable {R S : Type _}
 open Dfinsupp
 
 /- warning: add_monoid_hom.map_dfinsupp_sum_add_hom -> AddMonoidHom.map_dfinsupp_sumAddHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : AddCommMonoid.{u3} R] [_inst_3 : AddCommMonoid.{u4} S] [_inst_4 : forall (i : ι), AddZeroClass.{u2} (β i)] (h : AddMonoidHom.{u3, u4} R S (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u2, u3} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))), Eq.{succ u4} S (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (AddMonoidHom.{u3, u4} R S (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{u3, u4} R S (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => R -> S) (AddMonoidHom.hasCoeToFun.{u3, u4} R S (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) h (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (coeFn.{max (succ u4) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u4)} (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> S) (AddMonoidHom.hasCoeToFun.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.sumAddHom.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u2, u3, u4} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)) h (g i))) f)
-but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : AddCommMonoid.{u2} R] [_inst_3 : AddCommMonoid.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (h : AddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, u2} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : R) => S) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (a : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) a) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : R) => S) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) h (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u4, u2, u1} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) h (g i))) f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.map_dfinsupp_sum_add_hom AddMonoidHom.map_dfinsupp_sumAddHomₓ'. -/
 @[simp]
 theorem map_dfinsupp_sumAddHom [AddCommMonoid R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
@@ -3453,10 +3318,7 @@ theorem map_dfinsupp_sumAddHom [AddCommMonoid R] [AddCommMonoid S] [∀ i, AddZe
 #align add_monoid_hom.map_dfinsupp_sum_add_hom AddMonoidHom.map_dfinsupp_sumAddHom
 
 /- warning: add_monoid_hom.dfinsupp_sum_add_hom_apply -> AddMonoidHom.dfinsupp_sumAddHom_apply is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : AddZeroClass.{u3} R] [_inst_3 : AddCommMonoid.{u4} S] [_inst_4 : forall (i : ι), AddZeroClass.{u2} (β i)] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u2, max u4 u3} (β i) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) (r : R), Eq.{succ u4} S (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => R -> S) (AddMonoidHom.hasCoeToFun.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (coeFn.{max (succ (max u4 u3)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ (max u4 u3))} (AddMonoidHom.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) (fun (_x : AddMonoidHom.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) (Dfinsupp.sumAddHom.{u1, u2, max u4 u3} ι (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3) g) f) r) (coeFn.{max (succ u4) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u4)} (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> S) (AddMonoidHom.hasCoeToFun.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.sumAddHom.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u2, max u4 u3, u4} (β i) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (_inst_4 i) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)) (coeFn.{max (succ (max u4 u3)) (succ u3), max (succ u3) (succ (max u4 u3))} (AddMonoidHom.{u3, max u4 u3} R (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) _inst_3)))) (fun (_x : AddMonoidHom.{u3, max u4 u3} R (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) _inst_3)))) => R -> (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) (AddMonoidHom.hasCoeToFun.{u3, max u4 u3} R (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) _inst_3)))) (AddMonoidHom.eval.{u3, u4} R S _inst_2 _inst_3) r) (g i))) f)
-but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : AddZeroClass.{u2} R] [_inst_3 : AddCommMonoid.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, max u1 u2} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (r : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : R) => S) r) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : R) => S) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S (AddZeroClass.toAdd.{u2} R _inst_2) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (FunLike.coe.{max (max (max (succ u3) (succ u4)) (succ u2)) (succ u1), max (succ u3) (succ u4), max (succ u2) (succ u1)} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _x) (AddHomClass.toFunLike.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))))) (Dfinsupp.sumAddHom.{u3, u4, max u2 u1} ι (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3) g) f) r) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u4, max u2 u1, u1} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u1 u2} R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : R) => AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u1 u2} R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))) R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddZeroClass.toAdd.{u2} R _inst_2) (AddZeroClass.toAdd.{max u1 u2} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u1 u2} R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))) R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))))) (AddMonoidHom.eval.{u2, u1} R S _inst_2 _inst_3) r) (g i))) f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.dfinsupp_sum_add_hom_apply AddMonoidHom.dfinsupp_sumAddHom_applyₓ'. -/
 @[simp]
 theorem dfinsupp_sumAddHom_apply [AddZeroClass R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
@@ -3466,10 +3328,7 @@ theorem dfinsupp_sumAddHom_apply [AddZeroClass R] [AddCommMonoid S] [∀ i, AddZ
 #align add_monoid_hom.dfinsupp_sum_add_hom_apply AddMonoidHom.dfinsupp_sumAddHom_apply
 
 /- warning: add_monoid_hom.coe_dfinsupp_sum_add_hom -> AddMonoidHom.coe_dfinsupp_sumAddHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : AddZeroClass.{u3} R] [_inst_3 : AddCommMonoid.{u4} S] [_inst_4 : forall (i : ι), AddZeroClass.{u2} (β i)] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u2, max u4 u3} (β i) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))), Eq.{max (succ u3) (succ u4)} (R -> S) (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => R -> S) (AddMonoidHom.hasCoeToFun.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (coeFn.{max (succ (max u4 u3)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ (max u4 u3))} (AddMonoidHom.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) (fun (_x : AddMonoidHom.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) (Dfinsupp.sumAddHom.{u1, u2, max u4 u3} ι (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3) g) f)) (coeFn.{max (succ (max u3 u4)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ (max u3 u4))} (AddMonoidHom.{max u1 u2, max u3 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (R -> S) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u3 u4} (R -> S) (AddCommMonoid.toAddMonoid.{max u3 u4} (R -> S) (Pi.addCommMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3))))) (fun (_x : AddMonoidHom.{max u1 u2, max u3 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (R -> S) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u3 u4} (R -> S) (AddCommMonoid.toAddMonoid.{max u3 u4} (R -> S) (Pi.addCommMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3))))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> R -> S) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u3 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (R -> S) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u3 u4} (R -> S) (AddCommMonoid.toAddMonoid.{max u3 u4} (R -> S) (Pi.addCommMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.sumAddHom.{u1, u2, max u3 u4} ι (R -> S) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (Pi.addCommMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u2, max u4 u3, max u3 u4} (β i) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (R -> S) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (Pi.addZeroClass.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.coeFn.{u3, u4} R S _inst_2 _inst_3) (g i))) f)
-but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : AddZeroClass.{u2} R] [_inst_3 : AddCommMonoid.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, max u1 u2} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : R) => S) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S (AddZeroClass.toAdd.{u2} R _inst_2) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (FunLike.coe.{max (max (max (succ u3) (succ u4)) (succ u2)) (succ u1), max (succ u3) (succ u4), max (succ u2) (succ u1)} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _x) (AddHomClass.toFunLike.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))))) (Dfinsupp.sumAddHom.{u3, u4, max u2 u1} ι (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3) g) f)) (FunLike.coe.{max (max (max (succ u3) (succ u4)) (succ u2)) (succ u1), max (succ u3) (succ u4), max (succ u2) (succ u1)} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.3000 : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R -> S) _x) (AddHomClass.toFunLike.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.3000 : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{max u2 u1} (R -> S) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.3000 : R) => S) (fun (i : R) => _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.3000 : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.3000 : R) => S) (fun (i : R) => _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.3000 : R) => S) (fun (i : R) => _inst_3))))))) (Dfinsupp.sumAddHom.{u3, u4, max u2 u1} ι (R -> S) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (Pi.addCommMonoid.{u2, u1} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u4, max u2 u1, max u2 u1} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (R -> S) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (Pi.addZeroClass.{u2, u1} R (fun (ᾰ : R) => S) (fun (i : R) => AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.coeFn.{u2, u1} R S _inst_2 _inst_3) (g i))) f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.coe_dfinsupp_sum_add_hom AddMonoidHom.coe_dfinsupp_sumAddHomₓ'. -/
 theorem coe_dfinsupp_sumAddHom [AddZeroClass R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (f : Π₀ i, β i) (g : ∀ i, β i →+ R →+ S) :
@@ -3486,10 +3345,7 @@ variable {R S : Type _}
 open Dfinsupp
 
 /- warning: ring_hom.map_dfinsupp_sum_add_hom -> RingHom.map_dfinsupp_sumAddHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : NonAssocSemiring.{u3} R] [_inst_3 : NonAssocSemiring.{u4} S] [_inst_4 : forall (i : ι), AddZeroClass.{u2} (β i)] (h : RingHom.{u3, u4} R S _inst_2 _inst_3) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u2, u3} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_2))))), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S _inst_2 _inst_3) (fun (_x : RingHom.{u3, u4} R S _inst_2 _inst_3) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S _inst_2 _inst_3) h (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2))))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2))))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2)) g) f)) (coeFn.{max (succ u4) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u4)} (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3))))) (fun (_x : AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3))))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> S) (AddMonoidHom.hasCoeToFun.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3))))) (Dfinsupp.sumAddHom.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u2, u3, u4} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_2)))) (AddMonoid.toAddZeroClass.{u4} S (AddMonoidWithOne.toAddMonoid.{u4} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u4} S (NonAssocSemiring.toAddCommMonoidWithOne.{u4} S _inst_3)))) (RingHom.toAddMonoidHom.{u3, u4} R S _inst_2 _inst_3 h) (g i))) f)
-but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : NonAssocSemiring.{u2} R] [_inst_3 : NonAssocSemiring.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (h : RingHom.{u2, u1} R S _inst_2 _inst_3) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, u2} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R _inst_2))))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (a : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) a) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) g) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S _inst_2 _inst_3 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_2 _inst_3)))) h (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) g) f)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u4, u2, u1} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R _inst_2)))) (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S _inst_3)))) (RingHom.toAddMonoidHom.{u2, u1} R S _inst_2 _inst_3 h) (g i))) f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_sum_add_hom RingHom.map_dfinsupp_sumAddHomₓ'. -/
 @[simp]
 theorem map_dfinsupp_sumAddHom [NonAssocSemiring R] [NonAssocSemiring S] [∀ i, AddZeroClass (β i)]
@@ -3507,10 +3363,7 @@ variable {R S : Type _}
 open Dfinsupp
 
 /- warning: add_equiv.map_dfinsupp_sum_add_hom -> AddEquiv.map_dfinsupp_sumAddHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : AddCommMonoid.{u3} R] [_inst_3 : AddCommMonoid.{u4} S] [_inst_4 : forall (i : ι), AddZeroClass.{u2} (β i)] (h : AddEquiv.{u3, u4} R S (AddZeroClass.toHasAdd.{u3} R (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (AddZeroClass.toHasAdd.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u2, u3} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AddEquiv.{u3, u4} R S (AddZeroClass.toHasAdd.{u3} R (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (AddZeroClass.toHasAdd.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) (fun (_x : AddEquiv.{u3, u4} R S (AddZeroClass.toHasAdd.{u3} R (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (AddZeroClass.toHasAdd.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) => R -> S) (AddEquiv.hasCoeToFun.{u3, u4} R S (AddZeroClass.toHasAdd.{u3} R (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (AddZeroClass.toHasAdd.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) h (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (coeFn.{max (succ u4) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u4)} (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> S) (AddMonoidHom.hasCoeToFun.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.sumAddHom.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u2, u3, u4} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)) (AddEquiv.toAddMonoidHom.{u3, u4} R S (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)) h) (g i))) f)
-but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : AddCommMonoid.{u2} R] [_inst_3 : AddCommMonoid.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (h : AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, u2} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))), Eq.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : R) => S) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (a : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) a) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) R (fun (_x : R) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : R) => S) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) R S (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) R S (AddEquivClass.toEquivLike.{max u2 u1, u2, u1} (AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddEquiv.instAddEquivClassAddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))))) h (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u4, u2, u1} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddEquiv.toAddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) h) (g i))) f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align add_equiv.map_dfinsupp_sum_add_hom AddEquiv.map_dfinsupp_sumAddHomₓ'. -/
 @[simp]
 theorem map_dfinsupp_sumAddHom [AddCommMonoid R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
Diff
@@ -1409,7 +1409,7 @@ protected theorem induction {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (
         · left
           exact H3
       right
-      split_ifs <;> [rfl, exact H2]
+      split_ifs <;> [rfl;exact H2]
     have H3 :
       (⟨fun j : ι => ite (j = i) 0 (f j), Trunc.mk ⟨i ::ₘ s, _⟩⟩ : Π₀ i, β i) =
         ⟨fun j : ι => ite (j = i) 0 (f j), Trunc.mk ⟨s, H2⟩⟩ :=
@@ -1505,7 +1505,7 @@ Case conversion may be inaccurate. Consider using '#align dfinsupp.mk_add Dfinsu
 @[simp]
 theorem mk_add [∀ i, AddZeroClass (β i)] {s : Finset ι} {x y : ∀ i : (↑s : Set ι), β i} :
     mk s (x + y) = mk s x + mk s y :=
-  ext fun i => by simp only [add_apply, mk_apply] <;> split_ifs <;> [rfl, rw [zero_add]]
+  ext fun i => by simp only [add_apply, mk_apply] <;> split_ifs <;> [rfl;rw [zero_add]]
 #align dfinsupp.mk_add Dfinsupp.mk_add
 
 #print Dfinsupp.mk_zero /-
@@ -1524,7 +1524,7 @@ Case conversion may be inaccurate. Consider using '#align dfinsupp.mk_neg Dfinsu
 @[simp]
 theorem mk_neg [∀ i, AddGroup (β i)] {s : Finset ι} {x : ∀ i : (↑s : Set ι), β i.1} :
     mk s (-x) = -mk s x :=
-  ext fun i => by simp only [neg_apply, mk_apply] <;> split_ifs <;> [rfl, rw [neg_zero]]
+  ext fun i => by simp only [neg_apply, mk_apply] <;> split_ifs <;> [rfl;rw [neg_zero]]
 #align dfinsupp.mk_neg Dfinsupp.mk_neg
 
 /- warning: dfinsupp.mk_sub -> Dfinsupp.mk_sub is a dubious translation:
@@ -1536,7 +1536,7 @@ Case conversion may be inaccurate. Consider using '#align dfinsupp.mk_sub Dfinsu
 @[simp]
 theorem mk_sub [∀ i, AddGroup (β i)] {s : Finset ι} {x y : ∀ i : (↑s : Set ι), β i.1} :
     mk s (x - y) = mk s x - mk s y :=
-  ext fun i => by simp only [sub_apply, mk_apply] <;> split_ifs <;> [rfl, rw [sub_zero]]
+  ext fun i => by simp only [sub_apply, mk_apply] <;> split_ifs <;> [rfl;rw [sub_zero]]
 #align dfinsupp.mk_sub Dfinsupp.mk_sub
 
 /- warning: dfinsupp.mk_add_group_hom -> Dfinsupp.mkAddGroupHom is a dubious translation:
@@ -1567,7 +1567,7 @@ Case conversion may be inaccurate. Consider using '#align dfinsupp.mk_smul Dfins
 @[simp]
 theorem mk_smul {s : Finset ι} (c : γ) (x : ∀ i : (↑s : Set ι), β (i : ι)) :
     mk s (c • x) = c • mk s x :=
-  ext fun i => by simp only [smul_apply, mk_apply] <;> split_ifs <;> [rfl, rw [smul_zero]]
+  ext fun i => by simp only [smul_apply, mk_apply] <;> split_ifs <;> [rfl;rw [smul_zero]]
 #align dfinsupp.mk_smul Dfinsupp.mk_smul
 
 /- warning: dfinsupp.single_smul -> Dfinsupp.single_smul is a dubious translation:
@@ -1579,7 +1579,7 @@ Case conversion may be inaccurate. Consider using '#align dfinsupp.single_smul D
 @[simp]
 theorem single_smul {i : ι} (c : γ) (x : β i) : single i (c • x) = c • single i x :=
   ext fun i => by
-    simp only [smul_apply, single_apply] <;> split_ifs <;> [cases h, rw [smul_zero]] <;> rfl
+    simp only [smul_apply, single_apply] <;> split_ifs <;> [cases h;rw [smul_zero]] <;> rfl
 #align dfinsupp.single_smul Dfinsupp.single_smul
 
 end
@@ -1637,7 +1637,7 @@ theorem eq_mk_support (f : Π₀ i, β i) : f = mk f.support fun i => f i :=
   by
   change f = mk f.support fun i => f i.1
   ext i
-  by_cases h : f i ≠ 0 <;> [skip, rw [Classical.not_not] at h] <;> simp [h]
+  by_cases h : f i ≠ 0 <;> [skip;rw [Classical.not_not] at h] <;> simp [h]
 #align dfinsupp.eq_mk_support Dfinsupp.eq_mk_support
 -/
 
@@ -1719,7 +1719,7 @@ theorem mapRange_single {f : ∀ i, β₁ i → β₂ i} {hf : ∀ i, f i 0 = 0}
     by_cases i = i' <;>
       [·
         subst i'
-        simp, simp [h, hf]]
+        simp;simp [h, hf]]
 #align dfinsupp.map_range_single Dfinsupp.mapRange_single
 -/
 
Diff
@@ -2459,7 +2459,7 @@ noncomputable def equivProdDfinsupp [∀ i, Zero (α i)] : (Π₀ i, α i) ≃ 
 lean 3 declaration is
   forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {α : (Option.{u1} ι) -> Type.{u2}} [_inst_1 : forall (i : Option.{u1} ι), AddZeroClass.{u2} (α i)] (f : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (g : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))), Eq.{max (succ u2) (succ (max u1 u2))} (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (coeFn.{max 1 (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (fun (_x : Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) => (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) -> (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_1 i))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (instHAdd.{max u1 u2} (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (Prod.hasAdd.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))) (AddZeroClass.toHasAdd.{u2} (α (Option.none.{u1} ι)) (_inst_1 (Option.none.{u1} ι))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_1 (Option.some.{u1} ι i))))) (coeFn.{max 1 (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (fun (_x : Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) => (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) -> (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) f) (coeFn.{max 1 (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (fun (_x : Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) => (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) -> (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) g))
 but is expected to have type
-  forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {α : (Option.{u1} ι) -> Type.{u2}} [_inst_1 : forall (i : Option.{u1} ι), AddZeroClass.{u2} (α i)] (f : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (g : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_1 i))) f g)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_1 i))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) f) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) g) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) f) (instHAdd.{max u1 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) f) (Prod.instAddSum.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))) (AddZeroClass.toAdd.{u2} (α (Option.none.{u1} ι)) (_inst_1 (Option.none.{u1} ι))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_1 (Option.some.{u1} ι i))))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) f) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) g))
+  forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {α : (Option.{u1} ι) -> Type.{u2}} [_inst_1 : forall (i : Option.{u1} ι), AddZeroClass.{u2} (α i)] (f : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (g : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_1 i))) f g)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_1 i))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) f) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) g) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) f) (instHAdd.{max u1 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) f) (Prod.instAddSum.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))) (AddZeroClass.toAdd.{u2} (α (Option.none.{u1} ι)) (_inst_1 (Option.none.{u1} ι))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_1 (Option.some.{u1} ι i))))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) f) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) g))
 Case conversion may be inaccurate. Consider using '#align dfinsupp.equiv_prod_dfinsupp_add Dfinsupp.equivProdDfinsupp_addₓ'. -/
 theorem equivProdDfinsupp_add [∀ i, AddZeroClass (α i)] (f g : Π₀ i, α i) :
     equivProdDfinsupp (f + g) = equivProdDfinsupp f + equivProdDfinsupp g :=
@@ -2470,7 +2470,7 @@ theorem equivProdDfinsupp_add [∀ i, AddZeroClass (α i)] (f g : Π₀ i, α i)
 lean 3 declaration is
   forall {ι : Type.{u1}} {γ : Type.{u3}} [dec : DecidableEq.{succ u1} ι] {α : (Option.{u1} ι) -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : Option.{u1} ι), AddMonoid.{u2} (α i)] [_inst_3 : forall (i : Option.{u1} ι), DistribMulAction.{u3, u2} γ (α i) _inst_1 (_inst_2 i)] (r : γ) (f : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))), Eq.{max (succ u2) (succ (max u1 u2))} (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (coeFn.{max 1 (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) (fun (_x : Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) => (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) -> (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (SMul.smul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Dfinsupp.hasSmul.{u1, u2, u3} (Option.{u1} ι) γ (fun (i : Option.{u1} ι) => α i) _inst_1 (fun (i : Option.{u1} ι) => _inst_2 i) (fun (i : Option.{u1} ι) => _inst_3 i)) r f)) (SMul.smul.{u3, max u1 u2} γ (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Prod.smul.{u3, u2, max u1 u2} γ (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) (SMulZeroClass.toHasSmul.{u3, u2} γ (α (Option.none.{u1} ι)) (AddZeroClass.toHasZero.{u2} (α (Option.none.{u1} ι)) (AddMonoid.toAddZeroClass.{u2} (α (Option.none.{u1} ι)) (_inst_2 (Option.none.{u1} ι)))) (DistribSMul.toSmulZeroClass.{u3, u2} γ (α (Option.none.{u1} ι)) (AddMonoid.toAddZeroClass.{u2} (α (Option.none.{u1} ι)) (_inst_2 (Option.none.{u1} ι))) (DistribMulAction.toDistribSMul.{u3, u2} γ (α (Option.none.{u1} ι)) _inst_1 (_inst_2 (Option.none.{u1} ι)) (_inst_3 (Option.none.{u1} ι))))) (Dfinsupp.hasSmul.{u1, u2, u3} ι γ (fun (i : ι) => α (Option.some.{u1} ι i)) _inst_1 (fun (i : ι) => _inst_2 (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i)))) r (coeFn.{max 1 (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) (fun (_x : Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) => (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) -> (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) f))
 but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} [dec : DecidableEq.{succ u1} ι] {α : (Option.{u1} ι) -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : Option.{u1} ι), AddMonoid.{u2} (α i)] [_inst_3 : forall (i : Option.{u1} ι), DistribMulAction.{u3, u2} γ (α i) _inst_1 (_inst_2 i)] (r : γ) (f : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} (Option.{u1} ι) γ (fun (i : Option.{u1} ι) => α i) _inst_1 (fun (i : Option.{u1} ι) => _inst_2 i) (fun (i : Option.{u1} ι) => _inst_3 i))) r f)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} (Option.{u1} ι) γ (fun (i : Option.{u1} ι) => α i) _inst_1 (fun (i : Option.{u1} ι) => _inst_2 i) (fun (i : Option.{u1} ι) => _inst_3 i))) r f)) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) f) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) f) (instHSMul.{u3, max u1 u2} γ ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) f) (Prod.smul.{u3, u2, max u1 u2} γ (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))) (SMulZeroClass.toSMul.{u3, u2} γ (α (Option.none.{u1} ι)) (AddMonoid.toZero.{u2} (α (Option.none.{u1} ι)) (_inst_2 (Option.none.{u1} ι))) (DistribSMul.toSMulZeroClass.{u3, u2} γ (α (Option.none.{u1} ι)) (AddMonoid.toAddZeroClass.{u2} (α (Option.none.{u1} ι)) (_inst_2 (Option.none.{u1} ι))) (DistribMulAction.toDistribSMul.{u3, u2} γ (α (Option.none.{u1} ι)) _inst_1 (_inst_2 (Option.none.{u1} ι)) (_inst_3 (Option.none.{u1} ι))))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι γ (fun (i : ι) => α (Option.some.{u1} ι i)) _inst_1 (fun (i : ι) => _inst_2 (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i))))) r (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) f))
+  forall {ι : Type.{u1}} {γ : Type.{u3}} [dec : DecidableEq.{succ u1} ι] {α : (Option.{u1} ι) -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : Option.{u1} ι), AddMonoid.{u2} (α i)] [_inst_3 : forall (i : Option.{u1} ι), DistribMulAction.{u3, u2} γ (α i) _inst_1 (_inst_2 i)] (r : γ) (f : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} (Option.{u1} ι) γ (fun (i : Option.{u1} ι) => α i) _inst_1 (fun (i : Option.{u1} ι) => _inst_2 i) (fun (i : Option.{u1} ι) => _inst_3 i))) r f)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} (Option.{u1} ι) γ (fun (i : Option.{u1} ι) => α i) _inst_1 (fun (i : Option.{u1} ι) => _inst_2 i) (fun (i : Option.{u1} ι) => _inst_3 i))) r f)) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) f) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) f) (instHSMul.{u3, max u1 u2} γ ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) f) (Prod.smul.{u3, u2, max u1 u2} γ (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))) (SMulZeroClass.toSMul.{u3, u2} γ (α (Option.none.{u1} ι)) (AddMonoid.toZero.{u2} (α (Option.none.{u1} ι)) (_inst_2 (Option.none.{u1} ι))) (DistribSMul.toSMulZeroClass.{u3, u2} γ (α (Option.none.{u1} ι)) (AddMonoid.toAddZeroClass.{u2} (α (Option.none.{u1} ι)) (_inst_2 (Option.none.{u1} ι))) (DistribMulAction.toDistribSMul.{u3, u2} γ (α (Option.none.{u1} ι)) _inst_1 (_inst_2 (Option.none.{u1} ι)) (_inst_3 (Option.none.{u1} ι))))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι γ (fun (i : ι) => α (Option.some.{u1} ι i)) _inst_1 (fun (i : ι) => _inst_2 (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i))))) r (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) f))
 Case conversion may be inaccurate. Consider using '#align dfinsupp.equiv_prod_dfinsupp_smul Dfinsupp.equivProdDfinsupp_smulₓ'. -/
 theorem equivProdDfinsupp_smul [Monoid γ] [∀ i, AddMonoid (α i)] [∀ i, DistribMulAction γ (α i)]
     (r : γ) (f : Π₀ i, α i) : equivProdDfinsupp (r • f) = r • equivProdDfinsupp f :=
@@ -2725,7 +2725,7 @@ theorem dfinsupp_prod_mem [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x
 lean 3 declaration is
   forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : Fintype.{u1} ι] [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : CommMonoid.{u3} γ] (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) [f : forall (i : ι), (β i) -> γ], (forall (i : ι), Eq.{succ u3} γ (f i (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i))))) (OfNat.ofNat.{u3} γ 1 (OfNat.mk.{u3} γ 1 (One.one.{u3} γ (MulOneClass.toHasOne.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_4))))))) -> (Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 v f) (Finset.prod.{u3, u1} γ ι _inst_4 (Finset.univ.{u1} ι _inst_1) (fun (i : ι) => f i (coeFn.{max 1 (max (succ (max u1 u2)) (succ u1) (succ u2)) (max (succ u1) (succ u2)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u1) (succ u2)} (Equiv.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) (fun (_x : Equiv.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) -> (forall (i : ι), β i)) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) (Dfinsupp.equivFunOnFintype.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i) _inst_1) v i))))
 but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : Fintype.{u1} ι] [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (_inst_2 i))))] [_inst_4 : CommMonoid.{u3} γ] (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) {f : forall (i : ι), (β i) -> γ}, (forall (i : ι), Eq.{succ u3} γ (f i (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (_inst_2 i)))) (OfNat.ofNat.{u3} γ 1 (One.toOfNat1.{u3} γ (Monoid.toOne.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_4))))) -> (Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 v f) (Finset.prod.{u3, u1} γ ι _inst_4 (Finset.univ.{u1} ι _inst_1) (fun (i : ι) => f i (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) => forall (i : ι), β i) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) (Dfinsupp.equivFunOnFintype.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i) _inst_1) v i))))
+  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : Fintype.{u1} ι] [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (_inst_2 i))))] [_inst_4 : CommMonoid.{u3} γ] (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) {f : forall (i : ι), (β i) -> γ}, (forall (i : ι), Eq.{succ u3} γ (f i (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (_inst_2 i)))) (OfNat.ofNat.{u3} γ 1 (One.toOfNat1.{u3} γ (Monoid.toOne.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_4))))) -> (Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 v f) (Finset.prod.{u3, u1} γ ι _inst_4 (Finset.univ.{u1} ι _inst_1) (fun (i : ι) => f i (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) => forall (i : ι), β i) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) (Dfinsupp.equivFunOnFintype.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i) _inst_1) v i))))
 Case conversion may be inaccurate. Consider using '#align dfinsupp.prod_eq_prod_fintype Dfinsupp.prod_eq_prod_fintypeₓ'. -/
 @[simp, to_additive]
 theorem prod_eq_prod_fintype [Fintype ι] [∀ i, Zero (β i)] [∀ (i : ι) (x : β i), Decidable (x ≠ 0)]
@@ -3340,7 +3340,7 @@ variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : CommMonoid.{u3} R] [_inst_5 : CommMonoid.{u4} S] (h : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u4} S (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) h (Dfinsupp.prod.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (Dfinsupp.prod.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) h (g a b)))
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : CommMonoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (h : MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) h (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (Dfinsupp.prod.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) h (g a b)))
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : CommMonoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (h : MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) h (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (Dfinsupp.prod.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) h (g a b)))
 Case conversion may be inaccurate. Consider using '#align monoid_hom.map_dfinsupp_prod MonoidHom.map_dfinsupp_prodₓ'. -/
 @[simp, to_additive]
 theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R →* S) (f : Π₀ i, β i)
@@ -3353,7 +3353,7 @@ theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R →* S) (f : Π
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : Monoid.{u3} R] [_inst_5 : CommMonoid.{u4} S] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))), Eq.{succ (max u3 u4)} (R -> S) (coeFn.{succ (max u4 u3), succ (max u3 u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (Dfinsupp.prod.{u1, u2, max u4 u3} ι (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) _inst_5) f g)) (Dfinsupp.prod.{u1, u2, max u3 u4} ι (R -> S) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (Pi.commMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_5)) f (fun (a : ι) (b : β a) => coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (g a b)))
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : Monoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) _inst_5) f g)) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) ᾰ) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (Pi.commMonoid.{u2, u1} R (fun (ᾰ : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) ᾰ) (fun (i : R) => _inst_5)) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (g a b)))
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : Monoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) _inst_5) f g)) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) ᾰ) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (Pi.commMonoid.{u2, u1} R (fun (ᾰ : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) ᾰ) (fun (i : R) => _inst_5)) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (g a b)))
 Case conversion may be inaccurate. Consider using '#align monoid_hom.coe_dfinsupp_prod MonoidHom.coe_dfinsupp_prodₓ'. -/
 @[to_additive]
 theorem coe_dfinsupp_prod [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀ i, β i → R →* S) :
@@ -3366,7 +3366,7 @@ theorem coe_dfinsupp_prod [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : Monoid.{u3} R] [_inst_5 : CommMonoid.{u4} S] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) (r : R), Eq.{succ u4} S (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (Dfinsupp.prod.{u1, u2, max u4 u3} ι (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) _inst_5) f g) r) (Dfinsupp.prod.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (g a b) r))
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : Monoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) (r : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) r) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) _inst_5) f g) r) (Dfinsupp.prod.{u3, u4, u1} ι ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) r) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (g a b) r))
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : Monoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) (r : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) _inst_5) f g) r) (Dfinsupp.prod.{u3, u4, u1} ι ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) r) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (g a b) r))
 Case conversion may be inaccurate. Consider using '#align monoid_hom.dfinsupp_prod_apply MonoidHom.dfinsupp_prod_applyₓ'. -/
 @[simp, to_additive]
 theorem dfinsupp_prod_apply [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀ i, β i → R →* S)
@@ -3387,7 +3387,7 @@ variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : CommSemiring.{u3} R] [_inst_5 : CommSemiring.{u4} S] (h : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) (fun (_x : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) h (Dfinsupp.prod.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u3} R _inst_4) f g)) (Dfinsupp.prod.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u4} S _inst_5) f (fun (a : ι) (b : β a) => coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) (fun (_x : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) h (g a b)))
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : CommSemiring.{u2} R] [_inst_5 : CommSemiring.{u1} S] (h : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u2} R _inst_4) f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))))) h (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u2} R _inst_4) f g)) (Dfinsupp.prod.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u1} S _inst_5) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))))) h (g a b)))
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : CommSemiring.{u2} R] [_inst_5 : CommSemiring.{u1} S] (h : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u2} R _inst_4) f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))))) h (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u2} R _inst_4) f g)) (Dfinsupp.prod.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u1} S _inst_5) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))))) h (g a b)))
 Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_prod RingHom.map_dfinsupp_prodₓ'. -/
 @[simp]
 theorem map_dfinsupp_prod [CommSemiring R] [CommSemiring S] (h : R →+* S) (f : Π₀ i, β i)
@@ -3399,7 +3399,7 @@ theorem map_dfinsupp_prod [CommSemiring R] [CommSemiring S] (h : R →+* S) (f :
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : NonAssocSemiring.{u3} R] [_inst_5 : NonAssocSemiring.{u4} S] (h : RingHom.{u3, u4} R S _inst_4 _inst_5) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S _inst_4 _inst_5) (fun (_x : RingHom.{u3, u4} R S _inst_4 _inst_5) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S _inst_4 _inst_5) h (Dfinsupp.sum.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_4)) f g)) (Dfinsupp.sum.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_5)) f (fun (a : ι) (b : β a) => coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S _inst_4 _inst_5) (fun (_x : RingHom.{u3, u4} R S _inst_4 _inst_5) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S _inst_4 _inst_5) h (g a b)))
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : NonAssocSemiring.{u2} R] [_inst_5 : NonAssocSemiring.{u1} S] (h : RingHom.{u2, u1} R S _inst_4 _inst_5) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) (Dfinsupp.sum.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S _inst_4 _inst_5 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_4 _inst_5)))) h (Dfinsupp.sum.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) f g)) (Dfinsupp.sum.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S _inst_4 _inst_5 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_4 _inst_5)))) h (g a b)))
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : NonAssocSemiring.{u2} R] [_inst_5 : NonAssocSemiring.{u1} S] (h : RingHom.{u2, u1} R S _inst_4 _inst_5) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (Dfinsupp.sum.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S _inst_4 _inst_5 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_4 _inst_5)))) h (Dfinsupp.sum.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) f g)) (Dfinsupp.sum.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S _inst_4 _inst_5 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_4 _inst_5)))) h (g a b)))
 Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_sum RingHom.map_dfinsupp_sumₓ'. -/
 @[simp]
 theorem map_dfinsupp_sum [NonAssocSemiring R] [NonAssocSemiring S] (h : R →+* S) (f : Π₀ i, β i)
@@ -3489,7 +3489,7 @@ open Dfinsupp
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : NonAssocSemiring.{u3} R] [_inst_3 : NonAssocSemiring.{u4} S] [_inst_4 : forall (i : ι), AddZeroClass.{u2} (β i)] (h : RingHom.{u3, u4} R S _inst_2 _inst_3) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u2, u3} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_2))))), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S _inst_2 _inst_3) (fun (_x : RingHom.{u3, u4} R S _inst_2 _inst_3) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S _inst_2 _inst_3) h (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2))))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2))))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2)) g) f)) (coeFn.{max (succ u4) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u4)} (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3))))) (fun (_x : AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3))))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> S) (AddMonoidHom.hasCoeToFun.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3))))) (Dfinsupp.sumAddHom.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u2, u3, u4} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_2)))) (AddMonoid.toAddZeroClass.{u4} S (AddMonoidWithOne.toAddMonoid.{u4} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u4} S (NonAssocSemiring.toAddCommMonoidWithOne.{u4} S _inst_3)))) (RingHom.toAddMonoidHom.{u3, u4} R S _inst_2 _inst_3 h) (g i))) f)
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : NonAssocSemiring.{u2} R] [_inst_3 : NonAssocSemiring.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (h : RingHom.{u2, u1} R S _inst_2 _inst_3) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, u2} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R _inst_2))))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (a : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) a) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) g) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S _inst_2 _inst_3 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_2 _inst_3)))) h (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) g) f)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u4, u2, u1} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R _inst_2)))) (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S _inst_3)))) (RingHom.toAddMonoidHom.{u2, u1} R S _inst_2 _inst_3 h) (g i))) f)
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : NonAssocSemiring.{u2} R] [_inst_3 : NonAssocSemiring.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (h : RingHom.{u2, u1} R S _inst_2 _inst_3) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, u2} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R _inst_2))))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (a : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) a) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) g) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S _inst_2 _inst_3 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_2 _inst_3)))) h (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) g) f)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u4, u2, u1} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R _inst_2)))) (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S _inst_3)))) (RingHom.toAddMonoidHom.{u2, u1} R S _inst_2 _inst_3 h) (g i))) f)
 Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_sum_add_hom RingHom.map_dfinsupp_sumAddHomₓ'. -/
 @[simp]
 theorem map_dfinsupp_sumAddHom [NonAssocSemiring R] [NonAssocSemiring S] [∀ i, AddZeroClass (β i)]
Diff
@@ -2988,7 +2988,7 @@ def liftAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] : (∀ i, β i 
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)], Eq.{succ (max u1 u2)} (AddMonoidHom.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (AddEquiv.{max u1 u2, max u1 u2} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.hasAdd.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (fun (_x : AddEquiv.{max u1 u2, max u1 u2} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.hasAdd.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) => (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) -> (AddMonoidHom.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))))) (AddEquiv.hasCoeToFun.{max u1 u2, max u1 u2} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.hasAdd.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (Dfinsupp.liftAddHom.{u1, u2, max u1 u2} ι (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) ((fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoidHom.id.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) i)))
 but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)], Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ (max u1 u2)), max (max (succ u1) (succ u2)) (succ (max u1 u2)), max (max (succ u1) (succ u2)) (succ (max u1 u2))} (AddEquiv.{max u1 u2, max (max u1 u2) u2 u1} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.add.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.add.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) _x) (EmbeddingLike.toFunLike.{max (max (succ u1) (succ u2)) (succ (max u1 u2)), max (max (succ u1) (succ u2)) (succ (max u1 u2)), max (max (succ u1) (succ u2)) (succ (max u1 u2))} (AddEquiv.{max u1 u2, max (max u1 u2) u2 u1} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.add.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.add.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (EquivLike.toEmbeddingLike.{max (max (succ u1) (succ u2)) (succ (max u1 u2)), max (max (succ u1) (succ u2)) (succ (max u1 u2)), max (max (succ u1) (succ u2)) (succ (max u1 u2))} (AddEquiv.{max u1 u2, max (max u1 u2) u2 u1} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.add.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.add.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddEquivClass.toEquivLike.{max u1 u2, max u1 u2, max u1 u2} (AddEquiv.{max u1 u2, max (max u1 u2) u2 u1} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.add.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.add.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.add.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.add.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddEquiv.instAddEquivClassAddEquiv.{max u1 u2, max u1 u2} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.add.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.add.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (Dfinsupp.liftAddHom.{u1, u2, max u1 u2} ι (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoidHom.id.{max u2 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))))
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)], Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (FunLike.coe.{succ (max u1 u2), succ (max u1 u2), succ (max u1 u2)} (AddEquiv.{max u1 u2, max u1 u2} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.add.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.add.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (_x : forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) => AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) _x) (EmbeddingLike.toFunLike.{succ (max u1 u2), succ (max u1 u2), succ (max u1 u2)} (AddEquiv.{max u1 u2, max u1 u2} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.add.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.add.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (EquivLike.toEmbeddingLike.{succ (max u1 u2), succ (max u1 u2), succ (max u1 u2)} (AddEquiv.{max u1 u2, max u1 u2} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.add.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.add.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddEquivClass.toEquivLike.{max u1 u2, max u1 u2, max u1 u2} (AddEquiv.{max u1 u2, max u1 u2} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.add.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.add.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.add.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.add.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddEquiv.instAddEquivClassAddEquiv.{max u1 u2, max u1 u2} (forall (i : ι), AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (AddMonoidHom.{max u2 u1, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (Pi.instAdd.{u1, max u1 u2} ι (fun (i : ι) => AddMonoidHom.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))) (fun (i : ι) => AddMonoidHom.add.{u2, max u1 u2} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)))) (AddMonoidHom.add.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))))) (Dfinsupp.liftAddHom.{u1, u2, max u1 u2} ι (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i))))) (AddMonoidHom.id.{max u2 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_1 i)))))
 Case conversion may be inaccurate. Consider using '#align dfinsupp.lift_add_hom_single_add_hom Dfinsupp.liftAddHom_singleAddHomₓ'. -/
 /-- The `dfinsupp` version of `finsupp.lift_add_hom_single_add_hom`,-/
 @[simp]
@@ -3001,7 +3001,7 @@ theorem liftAddHom_singleAddHom [∀ i, AddCommMonoid (β i)] :
 lean 3 declaration is
   forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (f : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι) (x : β i), Eq.{succ u3} γ (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (coeFn.{max (succ (max u1 u3 u2)) (succ (max u3 u1 u2)), max (succ (max u1 u3 u2)) (succ (max u3 u1 u2))} (AddEquiv.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (fun (_x : AddEquiv.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) => (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) -> (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)))) (AddEquiv.hasCoeToFun.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (Dfinsupp.liftAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2) f) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i)) i x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (β i) -> γ) (AddMonoidHom.hasCoeToFun.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (f i) x)
 but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (f : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι) (x : β i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) f) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) f) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) f) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AddEquiv.{max (max u1 u2) u3, max u3 u2 u1} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) _x) (EmbeddingLike.toFunLike.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AddEquiv.{max (max u1 u2) u3, max u3 u2 u1} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (EquivLike.toEmbeddingLike.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AddEquiv.{max (max u1 u2) u3, max u3 u2 u1} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddEquivClass.toEquivLike.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (AddEquiv.{max (max u1 u2) u3, max u3 u2 u1} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (AddEquiv.instAddEquivClassAddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2))))) (Dfinsupp.liftAddHom.{u1, u2, u3} ι γ β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2) f) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i x)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => γ) _x) (AddHomClass.toFunLike.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (AddZeroClass.toAdd.{u2} (β i) (_inst_1 i)) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (f i) x)
+  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (f : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι) (x : β i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) f) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) f) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) f) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (FunLike.coe.{succ (max (max u1 u2) u3), succ (max (max u1 u2) u3), succ (max (max u1 u2) u3)} (AddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) _x) (EmbeddingLike.toFunLike.{succ (max (max u1 u2) u3), succ (max (max u1 u2) u3), succ (max (max u1 u2) u3)} (AddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (EquivLike.toEmbeddingLike.{succ (max (max u1 u2) u3), succ (max (max u1 u2) u3), succ (max (max u1 u2) u3)} (AddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddEquivClass.toEquivLike.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (AddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (AddEquiv.instAddEquivClassAddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2))))) (Dfinsupp.liftAddHom.{u1, u2, u3} ι γ β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2) f) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i x)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => γ) _x) (AddHomClass.toFunLike.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (AddZeroClass.toAdd.{u2} (β i) (_inst_1 i)) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (f i) x)
 Case conversion may be inaccurate. Consider using '#align dfinsupp.lift_add_hom_apply_single Dfinsupp.liftAddHom_apply_singleₓ'. -/
 /-- The `dfinsupp` version of `finsupp.lift_add_hom_apply_single`,-/
 theorem liftAddHom_apply_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f : ∀ i, β i →+ γ)
@@ -3012,7 +3012,7 @@ theorem liftAddHom_apply_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ]
 lean 3 declaration is
   forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (f : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι), Eq.{max (succ u3) (succ u2)} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (_inst_1 i) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (coeFn.{max (succ (max u1 u3 u2)) (succ (max u3 u1 u2)), max (succ (max u1 u3 u2)) (succ (max u3 u1 u2))} (AddEquiv.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (fun (_x : AddEquiv.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) => (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) -> (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)))) (AddEquiv.hasCoeToFun.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (Dfinsupp.liftAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2) f) (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i)) (f i)
 but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (f : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι), Eq.{max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (_inst_1 i) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AddEquiv.{max (max u1 u2) u3, max u3 u2 u1} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) _x) (EmbeddingLike.toFunLike.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AddEquiv.{max (max u1 u2) u3, max u3 u2 u1} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (EquivLike.toEmbeddingLike.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AddEquiv.{max (max u1 u2) u3, max u3 u2 u1} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddEquivClass.toEquivLike.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (AddEquiv.{max (max u1 u2) u3, max u3 u2 u1} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (AddEquiv.instAddEquivClassAddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2))))) (Dfinsupp.liftAddHom.{u1, u2, u3} ι γ β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2) f) (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i)) (f i)
+  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (f : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι), Eq.{max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (β i) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (_inst_1 i) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (FunLike.coe.{succ (max (max u1 u2) u3), succ (max (max u1 u2) u3), succ (max (max u1 u2) u3)} (AddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) _x) (EmbeddingLike.toFunLike.{succ (max (max u1 u2) u3), succ (max (max u1 u2) u3), succ (max (max u1 u2) u3)} (AddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (EquivLike.toEmbeddingLike.{succ (max (max u1 u2) u3), succ (max (max u1 u2) u3), succ (max (max u1 u2) u3)} (AddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddEquivClass.toEquivLike.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (AddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (AddEquiv.instAddEquivClassAddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2))))) (Dfinsupp.liftAddHom.{u1, u2, u3} ι γ β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2) f) (Dfinsupp.singleAddHom.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i)) (f i)
 Case conversion may be inaccurate. Consider using '#align dfinsupp.lift_add_hom_comp_single Dfinsupp.liftAddHom_comp_singleₓ'. -/
 /-- The `dfinsupp` version of `finsupp.lift_add_hom_comp_single`,-/
 theorem liftAddHom_comp_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f : ∀ i, β i →+ γ)
@@ -3023,7 +3023,7 @@ theorem liftAddHom_comp_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (
 lean 3 declaration is
   forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] {δ : Type.{u4}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] [_inst_3 : AddCommMonoid.{u4} δ] (g : AddMonoidHom.{u3, u4} γ δ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (f : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))), Eq.{max (succ u4) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (AddMonoidHom.comp.{max u1 u2, u3, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3)) g (coeFn.{max (succ (max u1 u3 u2)) (succ (max u3 u1 u2)), max (succ (max u1 u3 u2)) (succ (max u3 u1 u2))} (AddEquiv.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (fun (_x : AddEquiv.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) => (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) -> (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)))) (AddEquiv.hasCoeToFun.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (Dfinsupp.liftAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2) f)) (coeFn.{max (succ (max u1 u4 u2)) (succ (max u4 u1 u2)), max (succ (max u1 u4 u2)) (succ (max u4 u1 u2))} (AddEquiv.{max u1 u4 u2, max u4 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u4} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (Pi.instAdd.{u1, max u4 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u4} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u4} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.hasAdd.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3)) (fun (_x : AddEquiv.{max u1 u4 u2, max u4 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u4} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (Pi.instAdd.{u1, max u4 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u4} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u4} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.hasAdd.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3)) => (forall (i : ι), AddMonoidHom.{u2, u4} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) -> (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3)))) (AddEquiv.hasCoeToFun.{max u1 u4 u2, max u4 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u4} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (Pi.instAdd.{u1, max u4 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u4} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u4} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.hasAdd.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3)) (Dfinsupp.liftAddHom.{u1, u2, u4} ι δ (fun (a : ι) => β a) (fun (a : ι) (b : ι) => dec a b) (fun (a : ι) => _inst_1 a) _inst_3) (fun (a : ι) => AddMonoidHom.comp.{u2, u3, u4} (β a) γ δ (_inst_1 a) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoid.toAddZeroClass.{u4} δ (AddCommMonoid.toAddMonoid.{u4} δ _inst_3)) g (f a)))
 but is expected to have type
-  forall {ι : Type.{u2}} {γ : Type.{u4}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u2} ι] {δ : Type.{u1}} [_inst_1 : forall (i : ι), AddZeroClass.{u3} (β i)] [_inst_2 : AddCommMonoid.{u4} γ] [_inst_3 : AddCommMonoid.{u1} δ] (g : AddMonoidHom.{u4, u1} γ δ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (f : forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))), Eq.{max (max (succ u2) (succ u3)) (succ u1)} (AddMonoidHom.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.comp.{max u2 u3, u4, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3)) g (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (AddEquiv.{max (max u2 u3) u4, max u4 u3 u2} (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Pi.instAdd.{u2, max u3 u4} ι (fun (i : ι) => AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u3, u4} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (_x : forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) => AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) _x) (EmbeddingLike.toFunLike.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (AddEquiv.{max (max u2 u3) u4, max u4 u3 u2} (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Pi.instAdd.{u2, max u3 u4} ι (fun (i : ι) => AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u3, u4} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (EquivLike.toEmbeddingLike.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (AddEquiv.{max (max u2 u3) u4, max u4 u3 u2} (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Pi.instAdd.{u2, max u3 u4} ι (fun (i : ι) => AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u3, u4} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddEquivClass.toEquivLike.{max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} (AddEquiv.{max (max u2 u3) u4, max u4 u3 u2} (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Pi.instAdd.{u2, max u3 u4} ι (fun (i : ι) => AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u3, u4} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Pi.instAdd.{u2, max u3 u4} ι (fun (i : ι) => AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u3, u4} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (AddEquiv.instAddEquivClassAddEquiv.{max (max u2 u3) u4, max (max u2 u3) u4} (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Pi.instAdd.{u2, max u3 u4} ι (fun (i : ι) => AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u3, u4} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2))))) (Dfinsupp.liftAddHom.{u2, u3, u4} ι γ β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2) f)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (max (succ u2) (succ u3)) (succ u1), max (max (succ u2) (succ u3)) (succ u1)} (AddEquiv.{max (max u2 u3) u1, max u1 u3 u2} (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (Pi.instAdd.{u2, max u3 u1} ι (fun (i : ι) => AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (i : ι) => AddMonoidHom.add.{u3, u1} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.add.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3)) (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (_x : forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) => AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) _x) (EmbeddingLike.toFunLike.{max (max (succ u2) (succ u3)) (succ u1), max (max (succ u2) (succ u3)) (succ u1), max (max (succ u2) (succ u3)) (succ u1)} (AddEquiv.{max (max u2 u3) u1, max u1 u3 u2} (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (Pi.instAdd.{u2, max u3 u1} ι (fun (i : ι) => AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (i : ι) => AddMonoidHom.add.{u3, u1} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.add.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3)) (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (EquivLike.toEmbeddingLike.{max (max (succ u2) (succ u3)) (succ u1), max (max (succ u2) (succ u3)) (succ u1), max (max (succ u2) (succ u3)) (succ u1)} (AddEquiv.{max (max u2 u3) u1, max u1 u3 u2} (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (Pi.instAdd.{u2, max u3 u1} ι (fun (i : ι) => AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (i : ι) => AddMonoidHom.add.{u3, u1} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.add.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3)) (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddEquivClass.toEquivLike.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (AddEquiv.{max (max u2 u3) u1, max u1 u3 u2} (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (Pi.instAdd.{u2, max u3 u1} ι (fun (i : ι) => AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (i : ι) => AddMonoidHom.add.{u3, u1} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.add.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3)) (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (Pi.instAdd.{u2, max u3 u1} ι (fun (i : ι) => AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (i : ι) => AddMonoidHom.add.{u3, u1} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.add.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3) (AddEquiv.instAddEquivClassAddEquiv.{max (max u2 u3) u1, max (max u2 u3) u1} (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (Pi.instAdd.{u2, max u3 u1} ι (fun (i : ι) => AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (i : ι) => AddMonoidHom.add.{u3, u1} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.add.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3))))) (Dfinsupp.liftAddHom.{u2, u3, u1} ι δ β (fun (a : ι) (b : ι) => dec a b) (fun (a : ι) => _inst_1 a) _inst_3) (fun (a : ι) => AddMonoidHom.comp.{u3, u4, u1} (β a) γ δ (_inst_1 a) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3)) g (f a)))
+  forall {ι : Type.{u2}} {γ : Type.{u4}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u2} ι] {δ : Type.{u1}} [_inst_1 : forall (i : ι), AddZeroClass.{u3} (β i)] [_inst_2 : AddCommMonoid.{u4} γ] [_inst_3 : AddCommMonoid.{u1} δ] (g : AddMonoidHom.{u4, u1} γ δ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (f : forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))), Eq.{max (max (succ u2) (succ u3)) (succ u1)} (AddMonoidHom.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.comp.{max u2 u3, u4, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3)) g (FunLike.coe.{succ (max (max u2 u3) u4), succ (max (max u2 u3) u4), succ (max (max u2 u3) u4)} (AddEquiv.{max (max u2 u3) u4, max (max u2 u3) u4} (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Pi.instAdd.{u2, max u3 u4} ι (fun (i : ι) => AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u3, u4} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (_x : forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) => AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) _x) (EmbeddingLike.toFunLike.{succ (max (max u2 u3) u4), succ (max (max u2 u3) u4), succ (max (max u2 u3) u4)} (AddEquiv.{max (max u2 u3) u4, max (max u2 u3) u4} (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Pi.instAdd.{u2, max u3 u4} ι (fun (i : ι) => AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u3, u4} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (EquivLike.toEmbeddingLike.{succ (max (max u2 u3) u4), succ (max (max u2 u3) u4), succ (max (max u2 u3) u4)} (AddEquiv.{max (max u2 u3) u4, max (max u2 u3) u4} (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Pi.instAdd.{u2, max u3 u4} ι (fun (i : ι) => AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u3, u4} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddEquivClass.toEquivLike.{max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} (AddEquiv.{max (max u2 u3) u4, max (max u2 u3) u4} (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Pi.instAdd.{u2, max u3 u4} ι (fun (i : ι) => AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u3, u4} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Pi.instAdd.{u2, max u3 u4} ι (fun (i : ι) => AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u3, u4} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (AddEquiv.instAddEquivClassAddEquiv.{max (max u2 u3) u4, max (max u2 u3) u4} (forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Pi.instAdd.{u2, max u3 u4} ι (fun (i : ι) => AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u3, u4} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2))))) (Dfinsupp.liftAddHom.{u2, u3, u4} ι γ β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2) f)) (FunLike.coe.{succ (max (max u2 u3) u1), succ (max (max u2 u3) u1), succ (max (max u2 u3) u1)} (AddEquiv.{max (max u2 u3) u1, max (max u2 u3) u1} (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (Pi.instAdd.{u2, max u3 u1} ι (fun (i : ι) => AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (i : ι) => AddMonoidHom.add.{u3, u1} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.add.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3)) (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (_x : forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) => AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) _x) (EmbeddingLike.toFunLike.{succ (max (max u2 u3) u1), succ (max (max u2 u3) u1), succ (max (max u2 u3) u1)} (AddEquiv.{max (max u2 u3) u1, max (max u2 u3) u1} (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (Pi.instAdd.{u2, max u3 u1} ι (fun (i : ι) => AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (i : ι) => AddMonoidHom.add.{u3, u1} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.add.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3)) (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (EquivLike.toEmbeddingLike.{succ (max (max u2 u3) u1), succ (max (max u2 u3) u1), succ (max (max u2 u3) u1)} (AddEquiv.{max (max u2 u3) u1, max (max u2 u3) u1} (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (Pi.instAdd.{u2, max u3 u1} ι (fun (i : ι) => AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (i : ι) => AddMonoidHom.add.{u3, u1} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.add.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3)) (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddEquivClass.toEquivLike.{max (max u2 u3) u1, max (max u2 u3) u1, max (max u2 u3) u1} (AddEquiv.{max (max u2 u3) u1, max (max u2 u3) u1} (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (Pi.instAdd.{u2, max u3 u1} ι (fun (i : ι) => AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (i : ι) => AddMonoidHom.add.{u3, u1} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.add.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3)) (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (Pi.instAdd.{u2, max u3 u1} ι (fun (i : ι) => AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (i : ι) => AddMonoidHom.add.{u3, u1} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.add.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3) (AddEquiv.instAddEquivClassAddEquiv.{max (max u2 u3) u1, max (max u2 u3) u1} (forall (i : ι), AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (AddMonoidHom.{max u3 u2, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (Pi.instAdd.{u2, max u3 u1} ι (fun (i : ι) => AddMonoidHom.{u3, u1} (β i) δ (_inst_1 i) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3))) (fun (i : ι) => AddMonoidHom.add.{u3, u1} (β i) δ (_inst_1 i) _inst_3)) (AddMonoidHom.add.{max u2 u3, u1} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) δ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_3))))) (Dfinsupp.liftAddHom.{u2, u3, u1} ι δ β (fun (a : ι) (b : ι) => dec a b) (fun (a : ι) => _inst_1 a) _inst_3) (fun (a : ι) => AddMonoidHom.comp.{u3, u4, u1} (β a) γ δ (_inst_1 a) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) (AddMonoid.toAddZeroClass.{u1} δ (AddCommMonoid.toAddMonoid.{u1} δ _inst_3)) g (f a)))
 Case conversion may be inaccurate. Consider using '#align dfinsupp.comp_lift_add_hom Dfinsupp.comp_liftAddHomₓ'. -/
 /-- The `dfinsupp` version of `finsupp.comp_lift_add_hom`,-/
 theorem comp_liftAddHom {δ : Type _} [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] [AddCommMonoid δ]
Diff
@@ -1444,22 +1444,22 @@ theorem induction₂ {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (h0 : p
     Eq.recOn h4 <| ha i b f h1 h2 h3
 #align dfinsupp.induction₂ Dfinsupp.induction₂
 
-/- warning: dfinsupp.add_closure_Union_range_single -> Dfinsupp.add_closure_unionᵢ_range_single is a dubious translation:
+/- warning: dfinsupp.add_closure_Union_range_single -> Dfinsupp.add_closure_iUnion_range_single is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)], Eq.{succ (max u1 u2)} (AddSubmonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddSubmonoid.closure.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Set.unionᵢ.{max u1 u2, succ u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) ι (fun (i : ι) => Set.range.{max u1 u2, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (β i) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)))) (Top.top.{max u1 u2} (AddSubmonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddSubmonoid.hasTop.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)], Eq.{succ (max u1 u2)} (AddSubmonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddSubmonoid.closure.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Set.iUnion.{max u1 u2, succ u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) ι (fun (i : ι) => Set.range.{max u1 u2, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (β i) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)))) (Top.top.{max u1 u2} (AddSubmonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddSubmonoid.hasTop.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))
 but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)], Eq.{max (succ u1) (succ u2)} (AddSubmonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddSubmonoid.closure.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Set.unionᵢ.{max u1 u2, succ u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) ι (fun (i : ι) => Set.range.{max u1 u2, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (β i) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)))) (Top.top.{max u1 u2} (AddSubmonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddSubmonoid.instTopAddSubmonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))
-Case conversion may be inaccurate. Consider using '#align dfinsupp.add_closure_Union_range_single Dfinsupp.add_closure_unionᵢ_range_singleₓ'. -/
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)], Eq.{max (succ u1) (succ u2)} (AddSubmonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddSubmonoid.closure.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Set.iUnion.{max u1 u2, succ u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) ι (fun (i : ι) => Set.range.{max u1 u2, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (β i) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i)))) (Top.top.{max u1 u2} (AddSubmonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddSubmonoid.instTopAddSubmonoid.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))))
+Case conversion may be inaccurate. Consider using '#align dfinsupp.add_closure_Union_range_single Dfinsupp.add_closure_iUnion_range_singleₓ'. -/
 @[simp]
-theorem add_closure_unionᵢ_range_single :
+theorem add_closure_iUnion_range_single :
     AddSubmonoid.closure (⋃ i : ι, Set.range (single i : β i → Π₀ i, β i)) = ⊤ :=
   top_unique fun x hx => by
     apply Dfinsupp.induction x
     exact AddSubmonoid.zero_mem _
     exact fun a b f ha hb hf =>
       AddSubmonoid.add_mem _
-        (AddSubmonoid.subset_closure <| Set.mem_unionᵢ.2 ⟨a, Set.mem_range_self _⟩) hf
-#align dfinsupp.add_closure_Union_range_single Dfinsupp.add_closure_unionᵢ_range_single
+        (AddSubmonoid.subset_closure <| Set.mem_iUnion.2 ⟨a, Set.mem_range_self _⟩) hf
+#align dfinsupp.add_closure_Union_range_single Dfinsupp.add_closure_iUnion_range_single
 
 /- warning: dfinsupp.add_hom_ext -> Dfinsupp.addHom_ext is a dubious translation:
 lean 3 declaration is
@@ -1473,7 +1473,7 @@ theorem addHom_ext {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+
     (H : ∀ (i : ι) (y : β i), f (single i y) = g (single i y)) : f = g :=
   by
   refine' AddMonoidHom.eq_of_eqOn_denseM add_closure_Union_range_single fun f hf => _
-  simp only [Set.mem_unionᵢ, Set.mem_range] at hf
+  simp only [Set.mem_iUnion, Set.mem_range] at hf
   rcases hf with ⟨x, y, rfl⟩
   apply H
 #align dfinsupp.add_hom_ext Dfinsupp.addHom_ext
@@ -2597,14 +2597,14 @@ include dec
 
 /- warning: dfinsupp.support_sum -> Dfinsupp.support_sum is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u1} ι] {ι₁ : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι₁] {β₁ : ι₁ -> Type.{u4}} [_inst_2 : forall (i₁ : ι₁), Zero.{u4} (β₁ i₁)] [_inst_3 : forall (i : ι₁) (x : β₁ i), Decidable (Ne.{succ u4} (β₁ i) x (OfNat.ofNat.{u4} (β₁ i) 0 (OfNat.mk.{u4} (β₁ i) 0 (Zero.zero.{u4} (β₁ i) (_inst_2 i)))))] [_inst_4 : forall (i : ι), AddCommMonoid.{u3} (β i)] [_inst_5 : forall (i : ι) (x : β i), Decidable (Ne.{succ u3} (β i) x (OfNat.ofNat.{u3} (β i) 0 (OfNat.mk.{u3} (β i) 0 (Zero.zero.{u3} (β i) (AddZeroClass.toHasZero.{u3} (β i) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_4 i))))))))] {f : Dfinsupp.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (i : ι₁) => _inst_2 i)} {g : forall (i₁ : ι₁), (β₁ i₁) -> (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i)))))}, HasSubset.Subset.{u1} (Finset.{u1} ι) (Finset.hasSubset.{u1} ι) (Dfinsupp.support.{u1, u3} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i)))) (fun (i : ι) (x : β i) => _inst_5 i x) (Dfinsupp.sum.{u2, u4, max u1 u3} ι₁ (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))))) (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) (Dfinsupp.addCommMonoid.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) f g)) (Finset.bunionᵢ.{u2, u1} ι₁ ι (fun (a : ι) (b : ι) => dec a b) (Dfinsupp.support.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) f) (fun (i : ι₁) => Dfinsupp.support.{u1, u3} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i)))) (fun (i : ι) (x : β i) => _inst_5 i x) (g i (coeFn.{succ (max u2 u4), max (succ u2) (succ u4)} (Dfinsupp.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (i : ι₁) => _inst_2 i)) (fun (_x : Dfinsupp.{u2, u4} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_2 i)) => forall (i : ι₁), β₁ i) (Dfinsupp.hasCoeToFun.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (i : ι₁) => _inst_2 i)) f i))))
+  forall {ι : Type.{u1}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u1} ι] {ι₁ : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι₁] {β₁ : ι₁ -> Type.{u4}} [_inst_2 : forall (i₁ : ι₁), Zero.{u4} (β₁ i₁)] [_inst_3 : forall (i : ι₁) (x : β₁ i), Decidable (Ne.{succ u4} (β₁ i) x (OfNat.ofNat.{u4} (β₁ i) 0 (OfNat.mk.{u4} (β₁ i) 0 (Zero.zero.{u4} (β₁ i) (_inst_2 i)))))] [_inst_4 : forall (i : ι), AddCommMonoid.{u3} (β i)] [_inst_5 : forall (i : ι) (x : β i), Decidable (Ne.{succ u3} (β i) x (OfNat.ofNat.{u3} (β i) 0 (OfNat.mk.{u3} (β i) 0 (Zero.zero.{u3} (β i) (AddZeroClass.toHasZero.{u3} (β i) (AddMonoid.toAddZeroClass.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_4 i))))))))] {f : Dfinsupp.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (i : ι₁) => _inst_2 i)} {g : forall (i₁ : ι₁), (β₁ i₁) -> (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i)))))}, HasSubset.Subset.{u1} (Finset.{u1} ι) (Finset.hasSubset.{u1} ι) (Dfinsupp.support.{u1, u3} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i)))) (fun (i : ι) (x : β i) => _inst_5 i x) (Dfinsupp.sum.{u2, u4, max u1 u3} ι₁ (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))))) (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) (Dfinsupp.addCommMonoid.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) f g)) (Finset.biUnion.{u2, u1} ι₁ ι (fun (a : ι) (b : ι) => dec a b) (Dfinsupp.support.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) f) (fun (i : ι₁) => Dfinsupp.support.{u1, u3} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i)))) (fun (i : ι) (x : β i) => _inst_5 i x) (g i (coeFn.{succ (max u2 u4), max (succ u2) (succ u4)} (Dfinsupp.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (i : ι₁) => _inst_2 i)) (fun (_x : Dfinsupp.{u2, u4} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_2 i)) => forall (i : ι₁), β₁ i) (Dfinsupp.hasCoeToFun.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (i : ι₁) => _inst_2 i)) f i))))
 but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u1} ι] {ι₁ : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι₁] {β₁ : ι₁ -> Type.{u4}} [_inst_2 : forall (i₁ : ι₁), Zero.{u4} (β₁ i₁)] [_inst_3 : forall (i : ι₁) (x : β₁ i), Decidable (Ne.{succ u4} (β₁ i) x (OfNat.ofNat.{u4} (β₁ i) 0 (Zero.toOfNat0.{u4} (β₁ i) (_inst_2 i))))] [_inst_4 : forall (i : ι), AddCommMonoid.{u3} (β i)] [_inst_5 : forall (i : ι) (x : β i), Decidable (Ne.{succ u3} (β i) x (OfNat.ofNat.{u3} (β i) 0 (Zero.toOfNat0.{u3} (β i) (AddMonoid.toZero.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_4 i))))))] {f : Dfinsupp.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (i : ι₁) => _inst_2 i)} {g : forall (i₁ : ι₁), (β₁ i₁) -> (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))))}, HasSubset.Subset.{u1} (Finset.{u1} ι) (Finset.instHasSubsetFinset.{u1} ι) (Dfinsupp.support.{u1, u3} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (i : ι) (x : β i) => _inst_5 i x) (Dfinsupp.sum.{u2, u4, max u1 u3} ι₁ (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i)))) (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) f g)) (Finset.bunionᵢ.{u2, u1} ι₁ ι (fun (a : ι) (b : ι) => dec a b) (Dfinsupp.support.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) f) (fun (i : ι₁) => Dfinsupp.support.{u1, u3} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (i : ι) (x : β i) => _inst_5 i x) (g i (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (Dfinsupp.{u2, u4} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => (fun (i : ι₁) => _inst_2 i) i)) ι₁ (fun (_x : ι₁) => (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) _x) (Dfinsupp.funLike.{u2, u4} ι₁ (fun (i₁ : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i₁) (fun (i : ι₁) => (fun (i : ι₁) => _inst_2 i) i)) f i))))
+  forall {ι : Type.{u1}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u1} ι] {ι₁ : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι₁] {β₁ : ι₁ -> Type.{u4}} [_inst_2 : forall (i₁ : ι₁), Zero.{u4} (β₁ i₁)] [_inst_3 : forall (i : ι₁) (x : β₁ i), Decidable (Ne.{succ u4} (β₁ i) x (OfNat.ofNat.{u4} (β₁ i) 0 (Zero.toOfNat0.{u4} (β₁ i) (_inst_2 i))))] [_inst_4 : forall (i : ι), AddCommMonoid.{u3} (β i)] [_inst_5 : forall (i : ι) (x : β i), Decidable (Ne.{succ u3} (β i) x (OfNat.ofNat.{u3} (β i) 0 (Zero.toOfNat0.{u3} (β i) (AddMonoid.toZero.{u3} (β i) (AddCommMonoid.toAddMonoid.{u3} (β i) (_inst_4 i))))))] {f : Dfinsupp.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (i : ι₁) => _inst_2 i)} {g : forall (i₁ : ι₁), (β₁ i₁) -> (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))))}, HasSubset.Subset.{u1} (Finset.{u1} ι) (Finset.instHasSubsetFinset.{u1} ι) (Dfinsupp.support.{u1, u3} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (i : ι) (x : β i) => _inst_5 i x) (Dfinsupp.sum.{u2, u4, max u1 u3} ι₁ (Dfinsupp.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i)))) (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) f g)) (Finset.biUnion.{u2, u1} ι₁ ι (fun (a : ι) (b : ι) => dec a b) (Dfinsupp.support.{u2, u4} ι₁ (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i : ι₁) => _inst_2 i) (fun (i : ι₁) (x : β₁ i) => _inst_3 i x) f) (fun (i : ι₁) => Dfinsupp.support.{u1, u3} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (i : ι) (x : β i) => _inst_5 i x) (g i (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (Dfinsupp.{u2, u4} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => (fun (i : ι₁) => _inst_2 i) i)) ι₁ (fun (_x : ι₁) => (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) _x) (Dfinsupp.funLike.{u2, u4} ι₁ (fun (i₁ : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i₁) (fun (i : ι₁) => (fun (i : ι₁) => _inst_2 i) i)) f i))))
 Case conversion may be inaccurate. Consider using '#align dfinsupp.support_sum Dfinsupp.support_sumₓ'. -/
 theorem support_sum {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
     [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)]
     [∀ (i) (x : β i), Decidable (x ≠ 0)] {f : Π₀ i₁, β₁ i₁} {g : ∀ i₁, β₁ i₁ → Π₀ i, β i} :
-    (f.Sum g).support ⊆ f.support.bunionᵢ fun i => (g i (f i)).support :=
+    (f.Sum g).support ⊆ f.support.biUnion fun i => (g i (f i)).support :=
   by
   have :
     ∀ i₁ : ι,
@@ -2612,7 +2612,7 @@ theorem support_sum {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → T
     fun i₁ h =>
     let ⟨i, hi, Ne⟩ := Finset.exists_ne_zero_of_sum_ne_zero h
     ⟨i, mem_support_iff.1 hi, Ne⟩
-  simpa [Finset.subset_iff, mem_support_iff, Finset.mem_bunionᵢ, sum_apply] using this
+  simpa [Finset.subset_iff, mem_support_iff, Finset.mem_biUnion, sum_apply] using this
 #align dfinsupp.support_sum Dfinsupp.support_sum
 
 /- warning: dfinsupp.prod_one -> Dfinsupp.prod_one is a dubious translation:
@@ -2852,31 +2852,31 @@ theorem dfinsupp_sumAddHom_mem [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] {
     exact h
 #align dfinsupp_sum_add_hom_mem dfinsupp_sumAddHom_mem
 
-/- warning: add_submonoid.supr_eq_mrange_dfinsupp_sum_add_hom -> AddSubmonoid.supᵢ_eq_mrange_dfinsupp_sumAddHom is a dubious translation:
+/- warning: add_submonoid.supr_eq_mrange_dfinsupp_sum_add_hom -> AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))), Eq.{succ u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (supᵢ.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))))) ι S) (AddMonoidHom.mrange.{max u1 u2, u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) _inst_1 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))))
+  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))), Eq.{succ u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))))) ι S) (AddMonoidHom.mrange.{max u1 u2, u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) _inst_1 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))))
 but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))), Eq.{succ u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (supᵢ.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) ι S) (AddMonoidHom.mrange.{max u1 u2, u2, max u2 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) _inst_1 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))))
-Case conversion may be inaccurate. Consider using '#align add_submonoid.supr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.supᵢ_eq_mrange_dfinsupp_sumAddHomₓ'. -/
+  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))), Eq.{succ u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) ι S) (AddMonoidHom.mrange.{max u1 u2, u2, max u2 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) _inst_1 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))))
+Case conversion may be inaccurate. Consider using '#align add_submonoid.supr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHomₓ'. -/
 /-- The supremum of a family of commutative additive submonoids is equal to the range of
 `dfinsupp.sum_add_hom`; that is, every element in the `supr` can be produced from taking a finite
 number of non-zero elements of `S i`, coercing them to `γ`, and summing them. -/
-theorem AddSubmonoid.supᵢ_eq_mrange_dfinsupp_sumAddHom [AddCommMonoid γ] (S : ι → AddSubmonoid γ) :
-    supᵢ S = (Dfinsupp.sumAddHom fun i => (S i).Subtype).mrange :=
+theorem AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom [AddCommMonoid γ] (S : ι → AddSubmonoid γ) :
+    iSup S = (Dfinsupp.sumAddHom fun i => (S i).Subtype).mrange :=
   by
   apply le_antisymm
-  · apply supᵢ_le _
+  · apply iSup_le _
     intro i y hy
     exact ⟨Dfinsupp.single i ⟨y, hy⟩, Dfinsupp.sumAddHom_single _ _ _⟩
   · rintro x ⟨v, rfl⟩
-    exact dfinsupp_sumAddHom_mem _ v _ fun i _ => (le_supᵢ S i : S i ≤ _) (v i).Prop
-#align add_submonoid.supr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.supᵢ_eq_mrange_dfinsupp_sumAddHom
+    exact dfinsupp_sumAddHom_mem _ v _ fun i _ => (le_iSup S i : S i ≤ _) (v i).Prop
+#align add_submonoid.supr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom
 
 /- warning: add_submonoid.bsupr_eq_mrange_dfinsupp_sum_add_hom -> AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] (p : ι -> Prop) [_inst_1 : DecidablePred.{succ u1} ι p] [_inst_2 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))), Eq.{succ u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (supᵢ.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) ι (fun (i : ι) => supᵢ.{u2, 0} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) (p i) (fun (h : p i) => S i))) (AddMonoidHom.mrange.{max u1 u2, u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddMonoidHom.comp.{max u1 u2, max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) _inst_2 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.filterAddMonoidHom.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) p (fun (a : ι) => _inst_1 a))))
+  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] (p : ι -> Prop) [_inst_1 : DecidablePred.{succ u1} ι p] [_inst_2 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))), Eq.{succ u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) ι (fun (i : ι) => iSup.{u2, 0} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) (p i) (fun (h : p i) => S i))) (AddMonoidHom.mrange.{max u1 u2, u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddMonoidHom.comp.{max u1 u2, max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) _inst_2 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.filterAddMonoidHom.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) p (fun (a : ι) => _inst_1 a))))
 but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] (p : ι -> Prop) [_inst_1 : DecidablePred.{succ u1} ι p] [_inst_2 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))), Eq.{succ u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (supᵢ.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) ι (fun (i : ι) => supᵢ.{u2, 0} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (p i) (fun (h : p i) => S i))) (AddMonoidHom.mrange.{max u1 u2, u2, max u2 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddMonoidHom.comp.{max u2 u1, max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) _inst_2 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.filterAddMonoidHom.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) p (fun (a : ι) => _inst_1 a))))
+  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] (p : ι -> Prop) [_inst_1 : DecidablePred.{succ u1} ι p] [_inst_2 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))), Eq.{succ u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) ι (fun (i : ι) => iSup.{u2, 0} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (p i) (fun (h : p i) => S i))) (AddMonoidHom.mrange.{max u1 u2, u2, max u2 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddMonoidHom.comp.{max u2 u1, max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) _inst_2 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.filterAddMonoidHom.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) p (fun (a : ι) => _inst_1 a))))
 Case conversion may be inaccurate. Consider using '#align add_submonoid.bsupr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHomₓ'. -/
 /-- The bounded supremum of a family of commutative additive submonoids is equal to the range of
 `dfinsupp.sum_add_hom` composed with `dfinsupp.filter_add_monoid_hom`; that is, every element in the
@@ -2888,49 +2888,49 @@ theorem AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom (p : ι → Prop) [Decid
       ((sumAddHom fun i => (S i).Subtype).comp (filterAddMonoidHom _ p)).mrange :=
   by
   apply le_antisymm
-  · refine' supᵢ₂_le fun i hi y hy => ⟨Dfinsupp.single i ⟨y, hy⟩, _⟩
+  · refine' iSup₂_le fun i hi y hy => ⟨Dfinsupp.single i ⟨y, hy⟩, _⟩
     rw [AddMonoidHom.comp_apply, filter_add_monoid_hom_apply, filter_single_pos _ _ hi]
     exact sum_add_hom_single _ _ _
   · rintro x ⟨v, rfl⟩
     refine' dfinsupp_sumAddHom_mem _ _ _ fun i hi => _
-    refine' AddSubmonoid.mem_supᵢ_of_mem i _
+    refine' AddSubmonoid.mem_iSup_of_mem i _
     by_cases hp : p i
     · simp [hp]
     · simp [hp]
 #align add_submonoid.bsupr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom
 
-/- warning: add_submonoid.mem_supr_iff_exists_dfinsupp -> AddSubmonoid.mem_supᵢ_iff_exists_dfinsupp is a dubious translation:
+/- warning: add_submonoid.mem_supr_iff_exists_dfinsupp -> AddSubmonoid.mem_iSup_iff_exists_dfinsupp is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (x : γ), Iff (Membership.Mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.hasMem.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (supᵢ.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))))) ι S)) (Exists.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) => Eq.{succ u2} γ (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (fun (_x : AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) _inst_1 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) f) x))
+  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (x : γ), Iff (Membership.Mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.hasMem.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))))) ι S)) (Exists.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) => Eq.{succ u2} γ (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (fun (_x : AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) _inst_1 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) f) x))
 but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (x : γ), Iff (Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (supᵢ.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) ι S)) (Exists.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) => Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) => γ) f) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) => γ) _x) (AddHomClass.toFunLike.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) (AddZeroClass.toAdd.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) _inst_1 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) f) x))
-Case conversion may be inaccurate. Consider using '#align add_submonoid.mem_supr_iff_exists_dfinsupp AddSubmonoid.mem_supᵢ_iff_exists_dfinsuppₓ'. -/
-theorem AddSubmonoid.mem_supᵢ_iff_exists_dfinsupp [AddCommMonoid γ] (S : ι → AddSubmonoid γ)
-    (x : γ) : x ∈ supᵢ S ↔ ∃ f : Π₀ i, S i, Dfinsupp.sumAddHom (fun i => (S i).Subtype) f = x :=
-  SetLike.ext_iff.mp (AddSubmonoid.supᵢ_eq_mrange_dfinsupp_sumAddHom S) x
-#align add_submonoid.mem_supr_iff_exists_dfinsupp AddSubmonoid.mem_supᵢ_iff_exists_dfinsupp
+  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (x : γ), Iff (Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) ι S)) (Exists.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) => Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) => γ) f) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) => γ) _x) (AddHomClass.toFunLike.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) (AddZeroClass.toAdd.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) _inst_1 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) f) x))
+Case conversion may be inaccurate. Consider using '#align add_submonoid.mem_supr_iff_exists_dfinsupp AddSubmonoid.mem_iSup_iff_exists_dfinsuppₓ'. -/
+theorem AddSubmonoid.mem_iSup_iff_exists_dfinsupp [AddCommMonoid γ] (S : ι → AddSubmonoid γ)
+    (x : γ) : x ∈ iSup S ↔ ∃ f : Π₀ i, S i, Dfinsupp.sumAddHom (fun i => (S i).Subtype) f = x :=
+  SetLike.ext_iff.mp (AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom S) x
+#align add_submonoid.mem_supr_iff_exists_dfinsupp AddSubmonoid.mem_iSup_iff_exists_dfinsupp
 
-/- warning: add_submonoid.mem_supr_iff_exists_dfinsupp' -> AddSubmonoid.mem_supᵢ_iff_exists_dfinsupp' is a dubious translation:
+/- warning: add_submonoid.mem_supr_iff_exists_dfinsupp' -> AddSubmonoid.mem_iSup_iff_exists_dfinsupp' is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) [_inst_2 : forall (i : ι) (x : coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)), Decidable (Ne.{succ u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) x (OfNat.ofNat.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) 0 (OfNat.mk.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) 0 (Zero.zero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))))))] (x : γ), Iff (Membership.Mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.hasMem.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (supᵢ.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))))) ι S)) (Exists.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) => Eq.{succ u2} γ (Dfinsupp.sum.{u1, u2, u2} ι γ (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) (fun (i : ι) (x : coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) => _inst_2 i x) _inst_1 f (fun (i : ι) (xi : coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) γ (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) γ (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) γ (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) γ (coeSubtype.{succ u2} γ (fun (x : γ) => Membership.Mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.hasMem.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i)))))) xi)) x))
+  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) [_inst_2 : forall (i : ι) (x : coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)), Decidable (Ne.{succ u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) x (OfNat.ofNat.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) 0 (OfNat.mk.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) 0 (Zero.zero.{u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))))))] (x : γ), Iff (Membership.Mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.hasMem.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))))) ι S)) (Exists.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) => Eq.{succ u2} γ (Dfinsupp.sum.{u1, u2, u2} ι γ (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) (fun (i : ι) (x : coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) => _inst_2 i x) _inst_1 f (fun (i : ι) (xi : coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) γ (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) γ (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) γ (coeBase.{succ u2, succ u2} (coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) γ (coeSubtype.{succ u2} γ (fun (x : γ) => Membership.Mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.hasMem.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i)))))) xi)) x))
 but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) [_inst_2 : forall (i : ι) (x : Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))), Decidable (Ne.{succ u2} (Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) x (OfNat.ofNat.{u2} (Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) 0 (Zero.toOfNat0.{u2} (Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))))] (x : γ), Iff (Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (supᵢ.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) ι S)) (Exists.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) => Eq.{succ u2} γ (Dfinsupp.sum.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) (fun (i : ι) (x : Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) => _inst_2 i x) _inst_1 f (fun (i : ι) (xi : Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) => Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (SetLike.coe.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (S i))) xi)) x))
-Case conversion may be inaccurate. Consider using '#align add_submonoid.mem_supr_iff_exists_dfinsupp' AddSubmonoid.mem_supᵢ_iff_exists_dfinsupp'ₓ'. -/
+  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) [_inst_2 : forall (i : ι) (x : Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))), Decidable (Ne.{succ u2} (Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) x (OfNat.ofNat.{u2} (Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) 0 (Zero.toOfNat0.{u2} (Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))))] (x : γ), Iff (Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) ι S)) (Exists.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) => Eq.{succ u2} γ (Dfinsupp.sum.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) (fun (i : ι) (x : Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) => _inst_2 i x) _inst_1 f (fun (i : ι) (xi : Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) => Subtype.val.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (Set.{u2} γ) (Set.instMembershipSet.{u2} γ) x (SetLike.coe.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (S i))) xi)) x))
+Case conversion may be inaccurate. Consider using '#align add_submonoid.mem_supr_iff_exists_dfinsupp' AddSubmonoid.mem_iSup_iff_exists_dfinsupp'ₓ'. -/
 /-- A variant of `add_submonoid.mem_supr_iff_exists_dfinsupp` with the RHS fully unfolded. -/
-theorem AddSubmonoid.mem_supᵢ_iff_exists_dfinsupp' [AddCommMonoid γ] (S : ι → AddSubmonoid γ)
+theorem AddSubmonoid.mem_iSup_iff_exists_dfinsupp' [AddCommMonoid γ] (S : ι → AddSubmonoid γ)
     [∀ (i) (x : S i), Decidable (x ≠ 0)] (x : γ) :
-    x ∈ supᵢ S ↔ ∃ f : Π₀ i, S i, (f.Sum fun i xi => ↑xi) = x :=
+    x ∈ iSup S ↔ ∃ f : Π₀ i, S i, (f.Sum fun i xi => ↑xi) = x :=
   by
-  rw [AddSubmonoid.mem_supᵢ_iff_exists_dfinsupp]
+  rw [AddSubmonoid.mem_iSup_iff_exists_dfinsupp]
   simp_rw [sum_add_hom_apply]
   congr
-#align add_submonoid.mem_supr_iff_exists_dfinsupp' AddSubmonoid.mem_supᵢ_iff_exists_dfinsupp'
+#align add_submonoid.mem_supr_iff_exists_dfinsupp' AddSubmonoid.mem_iSup_iff_exists_dfinsupp'
 
 /- warning: add_submonoid.mem_bsupr_iff_exists_dfinsupp -> AddSubmonoid.mem_bsupr_iff_exists_dfinsupp is a dubious translation:
 lean 3 declaration is
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] (p : ι -> Prop) [_inst_1 : DecidablePred.{succ u1} ι p] [_inst_2 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (x : γ), Iff (Membership.Mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.hasMem.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (supᵢ.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) ι (fun (i : ι) => supᵢ.{u2, 0} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) (p i) (fun (h : p i) => S i)))) (Exists.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) => Eq.{succ u2} γ (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) _inst_2 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) p (fun (a : ι) => _inst_1 a) f)) x))
+  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] (p : ι -> Prop) [_inst_1 : DecidablePred.{succ u1} ι p] [_inst_2 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (x : γ), Iff (Membership.Mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.hasMem.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) ι (fun (i : ι) => iSup.{u2, 0} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) (p i) (fun (h : p i) => S i)))) (Exists.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) => Eq.{succ u2} γ (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) _inst_2 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) p (fun (a : ι) => _inst_1 a) f)) x))
 but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] (p : ι -> Prop) [_inst_1 : DecidablePred.{succ u1} ι p] [_inst_2 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (x : γ), Iff (Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (supᵢ.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) ι (fun (i : ι) => supᵢ.{u2, 0} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (p i) (fun (h : p i) => S i)))) (Exists.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) => Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) => γ) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) p (fun (a : ι) => _inst_1 a) f)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) => γ) _x) (AddHomClass.toFunLike.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (AddZeroClass.toAdd.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) _inst_2 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) p (fun (a : ι) => _inst_1 a) f)) x))
+  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] (p : ι -> Prop) [_inst_1 : DecidablePred.{succ u1} ι p] [_inst_2 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (x : γ), Iff (Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (iSup.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) ι (fun (i : ι) => iSup.{u2, 0} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (p i) (fun (h : p i) => S i)))) (Exists.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) => Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) => γ) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) p (fun (a : ι) => _inst_1 a) f)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) => γ) _x) (AddHomClass.toFunLike.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (AddZeroClass.toAdd.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) _inst_2 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) p (fun (a : ι) => _inst_1 a) f)) x))
 Case conversion may be inaccurate. Consider using '#align add_submonoid.mem_bsupr_iff_exists_dfinsupp AddSubmonoid.mem_bsupr_iff_exists_dfinsuppₓ'. -/
 theorem AddSubmonoid.mem_bsupr_iff_exists_dfinsupp (p : ι → Prop) [DecidablePred p]
     [AddCommMonoid γ] (S : ι → AddSubmonoid γ) (x : γ) :
Diff
@@ -3469,7 +3469,7 @@ theorem dfinsupp_sumAddHom_apply [AddZeroClass R] [AddCommMonoid S] [∀ i, AddZ
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : AddZeroClass.{u3} R] [_inst_3 : AddCommMonoid.{u4} S] [_inst_4 : forall (i : ι), AddZeroClass.{u2} (β i)] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u2, max u4 u3} (β i) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))), Eq.{max (succ u3) (succ u4)} (R -> S) (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => R -> S) (AddMonoidHom.hasCoeToFun.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (coeFn.{max (succ (max u4 u3)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ (max u4 u3))} (AddMonoidHom.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) (fun (_x : AddMonoidHom.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) (Dfinsupp.sumAddHom.{u1, u2, max u4 u3} ι (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3) g) f)) (coeFn.{max (succ (max u3 u4)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ (max u3 u4))} (AddMonoidHom.{max u1 u2, max u3 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (R -> S) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u3 u4} (R -> S) (AddCommMonoid.toAddMonoid.{max u3 u4} (R -> S) (Pi.addCommMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3))))) (fun (_x : AddMonoidHom.{max u1 u2, max u3 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (R -> S) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u3 u4} (R -> S) (AddCommMonoid.toAddMonoid.{max u3 u4} (R -> S) (Pi.addCommMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3))))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> R -> S) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u3 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (R -> S) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u3 u4} (R -> S) (AddCommMonoid.toAddMonoid.{max u3 u4} (R -> S) (Pi.addCommMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.sumAddHom.{u1, u2, max u3 u4} ι (R -> S) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (Pi.addCommMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u2, max u4 u3, max u3 u4} (β i) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (R -> S) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (Pi.addZeroClass.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.coeFn.{u3, u4} R S _inst_2 _inst_3) (g i))) f)
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : AddZeroClass.{u2} R] [_inst_3 : AddCommMonoid.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, max u1 u2} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : R) => S) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S (AddZeroClass.toAdd.{u2} R _inst_2) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (FunLike.coe.{max (max (max (succ u3) (succ u4)) (succ u2)) (succ u1), max (succ u3) (succ u4), max (succ u2) (succ u1)} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _x) (AddHomClass.toFunLike.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))))) (Dfinsupp.sumAddHom.{u3, u4, max u2 u1} ι (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3) g) f)) (FunLike.coe.{max (max (max (succ u3) (succ u4)) (succ u2)) (succ u1), max (succ u3) (succ u4), max (succ u2) (succ u1)} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2959 : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R -> S) _x) (AddHomClass.toFunLike.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2959 : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{max u2 u1} (R -> S) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2959 : R) => S) (fun (i : R) => _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2959 : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2959 : R) => S) (fun (i : R) => _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2959 : R) => S) (fun (i : R) => _inst_3))))))) (Dfinsupp.sumAddHom.{u3, u4, max u2 u1} ι (R -> S) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (Pi.addCommMonoid.{u2, u1} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u4, max u2 u1, max u2 u1} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (R -> S) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (Pi.addZeroClass.{u2, u1} R (fun (ᾰ : R) => S) (fun (i : R) => AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.coeFn.{u2, u1} R S _inst_2 _inst_3) (g i))) f)
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : AddZeroClass.{u2} R] [_inst_3 : AddCommMonoid.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, max u1 u2} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : R) => S) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S (AddZeroClass.toAdd.{u2} R _inst_2) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (FunLike.coe.{max (max (max (succ u3) (succ u4)) (succ u2)) (succ u1), max (succ u3) (succ u4), max (succ u2) (succ u1)} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _x) (AddHomClass.toFunLike.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))))) (Dfinsupp.sumAddHom.{u3, u4, max u2 u1} ι (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3) g) f)) (FunLike.coe.{max (max (max (succ u3) (succ u4)) (succ u2)) (succ u1), max (succ u3) (succ u4), max (succ u2) (succ u1)} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.3000 : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R -> S) _x) (AddHomClass.toFunLike.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.3000 : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{max u2 u1} (R -> S) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.3000 : R) => S) (fun (i : R) => _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.3000 : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.3000 : R) => S) (fun (i : R) => _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.3000 : R) => S) (fun (i : R) => _inst_3))))))) (Dfinsupp.sumAddHom.{u3, u4, max u2 u1} ι (R -> S) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (Pi.addCommMonoid.{u2, u1} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u4, max u2 u1, max u2 u1} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (R -> S) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (Pi.addZeroClass.{u2, u1} R (fun (ᾰ : R) => S) (fun (i : R) => AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.coeFn.{u2, u1} R S _inst_2 _inst_3) (g i))) f)
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.coe_dfinsupp_sum_add_hom AddMonoidHom.coe_dfinsupp_sumAddHomₓ'. -/
 theorem coe_dfinsupp_sumAddHom [AddZeroClass R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (f : Π₀ i, β i) (g : ∀ i, β i →+ R →+ S) :
Diff
@@ -1073,7 +1073,7 @@ theorem erase_ne {i i' : ι} {f : Π₀ i, β i} (h : i' ≠ i) : (f.eraseₓ i)
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), Zero.{u2} (β i)] (x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (i : ι), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.piecewise.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) x i)) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i x) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.hasSingleton.{u1} ι) i) (fun (i_1 : ι) => Set.decidableSetOf.{u1} ι i_1 (fun (b : ι) => Eq.{succ u1} ι b i) (dec i_1 i))) x
 but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), Zero.{u2} (β i)] (x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (i : ι) [inst._@.Mathlib.Data.Dfinsupp.Basic._hyg.10897 : forall (i' : ι), Decidable (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i' (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))], Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.piecewise.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) ι (fun (a : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) a) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) x i)) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i x) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i) (fun (i : ι) => inst._@.Mathlib.Data.Dfinsupp.Basic._hyg.10897 i)) x
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), Zero.{u2} (β i)] (x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (i : ι) [inst._@.Mathlib.Data.Dfinsupp.Basic._hyg.10993 : forall (i' : ι), Decidable (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i' (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))], Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.piecewise.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) ι (fun (a : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) a) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) x i)) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i x) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i) (fun (i : ι) => inst._@.Mathlib.Data.Dfinsupp.Basic._hyg.10993 i)) x
 Case conversion may be inaccurate. Consider using '#align dfinsupp.piecewise_single_erase Dfinsupp.piecewise_single_eraseₓ'. -/
 theorem piecewise_single_erase (x : Π₀ i, β i) (i : ι) :
     (single i (x i)).piecewise (x.eraseₓ i) {i} = x :=
@@ -1465,7 +1465,7 @@ theorem add_closure_unionᵢ_range_single :
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddZeroClass.{u3} γ] {{f : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2}} {{g : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2}}, (forall (i : ι) (y : β i), Eq.{succ u3} γ (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) f (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i)) i y)) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) g (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i)) i y))) -> (Eq.{max (succ u3) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) f g)
 but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddZeroClass.{u3} γ] {{f : AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2}} {{g : AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2}}, (forall (i : ι) (y : β i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i y)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u3} γ _inst_2) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2 (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2))) f (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i y)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u3} γ _inst_2) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2 (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2))) g (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i y))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) f g)
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] {γ : Type.{u3}} [_inst_2 : AddZeroClass.{u3} γ] {{f : AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2}} {{g : AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2}}, (forall (i : ι) (y : β i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i y)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u3} γ _inst_2) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2 (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2))) f (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i y)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u3} γ _inst_2) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2 (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2))) g (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i y))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) f g)
 Case conversion may be inaccurate. Consider using '#align dfinsupp.add_hom_ext Dfinsupp.addHom_extₓ'. -/
 /-- If two additive homomorphisms from `Π₀ i, β i` are equal on each `single a b`, then
 they are equal. -/
@@ -2459,7 +2459,7 @@ noncomputable def equivProdDfinsupp [∀ i, Zero (α i)] : (Π₀ i, α i) ≃ 
 lean 3 declaration is
   forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {α : (Option.{u1} ι) -> Type.{u2}} [_inst_1 : forall (i : Option.{u1} ι), AddZeroClass.{u2} (α i)] (f : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (g : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))), Eq.{max (succ u2) (succ (max u1 u2))} (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (coeFn.{max 1 (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (fun (_x : Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) => (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) -> (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.hasAdd.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_1 i))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (instHAdd.{max u1 u2} (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (Prod.hasAdd.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))) (AddZeroClass.toHasAdd.{u2} (α (Option.none.{u1} ι)) (_inst_1 (Option.none.{u1} ι))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_1 (Option.some.{u1} ι i))))) (coeFn.{max 1 (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (fun (_x : Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) => (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) -> (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) f) (coeFn.{max 1 (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (fun (_x : Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) => (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) -> (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) g))
 but is expected to have type
-  forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {α : (Option.{u1} ι) -> Type.{u2}} [_inst_1 : forall (i : Option.{u1} ι), AddZeroClass.{u2} (α i)] (f : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (g : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_1 i))) f g)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_1 i))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) f) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) g) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) f) (instHAdd.{max u1 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) f) (Prod.instAddSum.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))) (AddZeroClass.toAdd.{u2} (α (Option.none.{u1} ι)) (_inst_1 (Option.none.{u1} ι))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_1 (Option.some.{u1} ι i))))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) f) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) g))
+  forall {ι : Type.{u1}} [dec : DecidableEq.{succ u1} ι] {α : (Option.{u1} ι) -> Type.{u2}} [_inst_1 : forall (i : Option.{u1} ι), AddZeroClass.{u2} (α i)] (f : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (g : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_1 i))) f g)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => _inst_1 i))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) f) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) g) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) f) (instHAdd.{max u1 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) f) (Prod.instAddSum.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))) (AddZeroClass.toAdd.{u2} (α (Option.none.{u1} ι)) (_inst_1 (Option.none.{u1} ι))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => _inst_1 (Option.some.{u1} ι i))))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) f) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_1 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_1 i))) g))
 Case conversion may be inaccurate. Consider using '#align dfinsupp.equiv_prod_dfinsupp_add Dfinsupp.equivProdDfinsupp_addₓ'. -/
 theorem equivProdDfinsupp_add [∀ i, AddZeroClass (α i)] (f g : Π₀ i, α i) :
     equivProdDfinsupp (f + g) = equivProdDfinsupp f + equivProdDfinsupp g :=
@@ -2470,7 +2470,7 @@ theorem equivProdDfinsupp_add [∀ i, AddZeroClass (α i)] (f g : Π₀ i, α i)
 lean 3 declaration is
   forall {ι : Type.{u1}} {γ : Type.{u3}} [dec : DecidableEq.{succ u1} ι] {α : (Option.{u1} ι) -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : Option.{u1} ι), AddMonoid.{u2} (α i)] [_inst_3 : forall (i : Option.{u1} ι), DistribMulAction.{u3, u2} γ (α i) _inst_1 (_inst_2 i)] (r : γ) (f : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))), Eq.{max (succ u2) (succ (max u1 u2))} (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (coeFn.{max 1 (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) (fun (_x : Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) => (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) -> (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (SMul.smul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Dfinsupp.hasSmul.{u1, u2, u3} (Option.{u1} ι) γ (fun (i : Option.{u1} ι) => α i) _inst_1 (fun (i : Option.{u1} ι) => _inst_2 i) (fun (i : Option.{u1} ι) => _inst_3 i)) r f)) (SMul.smul.{u3, max u1 u2} γ (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Prod.smul.{u3, u2, max u1 u2} γ (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) (SMulZeroClass.toHasSmul.{u3, u2} γ (α (Option.none.{u1} ι)) (AddZeroClass.toHasZero.{u2} (α (Option.none.{u1} ι)) (AddMonoid.toAddZeroClass.{u2} (α (Option.none.{u1} ι)) (_inst_2 (Option.none.{u1} ι)))) (DistribSMul.toSmulZeroClass.{u3, u2} γ (α (Option.none.{u1} ι)) (AddMonoid.toAddZeroClass.{u2} (α (Option.none.{u1} ι)) (_inst_2 (Option.none.{u1} ι))) (DistribMulAction.toDistribSMul.{u3, u2} γ (α (Option.none.{u1} ι)) _inst_1 (_inst_2 (Option.none.{u1} ι)) (_inst_3 (Option.none.{u1} ι))))) (Dfinsupp.hasSmul.{u1, u2, u3} ι γ (fun (i : ι) => α (Option.some.{u1} ι i)) _inst_1 (fun (i : ι) => _inst_2 (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i)))) r (coeFn.{max 1 (succ u2) (succ (max u1 u2)), max (succ u2) (succ (max u1 u2))} (Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) (fun (_x : Equiv.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) => (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) -> (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u2) (succ (max u1 u2))} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) (Prod.{u2, max u1 u2} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddZeroClass.toHasZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i)))) f))
 but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} [dec : DecidableEq.{succ u1} ι] {α : (Option.{u1} ι) -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : Option.{u1} ι), AddMonoid.{u2} (α i)] [_inst_3 : forall (i : Option.{u1} ι), DistribMulAction.{u3, u2} γ (α i) _inst_1 (_inst_2 i)] (r : γ) (f : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} (Option.{u1} ι) γ (fun (i : Option.{u1} ι) => α i) _inst_1 (fun (i : Option.{u1} ι) => _inst_2 i) (fun (i : Option.{u1} ι) => _inst_3 i))) r f)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} (Option.{u1} ι) γ (fun (i : Option.{u1} ι) => α i) _inst_1 (fun (i : Option.{u1} ι) => _inst_2 i) (fun (i : Option.{u1} ι) => _inst_3 i))) r f)) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) f) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) f) (instHSMul.{u3, max u1 u2} γ ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) f) (Prod.smul.{u3, u2, max u1 u2} γ (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))) (SMulZeroClass.toSMul.{u3, u2} γ (α (Option.none.{u1} ι)) (AddMonoid.toZero.{u2} (α (Option.none.{u1} ι)) (_inst_2 (Option.none.{u1} ι))) (DistribSMul.toSMulZeroClass.{u3, u2} γ (α (Option.none.{u1} ι)) (AddMonoid.toAddZeroClass.{u2} (α (Option.none.{u1} ι)) (_inst_2 (Option.none.{u1} ι))) (DistribMulAction.toDistribSMul.{u3, u2} γ (α (Option.none.{u1} ι)) _inst_1 (_inst_2 (Option.none.{u1} ι)) (_inst_3 (Option.none.{u1} ι))))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι γ (fun (i : ι) => α (Option.some.{u1} ι i)) _inst_1 (fun (i : ι) => _inst_2 (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i))))) r (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) f))
+  forall {ι : Type.{u1}} {γ : Type.{u3}} [dec : DecidableEq.{succ u1} ι] {α : (Option.{u1} ι) -> Type.{u2}} [_inst_1 : Monoid.{u3} γ] [_inst_2 : forall (i : Option.{u1} ι), AddMonoid.{u2} (α i)] [_inst_3 : forall (i : Option.{u1} ι), DistribMulAction.{u3, u2} γ (α i) _inst_1 (_inst_2 i)] (r : γ) (f : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))), Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} (Option.{u1} ι) γ (fun (i : Option.{u1} ι) => α i) _inst_1 (fun (i : Option.{u1} ι) => _inst_2 i) (fun (i : Option.{u1} ι) => _inst_3 i))) r f)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (instHSMul.{u3, max u1 u2} γ (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} (Option.{u1} ι) γ (fun (i : Option.{u1} ι) => α i) _inst_1 (fun (i : Option.{u1} ι) => _inst_2 i) (fun (i : Option.{u1} ι) => _inst_3 i))) r f)) (HSMul.hSMul.{u3, max u1 u2, max u1 u2} γ ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) f) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) f) (instHSMul.{u3, max u1 u2} γ ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) f) (Prod.smul.{u3, u2, max u1 u2} γ (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))) (SMulZeroClass.toSMul.{u3, u2} γ (α (Option.none.{u1} ι)) (AddMonoid.toZero.{u2} (α (Option.none.{u1} ι)) (_inst_2 (Option.none.{u1} ι))) (DistribSMul.toSMulZeroClass.{u3, u2} γ (α (Option.none.{u1} ι)) (AddMonoid.toAddZeroClass.{u2} (α (Option.none.{u1} ι)) (_inst_2 (Option.none.{u1} ι))) (DistribMulAction.toDistribSMul.{u3, u2} γ (α (Option.none.{u1} ι)) _inst_1 (_inst_2 (Option.none.{u1} ι)) (_inst_3 (Option.none.{u1} ι))))) (Dfinsupp.instSMulDfinsuppToZero.{u1, u2, u3} ι γ (fun (i : ι) => α (Option.some.{u1} ι i)) _inst_1 (fun (i : ι) => _inst_2 (Option.some.{u1} ι i)) (fun (i : ι) => _inst_3 (Option.some.{u1} ι i))))) r (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ (max u2 u1)) (succ u2)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (fun (_x : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) => Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i))))) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} (Option.{u1} ι) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) (Prod.{u2, max u2 u1} (α (Option.none.{u1} ι)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => α (Option.some.{u1} ι i)) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) (Option.some.{u1} ι i)) (_inst_2 (Option.some.{u1} ι i)))))) (Dfinsupp.equivProdDfinsupp.{u1, u2} ι (fun (a : ι) (b : ι) => dec a b) (fun (i : Option.{u1} ι) => α i) (fun (i : Option.{u1} ι) => AddMonoid.toZero.{u2} ((fun (i : Option.{u1} ι) => α i) i) (_inst_2 i))) f))
 Case conversion may be inaccurate. Consider using '#align dfinsupp.equiv_prod_dfinsupp_smul Dfinsupp.equivProdDfinsupp_smulₓ'. -/
 theorem equivProdDfinsupp_smul [Monoid γ] [∀ i, AddMonoid (α i)] [∀ i, DistribMulAction γ (α i)]
     (r : γ) (f : Π₀ i, α i) : equivProdDfinsupp (r • f) = r • equivProdDfinsupp f :=
@@ -2725,7 +2725,7 @@ theorem dfinsupp_prod_mem [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x
 lean 3 declaration is
   forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : Fintype.{u1} ι] [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : CommMonoid.{u3} γ] (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) [f : forall (i : ι), (β i) -> γ], (forall (i : ι), Eq.{succ u3} γ (f i (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i))))) (OfNat.ofNat.{u3} γ 1 (OfNat.mk.{u3} γ 1 (One.one.{u3} γ (MulOneClass.toHasOne.{u3} γ (Monoid.toMulOneClass.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_4))))))) -> (Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 v f) (Finset.prod.{u3, u1} γ ι _inst_4 (Finset.univ.{u1} ι _inst_1) (fun (i : ι) => f i (coeFn.{max 1 (max (succ (max u1 u2)) (succ u1) (succ u2)) (max (succ u1) (succ u2)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u1) (succ u2)} (Equiv.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) (fun (_x : Equiv.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) -> (forall (i : ι), β i)) (Equiv.hasCoeToFun.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) (Dfinsupp.equivFunOnFintype.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i) _inst_1) v i))))
 but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : Fintype.{u1} ι] [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (_inst_2 i))))] [_inst_4 : CommMonoid.{u3} γ] (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) {f : forall (i : ι), (β i) -> γ}, (forall (i : ι), Eq.{succ u3} γ (f i (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (_inst_2 i)))) (OfNat.ofNat.{u3} γ 1 (One.toOfNat1.{u3} γ (Monoid.toOne.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_4))))) -> (Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 v f) (Finset.prod.{u3, u1} γ ι _inst_4 (Finset.univ.{u1} ι _inst_1) (fun (i : ι) => f i (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) => forall (i : ι), β i) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) (Dfinsupp.equivFunOnFintype.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i) _inst_1) v i))))
+  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : Fintype.{u1} ι] [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (_inst_2 i))))] [_inst_4 : CommMonoid.{u3} γ] (v : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) {f : forall (i : ι), (β i) -> γ}, (forall (i : ι), Eq.{succ u3} γ (f i (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (_inst_2 i)))) (OfNat.ofNat.{u3} γ 1 (One.toOfNat1.{u3} γ (Monoid.toOne.{u3} γ (CommMonoid.toMonoid.{u3} γ _inst_4))))) -> (Eq.{succ u3} γ (Dfinsupp.prod.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 v f) (Finset.prod.{u3, u1} γ ι _inst_4 (Finset.univ.{u1} ι _inst_1) (fun (i : ι) => f i (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) => forall (i : ι), β i) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (forall (i : ι), β i)) (Dfinsupp.equivFunOnFintype.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i) _inst_1) v i))))
 Case conversion may be inaccurate. Consider using '#align dfinsupp.prod_eq_prod_fintype Dfinsupp.prod_eq_prod_fintypeₓ'. -/
 @[simp, to_additive]
 theorem prod_eq_prod_fintype [Fintype ι] [∀ i, Zero (β i)] [∀ (i : ι) (x : β i), Decidable (x ≠ 0)]
@@ -2798,7 +2798,7 @@ def sumAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i
 lean 3 declaration is
   forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (φ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι) (x : β i), Eq.{succ u3} γ (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 φ) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i)) i x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (β i) -> γ) (AddMonoidHom.hasCoeToFun.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (φ i) x)
 but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (φ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι) (x : β i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 φ) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i x)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β i) => γ) _x) (AddHomClass.toFunLike.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (AddZeroClass.toAdd.{u2} (β i) (_inst_1 i)) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (φ i) x)
+  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (φ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι) (x : β i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 φ) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i x)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => γ) _x) (AddHomClass.toFunLike.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (AddZeroClass.toAdd.{u2} (β i) (_inst_1 i)) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (φ i) x)
 Case conversion may be inaccurate. Consider using '#align dfinsupp.sum_add_hom_single Dfinsupp.sumAddHom_singleₓ'. -/
 @[simp]
 theorem sumAddHom_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i →+ γ) (i)
@@ -2820,7 +2820,7 @@ theorem sumAddHom_comp_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f
 lean 3 declaration is
   forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))))))] [_inst_3 : AddCommMonoid.{u3} γ] (φ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{succ u3} γ (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_3 φ) f) (Dfinsupp.sum.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f (fun (x : ι) => coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (fun (_x : AddMonoidHom.{u2, u3} (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) => (β x) -> γ) (AddMonoidHom.hasCoeToFun.{u2, u3} (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (φ x)))
 but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddZeroClass.toZero.{u2} (β i) (_inst_1 i)))))] [_inst_3 : AddCommMonoid.{u3} γ] (φ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) f) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_3 φ) f) (Dfinsupp.sum.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f (fun (x : ι) => FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (AddMonoidHom.{u2, u3} (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (β x) (fun (_x : β x) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β x) => γ) _x) (AddHomClass.toFunLike.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (β x) γ (AddZeroClass.toAdd.{u2} (β x) (_inst_1 x)) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) (AddMonoidHom.addMonoidHomClass.{u2, u3} (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))))) (φ x)))
+  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (Zero.toOfNat0.{u2} (β i) (AddZeroClass.toZero.{u2} (β i) (_inst_1 i)))))] [_inst_3 : AddCommMonoid.{u3} γ] (φ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) f) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_3 φ) f) (Dfinsupp.sum.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) (fun (i : ι) (x : β i) => _inst_2 i x) _inst_3 f (fun (x : ι) => FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (AddMonoidHom.{u2, u3} (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (β x) (fun (_x : β x) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β x) => γ) _x) (AddHomClass.toFunLike.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (β x) γ (AddZeroClass.toAdd.{u2} (β x) (_inst_1 x)) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))) (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3)) (AddMonoidHom.addMonoidHomClass.{u2, u3} (β x) γ (_inst_1 x) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_3))))) (φ x)))
 Case conversion may be inaccurate. Consider using '#align dfinsupp.sum_add_hom_apply Dfinsupp.sumAddHom_applyₓ'. -/
 /-- While we didn't need decidable instances to define it, we do to reduce it to a sum -/
 theorem sumAddHom_apply [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
@@ -2840,7 +2840,7 @@ theorem sumAddHom_apply [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decida
 lean 3 declaration is
   forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] {S : Type.{u4}} [_inst_3 : SetLike.{u4, u3} S γ] [_inst_4 : AddSubmonoidClass.{u4, u3} S γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) _inst_3] (s : S) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (g : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))), (forall (c : ι), (Ne.{succ u2} (β c) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) f c) (OfNat.ofNat.{u2} (β c) 0 (OfNat.mk.{u2} (β c) 0 (Zero.zero.{u2} (β c) (AddZeroClass.toHasZero.{u2} (β c) (_inst_1 c)))))) -> (Membership.Mem.{u3, u4} γ S (SetLike.hasMem.{u4, u3} S γ _inst_3) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{u2, u3} (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (β c) -> γ) (AddMonoidHom.hasCoeToFun.{u2, u3} (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (g c) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) f c)) s)) -> (Membership.Mem.{u3, u4} γ S (SetLike.hasMem.{u4, u3} S γ _inst_3) (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_1 i) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 g) f) s)
 but is expected to have type
-  forall {ι : Type.{u2}} {γ : Type.{u4}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u2} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u3} (β i)] [_inst_2 : AddCommMonoid.{u4} γ] {S : Type.{u1}} [_inst_3 : SetLike.{u1, u4} S γ] [_inst_4 : AddSubmonoidClass.{u1, u4} S γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) _inst_3] (s : S) (f : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (g : forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))), (forall (c : ι), (Ne.{succ u3} ((fun (i : ι) => (fun (i : ι) => β i) i) c) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) f c) (OfNat.ofNat.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) c) 0 (Zero.toOfNat0.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) c) (AddZeroClass.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) c) (_inst_1 c))))) -> (Membership.mem.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β c) => γ) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (a : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) a) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) f c)) S (SetLike.instMembership.{u1, u4} S γ _inst_3) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AddMonoidHom.{u3, u4} (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (β c) (fun (_x : β c) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β c) => γ) _x) (AddHomClass.toFunLike.{max u3 u4, u3, u4} (AddMonoidHom.{u3, u4} (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (β c) γ (AddZeroClass.toAdd.{u3} (β c) (_inst_1 c)) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u3 u4, u3, u4} (AddMonoidHom.{u3, u4} (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{u3, u4} (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))))) (g c) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) f c)) s)) -> (Membership.mem.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) f) S (SetLike.instMembership.{u1, u4} S γ _inst_3) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (succ u2) (succ u3), succ u4} (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u2 u3) u4, max u2 u3, u4} (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u2 u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u4, max u2 u3, u4} (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))))) (Dfinsupp.sumAddHom.{u2, u3, u4} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 g) f) s)
+  forall {ι : Type.{u2}} {γ : Type.{u4}} {β : ι -> Type.{u3}} [dec : DecidableEq.{succ u2} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u3} (β i)] [_inst_2 : AddCommMonoid.{u4} γ] {S : Type.{u1}} [_inst_3 : SetLike.{u1, u4} S γ] [_inst_4 : AddSubmonoidClass.{u1, u4} S γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) _inst_3] (s : S) (f : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (g : forall (i : ι), AddMonoidHom.{u3, u4} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))), (forall (c : ι), (Ne.{succ u3} ((fun (i : ι) => (fun (i : ι) => β i) i) c) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) f c) (OfNat.ofNat.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) c) 0 (Zero.toOfNat0.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) c) (AddZeroClass.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => β i) i) c) (_inst_1 c))))) -> (Membership.mem.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β c) => γ) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (a : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) a) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) f c)) S (SetLike.instMembership.{u1, u4} S γ _inst_3) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (AddMonoidHom.{u3, u4} (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (β c) (fun (_x : β c) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β c) => γ) _x) (AddHomClass.toFunLike.{max u3 u4, u3, u4} (AddMonoidHom.{u3, u4} (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (β c) γ (AddZeroClass.toAdd.{u3} (β c) (_inst_1 c)) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u3 u4, u3, u4} (AddMonoidHom.{u3, u4} (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{u3, u4} (β c) γ (_inst_1 c) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))))) (g c) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) _x) (Dfinsupp.funLike.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i)) i)) f c)) s)) -> (Membership.mem.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) f) S (SetLike.instMembership.{u1, u4} S γ _inst_3) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (succ u2) (succ u3), succ u4} (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u2 u3) u4, max u2 u3, u4} (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u2 u3} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u4} γ (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u3) u4, max u2 u3, u4} (AddMonoidHom.{max u3 u2, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))) (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u2 u3, u4} (Dfinsupp.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u4} γ (AddCommMonoid.toAddMonoid.{u4} γ _inst_2))))) (Dfinsupp.sumAddHom.{u2, u3, u4} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2 g) f) s)
 Case conversion may be inaccurate. Consider using '#align dfinsupp_sum_add_hom_mem dfinsupp_sumAddHom_memₓ'. -/
 theorem dfinsupp_sumAddHom_mem [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] {S : Type _}
     [SetLike S γ] [AddSubmonoidClass S γ] (s : S) (f : Π₀ i, β i) (g : ∀ i, β i →+ γ)
@@ -2903,7 +2903,7 @@ theorem AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom (p : ι → Prop) [Decid
 lean 3 declaration is
   forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (x : γ), Iff (Membership.Mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.hasMem.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (supᵢ.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))))) ι S)) (Exists.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) => Eq.{succ u2} γ (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (fun (_x : AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (S i)) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) _inst_1 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) f) x))
 but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (x : γ), Iff (Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (supᵢ.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) ι S)) (Exists.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) => Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) => γ) f) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) => γ) _x) (AddHomClass.toFunLike.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) (AddZeroClass.toAdd.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) _inst_1 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) f) x))
+  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) (x : γ), Iff (Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (supᵢ.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) ι S)) (Exists.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) => Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) => γ) f) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) => γ) _x) (AddHomClass.toFunLike.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) (AddZeroClass.toAdd.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i)) _inst_1 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_1)) (S i))) f) x))
 Case conversion may be inaccurate. Consider using '#align add_submonoid.mem_supr_iff_exists_dfinsupp AddSubmonoid.mem_supᵢ_iff_exists_dfinsuppₓ'. -/
 theorem AddSubmonoid.mem_supᵢ_iff_exists_dfinsupp [AddCommMonoid γ] (S : ι → AddSubmonoid γ)
     (x : γ) : x ∈ supᵢ S ↔ ∃ f : Π₀ i, S i, Dfinsupp.sumAddHom (fun i => (S i).Subtype) f = x :=
@@ -2930,7 +2930,7 @@ theorem AddSubmonoid.mem_supᵢ_iff_exists_dfinsupp' [AddCommMonoid γ] (S : ι
 lean 3 declaration is
   forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] (p : ι -> Prop) [_inst_1 : DecidablePred.{succ u1} ι p] [_inst_2 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (x : γ), Iff (Membership.Mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.hasMem.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (supᵢ.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) ι (fun (i : ι) => supᵢ.{u2, 0} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteSemilatticeSup.toHasSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toCompleteSemilatticeSup.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.completeLattice.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) (p i) (fun (h : p i) => S i)))) (Exists.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) => Eq.{succ u2} γ (coeFn.{max (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) ((fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) i)) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) _inst_2 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u2)} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.setLike.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (S i)) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) p (fun (a : ι) => _inst_1 a) f)) x))
 but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] (p : ι -> Prop) [_inst_1 : DecidablePred.{succ u1} ι p] [_inst_2 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (x : γ), Iff (Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (supᵢ.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) ι (fun (i : ι) => supᵢ.{u2, 0} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (p i) (fun (h : p i) => S i)))) (Exists.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) => Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) => γ) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) p (fun (a : ι) => _inst_1 a) f)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) => γ) _x) (AddHomClass.toFunLike.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (AddZeroClass.toAdd.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) _inst_2 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) p (fun (a : ι) => _inst_1 a) f)) x))
+  forall {ι : Type.{u1}} {γ : Type.{u2}} [dec : DecidableEq.{succ u1} ι] (p : ι -> Prop) [_inst_1 : DecidablePred.{succ u1} ι p] [_inst_2 : AddCommMonoid.{u2} γ] (S : ι -> (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (x : γ), Iff (Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (supᵢ.{u2, succ u1} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) ι (fun (i : ι) => supᵢ.{u2, 0} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (CompleteLattice.toSupSet.{u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddSubmonoid.instCompleteLatticeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) (p i) (fun (h : p i) => S i)))) (Exists.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (fun (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.zero.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) => Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) => γ) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) p (fun (a : ι) => _inst_1 a) f)) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), succ u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) => γ) _x) (AddHomClass.toFunLike.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) (AddZeroClass.toAdd.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, max u1 u2, u2} (AddMonoidHom.{max u2 u1, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))))) (Dfinsupp.sumAddHom.{u1, u2, u2} ι γ (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i)) _inst_2 (fun (i : ι) => AddSubmonoid.subtype.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) (Dfinsupp.filter.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => Subtype.{succ u2} γ (fun (x : γ) => Membership.mem.{u2, u2} γ (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) (SetLike.instMembership.{u2, u2} (AddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2))) γ (AddSubmonoid.instSetLikeAddSubmonoid.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)))) x (S i))) i) (AddSubmonoid.toAddZeroClass.{u2} γ (AddMonoid.toAddZeroClass.{u2} γ (AddCommMonoid.toAddMonoid.{u2} γ _inst_2)) (S i))) p (fun (a : ι) => _inst_1 a) f)) x))
 Case conversion may be inaccurate. Consider using '#align add_submonoid.mem_bsupr_iff_exists_dfinsupp AddSubmonoid.mem_bsupr_iff_exists_dfinsuppₓ'. -/
 theorem AddSubmonoid.mem_bsupr_iff_exists_dfinsupp (p : ι → Prop) [DecidablePred p]
     [AddCommMonoid γ] (S : ι → AddSubmonoid γ) (x : γ) :
@@ -2945,7 +2945,7 @@ omit dec
 lean 3 declaration is
   forall {ι₁ : Type.{u1}} {ι₂ : Type.{u2}} {β₁ : ι₁ -> Type.{u3}} {β₂ : ι₂ -> Type.{u4}} {γ : Type.{u5}} [_inst_1 : DecidableEq.{succ u1} ι₁] [_inst_2 : DecidableEq.{succ u2} ι₂] [_inst_3 : forall (i : ι₁), AddZeroClass.{u3} (β₁ i)] [_inst_4 : forall (i : ι₂), AddZeroClass.{u4} (β₂ i)] [_inst_5 : AddCommMonoid.{u5} γ] (f₁ : Dfinsupp.{u1, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toHasZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (f₂ : Dfinsupp.{u2, u4} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toHasZero.{u4} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (h : forall (i : ι₁) (j : ι₂), AddMonoidHom.{u3, max u5 u4} (β₁ i) (AddMonoidHom.{u4, u5} (β₂ j) γ (_inst_4 j) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (_inst_3 i) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} (β₂ j) γ (_inst_4 j) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} (β₂ j) γ (_inst_4 j) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u4, u5} (β₂ j) γ (_inst_4 j) _inst_5)))), Eq.{succ u5} γ (coeFn.{max (succ u5) (succ (max u2 u4)), max (succ (max u2 u4)) (succ u5)} (AddMonoidHom.{max u2 u4, u5} (Dfinsupp.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => AddZeroClass.toHasZero.{u4} ((fun (i₂ : ι₂) => β₂ i₂) i) ((fun (i₂ : ι₂) => _inst_4 i₂) i))) γ (Dfinsupp.addZeroClass.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_4 i₂) i)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (fun (_x : AddMonoidHom.{max u2 u4, u5} (Dfinsupp.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => AddZeroClass.toHasZero.{u4} ((fun (i₂ : ι₂) => β₂ i₂) i) ((fun (i₂ : ι₂) => _inst_4 i₂) i))) γ (Dfinsupp.addZeroClass.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_4 i₂) i)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) => (Dfinsupp.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => AddZeroClass.toHasZero.{u4} ((fun (i₂ : ι₂) => β₂ i₂) i) ((fun (i₂ : ι₂) => _inst_4 i₂) i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u2 u4, u5} (Dfinsupp.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => AddZeroClass.toHasZero.{u4} ((fun (i₂ : ι₂) => β₂ i₂) i) ((fun (i₂ : ι₂) => _inst_4 i₂) i))) γ (Dfinsupp.addZeroClass.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_4 i₂) i)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (Dfinsupp.sumAddHom.{u2, u4, u5} ι₂ γ (fun (i₂ : ι₂) => β₂ i₂) (fun (a : ι₂) (b : ι₂) => _inst_2 a b) (fun (i₂ : ι₂) => _inst_4 i₂) _inst_5 (fun (i₂ : ι₂) => coeFn.{max (succ (max u5 u4)) (succ (max u1 u3)), max (succ (max u1 u3)) (succ (max u5 u4))} (AddMonoidHom.{max u1 u3, max u5 u4} (Dfinsupp.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => AddZeroClass.toHasZero.{u3} ((fun (i₁ : ι₁) => β₁ i₁) i) ((fun (i₁ : ι₁) => _inst_3 i₁) i))) (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (Dfinsupp.addZeroClass.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_3 i₁) i)) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))) (fun (_x : AddMonoidHom.{max u1 u3, max u5 u4} (Dfinsupp.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => AddZeroClass.toHasZero.{u3} ((fun (i₁ : ι₁) => β₁ i₁) i) ((fun (i₁ : ι₁) => _inst_3 i₁) i))) (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (Dfinsupp.addZeroClass.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_3 i₁) i)) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))) => (Dfinsupp.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => AddZeroClass.toHasZero.{u3} ((fun (i₁ : ι₁) => β₁ i₁) i) ((fun (i₁ : ι₁) => _inst_3 i₁) i))) -> (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5)))) (AddMonoidHom.hasCoeToFun.{max u1 u3, max u5 u4} (Dfinsupp.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => AddZeroClass.toHasZero.{u3} ((fun (i₁ : ι₁) => β₁ i₁) i) ((fun (i₁ : ι₁) => _inst_3 i₁) i))) (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (Dfinsupp.addZeroClass.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_3 i₁) i)) (AddMonoid.toAddZeroClass.{max u5 u4} (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u5 u4} (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))) (Dfinsupp.sumAddHom.{u1, u3, max u5 u4} ι₁ (AddMonoidHom.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i₁ : ι₁) => _inst_3 i₁) (AddMonoidHom.addCommMonoid.{u4, u5} (β₂ i₂) γ (_inst_4 i₂) _inst_5) (fun (i₁ : ι₁) => h i₁ i₂)) f₁)) f₂) (coeFn.{max (succ u5) (succ (max u1 u3)), max (succ (max u1 u3)) (succ u5)} (AddMonoidHom.{max u1 u3, u5} (Dfinsupp.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => AddZeroClass.toHasZero.{u3} ((fun (i₁ : ι₁) => β₁ i₁) i) ((fun (i₁ : ι₁) => _inst_3 i₁) i))) γ (Dfinsupp.addZeroClass.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_3 i₁) i)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (fun (_x : AddMonoidHom.{max u1 u3, u5} (Dfinsupp.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => AddZeroClass.toHasZero.{u3} ((fun (i₁ : ι₁) => β₁ i₁) i) ((fun (i₁ : ι₁) => _inst_3 i₁) i))) γ (Dfinsupp.addZeroClass.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_3 i₁) i)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) => (Dfinsupp.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => AddZeroClass.toHasZero.{u3} ((fun (i₁ : ι₁) => β₁ i₁) i) ((fun (i₁ : ι₁) => _inst_3 i₁) i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u3, u5} (Dfinsupp.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => AddZeroClass.toHasZero.{u3} ((fun (i₁ : ι₁) => β₁ i₁) i) ((fun (i₁ : ι₁) => _inst_3 i₁) i))) γ (Dfinsupp.addZeroClass.{u1, u3} ι₁ (fun (i : ι₁) => (fun (i₁ : ι₁) => β₁ i₁) i) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_3 i₁) i)) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (Dfinsupp.sumAddHom.{u1, u3, u5} ι₁ γ (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i₁ : ι₁) => _inst_3 i₁) _inst_5 (fun (i₁ : ι₁) => coeFn.{max (succ (max u5 u3)) (succ (max u2 u4)), max (succ (max u2 u4)) (succ (max u5 u3))} (AddMonoidHom.{max u2 u4, max u5 u3} (Dfinsupp.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => AddZeroClass.toHasZero.{u4} ((fun (i₂ : ι₂) => β₂ i₂) i) ((fun (i₂ : ι₂) => _inst_4 i₂) i))) (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (Dfinsupp.addZeroClass.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_4 i₂) i)) (AddMonoid.toAddZeroClass.{max u5 u3} (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u5 u3} (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))) (fun (_x : AddMonoidHom.{max u2 u4, max u5 u3} (Dfinsupp.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => AddZeroClass.toHasZero.{u4} ((fun (i₂ : ι₂) => β₂ i₂) i) ((fun (i₂ : ι₂) => _inst_4 i₂) i))) (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (Dfinsupp.addZeroClass.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_4 i₂) i)) (AddMonoid.toAddZeroClass.{max u5 u3} (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u5 u3} (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))) => (Dfinsupp.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => AddZeroClass.toHasZero.{u4} ((fun (i₂ : ι₂) => β₂ i₂) i) ((fun (i₂ : ι₂) => _inst_4 i₂) i))) -> (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5)))) (AddMonoidHom.hasCoeToFun.{max u2 u4, max u5 u3} (Dfinsupp.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => AddZeroClass.toHasZero.{u4} ((fun (i₂ : ι₂) => β₂ i₂) i) ((fun (i₂ : ι₂) => _inst_4 i₂) i))) (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (Dfinsupp.addZeroClass.{u2, u4} ι₂ (fun (i : ι₂) => (fun (i₂ : ι₂) => β₂ i₂) i) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_4 i₂) i)) (AddMonoid.toAddZeroClass.{max u5 u3} (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u5 u3} (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))) (Dfinsupp.sumAddHom.{u2, u4, max u5 u3} ι₂ (AddMonoidHom.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u5} γ (AddCommMonoid.toAddMonoid.{u5} γ _inst_5))) (fun (i₂ : ι₂) => β₂ i₂) (fun (a : ι₂) (b : ι₂) => _inst_2 a b) (fun (i₂ : ι₂) => _inst_4 i₂) (AddMonoidHom.addCommMonoid.{u3, u5} (β₁ i₁) γ (_inst_3 i₁) _inst_5) (fun (i₂ : ι₂) => AddMonoidHom.flip.{u3, u4, u5} (β₁ i₁) (β₂ i₂) γ (_inst_3 i₁) (_inst_4 i₂) _inst_5 (h i₁ i₂))) f₂)) f₁)
 but is expected to have type
-  forall {ι₁ : Type.{u5}} {ι₂ : Type.{u4}} {β₁ : ι₁ -> Type.{u3}} {β₂ : ι₂ -> Type.{u2}} {γ : Type.{u1}} [_inst_1 : DecidableEq.{succ u5} ι₁] [_inst_2 : DecidableEq.{succ u4} ι₂] [_inst_3 : forall (i : ι₁), AddZeroClass.{u3} (β₁ i)] [_inst_4 : forall (i : ι₂), AddZeroClass.{u2} (β₂ i)] [_inst_5 : AddCommMonoid.{u1} γ] (f₁ : Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (f₂ : Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (h : forall (i : ι₁) (j : ι₂), AddMonoidHom.{u3, max u1 u2} (β₁ i) (AddMonoidHom.{u2, u1} (β₂ j) γ (_inst_4 j) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (_inst_3 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ j) γ (_inst_4 j) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ j) γ (_inst_4 j) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ j) γ (_inst_4 j) _inst_5)))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) => γ) f₂) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u4), max (succ u2) (succ u4), succ u1} (AddMonoidHom.{max u2 u4, u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) γ (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u2 u1) u4, max u2 u4, u1} (AddMonoidHom.{max u2 u4, u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) γ (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) γ (AddZeroClass.toAdd.{max u2 u4} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i))) (AddZeroClass.toAdd.{u1} γ (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u1) u4, max u2 u4, u1} (AddMonoidHom.{max u2 u4, u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) γ (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) γ (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5)) (AddMonoidHom.addMonoidHomClass.{max u2 u4, u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) γ (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))))) (Dfinsupp.sumAddHom.{u4, u2, u1} ι₂ γ (fun (i₂ : ι₂) => β₂ i₂) (fun (a : ι₂) (b : ι₂) => _inst_2 a b) (fun (i₂ : ι₂) => _inst_4 i₂) _inst_5 (fun (i₂ : ι₂) => FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u1)) (succ u5), max (succ u3) (succ u5), max (succ u2) (succ u1)} (AddMonoidHom.{max u3 u5, max u2 u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))) (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (fun (_x : Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) => AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) _x) (AddHomClass.toFunLike.{max (max (max u3 u2) u1) u5, max u3 u5, max u2 u1} (AddMonoidHom.{max u3 u5, max u2 u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))) (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddZeroClass.toAdd.{max u3 u5} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i))) (AddZeroClass.toAdd.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u2) u1) u5, max u3 u5, max u2 u1} (AddMonoidHom.{max u3 u5, max u2 u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))) (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5))) (AddMonoidHom.addMonoidHomClass.{max u3 u5, max u2 u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))))) (Dfinsupp.sumAddHom.{u5, u3, max u2 u1} ι₁ (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i₁ : ι₁) => _inst_3 i₁) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5) (fun (i₁ : ι₁) => h i₁ i₂)) f₁)) f₂) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u5), max (succ u3) (succ u5), succ u1} (AddMonoidHom.{max u3 u5, u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) γ (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (fun (_x : Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u3 u1) u5, max u3 u5, u1} (AddMonoidHom.{max u3 u5, u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) γ (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) γ (AddZeroClass.toAdd.{max u3 u5} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i))) (AddZeroClass.toAdd.{u1} γ (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u1) u5, max u3 u5, u1} (AddMonoidHom.{max u3 u5, u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) γ (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) γ (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5)) (AddMonoidHom.addMonoidHomClass.{max u3 u5, u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) γ (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))))) (Dfinsupp.sumAddHom.{u5, u3, u1} ι₁ γ (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i₁ : ι₁) => _inst_3 i₁) _inst_5 (fun (i₁ : ι₁) => FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u1)) (succ u4), max (succ u2) (succ u4), max (succ u3) (succ u1)} (AddMonoidHom.{max u2 u4, max u3 u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))) (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) => AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) _x) (AddHomClass.toFunLike.{max (max (max u3 u2) u1) u4, max u2 u4, max u3 u1} (AddMonoidHom.{max u2 u4, max u3 u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))) (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddZeroClass.toAdd.{max u2 u4} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i))) (AddZeroClass.toAdd.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u2) u1) u4, max u2 u4, max u3 u1} (AddMonoidHom.{max u2 u4, max u3 u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))) (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5))) (AddMonoidHom.addMonoidHomClass.{max u2 u4, max u3 u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))))) (Dfinsupp.sumAddHom.{u4, u2, max u3 u1} ι₂ (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (fun (i₂ : ι₂) => β₂ i₂) (fun (a : ι₂) (b : ι₂) => _inst_2 a b) (fun (i₂ : ι₂) => _inst_4 i₂) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5) (fun (i₂ : ι₂) => AddMonoidHom.flip.{u3, u2, u1} (β₁ i₁) (β₂ i₂) γ (_inst_3 i₁) (_inst_4 i₂) _inst_5 (h i₁ i₂))) f₂)) f₁)
+  forall {ι₁ : Type.{u5}} {ι₂ : Type.{u4}} {β₁ : ι₁ -> Type.{u3}} {β₂ : ι₂ -> Type.{u2}} {γ : Type.{u1}} [_inst_1 : DecidableEq.{succ u5} ι₁] [_inst_2 : DecidableEq.{succ u4} ι₂] [_inst_3 : forall (i : ι₁), AddZeroClass.{u3} (β₁ i)] [_inst_4 : forall (i : ι₂), AddZeroClass.{u2} (β₂ i)] [_inst_5 : AddCommMonoid.{u1} γ] (f₁ : Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (f₂ : Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (h : forall (i : ι₁) (j : ι₂), AddMonoidHom.{u3, max u1 u2} (β₁ i) (AddMonoidHom.{u2, u1} (β₂ j) γ (_inst_4 j) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (_inst_3 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ j) γ (_inst_4 j) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ j) γ (_inst_4 j) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ j) γ (_inst_4 j) _inst_5)))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) => γ) f₂) (FunLike.coe.{max (max (succ u2) (succ u1)) (succ u4), max (succ u2) (succ u4), succ u1} (AddMonoidHom.{max u2 u4, u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) γ (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u2 u1) u4, max u2 u4, u1} (AddMonoidHom.{max u2 u4, u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) γ (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) γ (AddZeroClass.toAdd.{max u2 u4} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i))) (AddZeroClass.toAdd.{u1} γ (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHomClass.toAddHomClass.{max (max u2 u1) u4, max u2 u4, u1} (AddMonoidHom.{max u2 u4, u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) γ (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) γ (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5)) (AddMonoidHom.addMonoidHomClass.{max u2 u4, u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) γ (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))))) (Dfinsupp.sumAddHom.{u4, u2, u1} ι₂ γ (fun (i₂ : ι₂) => β₂ i₂) (fun (a : ι₂) (b : ι₂) => _inst_2 a b) (fun (i₂ : ι₂) => _inst_4 i₂) _inst_5 (fun (i₂ : ι₂) => FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u1)) (succ u5), max (succ u3) (succ u5), max (succ u2) (succ u1)} (AddMonoidHom.{max u3 u5, max u2 u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))) (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (fun (_x : Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) => AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) _x) (AddHomClass.toFunLike.{max (max (max u3 u2) u1) u5, max u3 u5, max u2 u1} (AddMonoidHom.{max u3 u5, max u2 u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))) (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddZeroClass.toAdd.{max u3 u5} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i))) (AddZeroClass.toAdd.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u2) u1) u5, max u3 u5, max u2 u1} (AddMonoidHom.{max u3 u5, max u2 u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))) (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5))) (AddMonoidHom.addMonoidHomClass.{max u3 u5, max u2 u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5)))))) (Dfinsupp.sumAddHom.{u5, u3, max u2 u1} ι₁ (AddMonoidHom.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i₁ : ι₁) => _inst_3 i₁) (AddMonoidHom.addCommMonoid.{u2, u1} (β₂ i₂) γ (_inst_4 i₂) _inst_5) (fun (i₁ : ι₁) => h i₁ i₂)) f₁)) f₂) (FunLike.coe.{max (max (succ u3) (succ u1)) (succ u5), max (succ u3) (succ u5), succ u1} (AddMonoidHom.{max u3 u5, u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) γ (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (fun (_x : Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u3 u1) u5, max u3 u5, u1} (AddMonoidHom.{max u3 u5, u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) γ (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) γ (AddZeroClass.toAdd.{max u3 u5} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i))) (AddZeroClass.toAdd.{u1} γ (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u1) u5, max u3 u5, u1} (AddMonoidHom.{max u3 u5, u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) γ (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) γ (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5)) (AddMonoidHom.addMonoidHomClass.{max u3 u5, u1} (Dfinsupp.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => AddZeroClass.toZero.{u3} ((fun (i : ι₁) => β₁ i) i) (_inst_3 i))) γ (Dfinsupp.addZeroClass.{u5, u3} ι₁ (fun (i : ι₁) => β₁ i) (fun (i : ι₁) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))))) (Dfinsupp.sumAddHom.{u5, u3, u1} ι₁ γ (fun (i₁ : ι₁) => β₁ i₁) (fun (a : ι₁) (b : ι₁) => _inst_1 a b) (fun (i₁ : ι₁) => _inst_3 i₁) _inst_5 (fun (i₁ : ι₁) => FunLike.coe.{max (max (max (succ u3) (succ u2)) (succ u1)) (succ u4), max (succ u2) (succ u4), max (succ u3) (succ u1)} (AddMonoidHom.{max u2 u4, max u3 u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))) (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) => AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) _x) (AddHomClass.toFunLike.{max (max (max u3 u2) u1) u4, max u2 u4, max u3 u1} (AddMonoidHom.{max u2 u4, max u3 u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))) (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddZeroClass.toAdd.{max u2 u4} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i))) (AddZeroClass.toAdd.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u2) u1) u4, max u2 u4, max u3 u1} (AddMonoidHom.{max u2 u4, max u3 u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))) (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5))) (AddMonoidHom.addMonoidHomClass.{max u2 u4, max u3 u1} (Dfinsupp.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => AddZeroClass.toZero.{u2} ((fun (i : ι₂) => β₂ i) i) (_inst_4 i))) (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (Dfinsupp.addZeroClass.{u4, u2} ι₂ (fun (i : ι₂) => β₂ i) (fun (i : ι₂) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5)))))) (Dfinsupp.sumAddHom.{u4, u2, max u3 u1} ι₂ (AddMonoidHom.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) (AddMonoid.toAddZeroClass.{u1} γ (AddCommMonoid.toAddMonoid.{u1} γ _inst_5))) (fun (i₂ : ι₂) => β₂ i₂) (fun (a : ι₂) (b : ι₂) => _inst_2 a b) (fun (i₂ : ι₂) => _inst_4 i₂) (AddMonoidHom.addCommMonoid.{u3, u1} (β₁ i₁) γ (_inst_3 i₁) _inst_5) (fun (i₂ : ι₂) => AddMonoidHom.flip.{u3, u2, u1} (β₁ i₁) (β₂ i₂) γ (_inst_3 i₁) (_inst_4 i₂) _inst_5 (h i₁ i₂))) f₂)) f₁)
 Case conversion may be inaccurate. Consider using '#align dfinsupp.sum_add_hom_comm Dfinsupp.sumAddHom_commₓ'. -/
 theorem sumAddHom_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂ : ι₂ → Type _} {γ : Type _}
     [DecidableEq ι₁] [DecidableEq ι₂] [∀ i, AddZeroClass (β₁ i)] [∀ i, AddZeroClass (β₂ i)]
@@ -3001,7 +3001,7 @@ theorem liftAddHom_singleAddHom [∀ i, AddCommMonoid (β i)] :
 lean 3 declaration is
   forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (f : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι) (x : β i), Eq.{succ u3} γ (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) -> γ) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (coeFn.{max (succ (max u1 u3 u2)) (succ (max u3 u1 u2)), max (succ (max u1 u3 u2)) (succ (max u3 u1 u2))} (AddEquiv.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (fun (_x : AddEquiv.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) => (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) -> (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)))) (AddEquiv.hasCoeToFun.{max u1 u3 u2, max u3 u1 u2} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u3 u2} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.hasAdd.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.hasAdd.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (Dfinsupp.liftAddHom.{u1, u2, u3} ι γ (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2) f) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i)) i x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (β i) -> γ) (AddMonoidHom.hasCoeToFun.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (f i) x)
 but is expected to have type
-  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (f : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι) (x : β i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) f) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) f) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) f) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AddEquiv.{max (max u1 u2) u3, max u3 u2 u1} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) _x) (EmbeddingLike.toFunLike.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AddEquiv.{max (max u1 u2) u3, max u3 u2 u1} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (EquivLike.toEmbeddingLike.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AddEquiv.{max (max u1 u2) u3, max u3 u2 u1} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddEquivClass.toEquivLike.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (AddEquiv.{max (max u1 u2) u3, max u3 u2 u1} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (AddEquiv.instAddEquivClassAddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2))))) (Dfinsupp.liftAddHom.{u1, u2, u3} ι γ β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2) f) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i x)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : β i) => γ) _x) (AddHomClass.toFunLike.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (AddZeroClass.toAdd.{u2} (β i) (_inst_1 i)) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (f i) x)
+  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : AddCommMonoid.{u3} γ] (f : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (i : ι) (x : β i), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) f) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) => γ) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u1 u2, u3} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) f) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (AddZeroClass.toAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i))) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u1 u2, u3} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) f) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AddEquiv.{max (max u1 u2) u3, max u3 u2 u1} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (_x : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) => AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) _x) (EmbeddingLike.toFunLike.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AddEquiv.{max (max u1 u2) u3, max u3 u2 u1} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (EquivLike.toEmbeddingLike.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AddEquiv.{max (max u1 u2) u3, max u3 u2 u1} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddEquivClass.toEquivLike.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (AddEquiv.{max (max u1 u2) u3, max u3 u2 u1} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2)) (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2) (AddEquiv.instAddEquivClassAddEquiv.{max (max u1 u2) u3, max (max u1 u2) u3} (forall (i : ι), AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHom.{max u2 u1, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (Pi.instAdd.{u1, max u2 u3} ι (fun (i : ι) => AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (fun (i : ι) => AddMonoidHom.add.{u2, u3} (β i) γ (_inst_1 i) _inst_2)) (AddMonoidHom.add.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) γ (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) _inst_2))))) (Dfinsupp.liftAddHom.{u1, u2, u3} ι γ β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) _inst_2) f) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)) i x)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) (fun (_x : β i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : β i) => γ) _x) (AddHomClass.toFunLike.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (AddZeroClass.toAdd.{u2} (β i) (_inst_1 i)) (AddZeroClass.toAdd.{u3} γ (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u2, u3} (AddMonoidHom.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))) (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2)) (AddMonoidHom.addMonoidHomClass.{u2, u3} (β i) γ (_inst_1 i) (AddMonoid.toAddZeroClass.{u3} γ (AddCommMonoid.toAddMonoid.{u3} γ _inst_2))))) (f i) x)
 Case conversion may be inaccurate. Consider using '#align dfinsupp.lift_add_hom_apply_single Dfinsupp.liftAddHom_apply_singleₓ'. -/
 /-- The `dfinsupp` version of `finsupp.lift_add_hom_apply_single`,-/
 theorem liftAddHom_apply_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f : ∀ i, β i →+ γ)
@@ -3340,7 +3340,7 @@ variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : CommMonoid.{u3} R] [_inst_5 : CommMonoid.{u4} S] (h : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u4} S (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) h (Dfinsupp.prod.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (Dfinsupp.prod.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) h (g a b)))
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : CommMonoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (h : MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) h (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (Dfinsupp.prod.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) h (g a b)))
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : CommMonoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (h : MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) h (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (Dfinsupp.prod.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) h (g a b)))
 Case conversion may be inaccurate. Consider using '#align monoid_hom.map_dfinsupp_prod MonoidHom.map_dfinsupp_prodₓ'. -/
 @[simp, to_additive]
 theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R →* S) (f : Π₀ i, β i)
@@ -3353,7 +3353,7 @@ theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R →* S) (f : Π
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : Monoid.{u3} R] [_inst_5 : CommMonoid.{u4} S] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))), Eq.{succ (max u3 u4)} (R -> S) (coeFn.{succ (max u4 u3), succ (max u3 u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (Dfinsupp.prod.{u1, u2, max u4 u3} ι (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) _inst_5) f g)) (Dfinsupp.prod.{u1, u2, max u3 u4} ι (R -> S) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (Pi.commMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_5)) f (fun (a : ι) (b : β a) => coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (g a b)))
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : Monoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) _inst_5) f g)) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) ᾰ) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (Pi.commMonoid.{u2, u1} R (fun (ᾰ : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) ᾰ) (fun (i : R) => _inst_5)) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (g a b)))
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : Monoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) _inst_5) f g)) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) ᾰ) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (Pi.commMonoid.{u2, u1} R (fun (ᾰ : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) ᾰ) (fun (i : R) => _inst_5)) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (g a b)))
 Case conversion may be inaccurate. Consider using '#align monoid_hom.coe_dfinsupp_prod MonoidHom.coe_dfinsupp_prodₓ'. -/
 @[to_additive]
 theorem coe_dfinsupp_prod [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀ i, β i → R →* S) :
@@ -3366,7 +3366,7 @@ theorem coe_dfinsupp_prod [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : Monoid.{u3} R] [_inst_5 : CommMonoid.{u4} S] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) (r : R), Eq.{succ u4} S (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (Dfinsupp.prod.{u1, u2, max u4 u3} ι (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) _inst_5) f g) r) (Dfinsupp.prod.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (g a b) r))
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : Monoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) (r : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) r) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) _inst_5) f g) r) (Dfinsupp.prod.{u3, u4, u1} ι ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) r) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (g a b) r))
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : Monoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) (r : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) r) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) _inst_5) f g) r) (Dfinsupp.prod.{u3, u4, u1} ι ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) r) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (g a b) r))
 Case conversion may be inaccurate. Consider using '#align monoid_hom.dfinsupp_prod_apply MonoidHom.dfinsupp_prod_applyₓ'. -/
 @[simp, to_additive]
 theorem dfinsupp_prod_apply [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀ i, β i → R →* S)
@@ -3387,7 +3387,7 @@ variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : CommSemiring.{u3} R] [_inst_5 : CommSemiring.{u4} S] (h : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) (fun (_x : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) h (Dfinsupp.prod.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u3} R _inst_4) f g)) (Dfinsupp.prod.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u4} S _inst_5) f (fun (a : ι) (b : β a) => coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) (fun (_x : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) h (g a b)))
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : CommSemiring.{u2} R] [_inst_5 : CommSemiring.{u1} S] (h : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u2} R _inst_4) f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))))) h (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u2} R _inst_4) f g)) (Dfinsupp.prod.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u1} S _inst_5) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))))) h (g a b)))
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : CommSemiring.{u2} R] [_inst_5 : CommSemiring.{u1} S] (h : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u2} R _inst_4) f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))))) h (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u2} R _inst_4) f g)) (Dfinsupp.prod.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u1} S _inst_5) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))))) h (g a b)))
 Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_prod RingHom.map_dfinsupp_prodₓ'. -/
 @[simp]
 theorem map_dfinsupp_prod [CommSemiring R] [CommSemiring S] (h : R →+* S) (f : Π₀ i, β i)
@@ -3399,7 +3399,7 @@ theorem map_dfinsupp_prod [CommSemiring R] [CommSemiring S] (h : R →+* S) (f :
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : NonAssocSemiring.{u3} R] [_inst_5 : NonAssocSemiring.{u4} S] (h : RingHom.{u3, u4} R S _inst_4 _inst_5) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S _inst_4 _inst_5) (fun (_x : RingHom.{u3, u4} R S _inst_4 _inst_5) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S _inst_4 _inst_5) h (Dfinsupp.sum.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_4)) f g)) (Dfinsupp.sum.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_5)) f (fun (a : ι) (b : β a) => coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S _inst_4 _inst_5) (fun (_x : RingHom.{u3, u4} R S _inst_4 _inst_5) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S _inst_4 _inst_5) h (g a b)))
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : NonAssocSemiring.{u2} R] [_inst_5 : NonAssocSemiring.{u1} S] (h : RingHom.{u2, u1} R S _inst_4 _inst_5) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) (Dfinsupp.sum.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S _inst_4 _inst_5 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_4 _inst_5)))) h (Dfinsupp.sum.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) f g)) (Dfinsupp.sum.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S _inst_4 _inst_5 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_4 _inst_5)))) h (g a b)))
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : NonAssocSemiring.{u2} R] [_inst_5 : NonAssocSemiring.{u1} S] (h : RingHom.{u2, u1} R S _inst_4 _inst_5) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) (Dfinsupp.sum.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S _inst_4 _inst_5 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_4 _inst_5)))) h (Dfinsupp.sum.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) f g)) (Dfinsupp.sum.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S _inst_4 _inst_5 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_4 _inst_5)))) h (g a b)))
 Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_sum RingHom.map_dfinsupp_sumₓ'. -/
 @[simp]
 theorem map_dfinsupp_sum [NonAssocSemiring R] [NonAssocSemiring S] (h : R →+* S) (f : Π₀ i, β i)
@@ -3443,7 +3443,7 @@ open Dfinsupp
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : AddCommMonoid.{u3} R] [_inst_3 : AddCommMonoid.{u4} S] [_inst_4 : forall (i : ι), AddZeroClass.{u2} (β i)] (h : AddMonoidHom.{u3, u4} R S (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u2, u3} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))), Eq.{succ u4} S (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (AddMonoidHom.{u3, u4} R S (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{u3, u4} R S (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => R -> S) (AddMonoidHom.hasCoeToFun.{u3, u4} R S (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) h (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (coeFn.{max (succ u4) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u4)} (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> S) (AddMonoidHom.hasCoeToFun.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.sumAddHom.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u2, u3, u4} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)) h (g i))) f)
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : AddCommMonoid.{u2} R] [_inst_3 : AddCommMonoid.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (h : AddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, u2} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : R) => S) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (a : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) a) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : R) => S) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) h (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u4, u2, u1} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) h (g i))) f)
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : AddCommMonoid.{u2} R] [_inst_3 : AddCommMonoid.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (h : AddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, u2} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : R) => S) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (a : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) a) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : R) => S) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) h (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u4, u2, u1} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) h (g i))) f)
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.map_dfinsupp_sum_add_hom AddMonoidHom.map_dfinsupp_sumAddHomₓ'. -/
 @[simp]
 theorem map_dfinsupp_sumAddHom [AddCommMonoid R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
@@ -3456,7 +3456,7 @@ theorem map_dfinsupp_sumAddHom [AddCommMonoid R] [AddCommMonoid S] [∀ i, AddZe
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : AddZeroClass.{u3} R] [_inst_3 : AddCommMonoid.{u4} S] [_inst_4 : forall (i : ι), AddZeroClass.{u2} (β i)] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u2, max u4 u3} (β i) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) (r : R), Eq.{succ u4} S (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => R -> S) (AddMonoidHom.hasCoeToFun.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (coeFn.{max (succ (max u4 u3)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ (max u4 u3))} (AddMonoidHom.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) (fun (_x : AddMonoidHom.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) (Dfinsupp.sumAddHom.{u1, u2, max u4 u3} ι (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3) g) f) r) (coeFn.{max (succ u4) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u4)} (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> S) (AddMonoidHom.hasCoeToFun.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.sumAddHom.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u2, max u4 u3, u4} (β i) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (_inst_4 i) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)) (coeFn.{max (succ (max u4 u3)) (succ u3), max (succ u3) (succ (max u4 u3))} (AddMonoidHom.{u3, max u4 u3} R (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) _inst_3)))) (fun (_x : AddMonoidHom.{u3, max u4 u3} R (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) _inst_3)))) => R -> (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) (AddMonoidHom.hasCoeToFun.{u3, max u4 u3} R (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) _inst_3)))) (AddMonoidHom.eval.{u3, u4} R S _inst_2 _inst_3) r) (g i))) f)
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : AddZeroClass.{u2} R] [_inst_3 : AddCommMonoid.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, max u1 u2} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (r : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : R) => S) r) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : R) => S) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S (AddZeroClass.toAdd.{u2} R _inst_2) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (FunLike.coe.{max (max (max (succ u3) (succ u4)) (succ u2)) (succ u1), max (succ u3) (succ u4), max (succ u2) (succ u1)} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _x) (AddHomClass.toFunLike.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))))) (Dfinsupp.sumAddHom.{u3, u4, max u2 u1} ι (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3) g) f) r) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u4, max u2 u1, u1} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u1 u2} R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : R) => AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u1 u2} R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))) R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddZeroClass.toAdd.{u2} R _inst_2) (AddZeroClass.toAdd.{max u1 u2} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u1 u2} R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))) R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))))) (AddMonoidHom.eval.{u2, u1} R S _inst_2 _inst_3) r) (g i))) f)
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : AddZeroClass.{u2} R] [_inst_3 : AddCommMonoid.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, max u1 u2} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (r : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : R) => S) r) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : R) => S) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S (AddZeroClass.toAdd.{u2} R _inst_2) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (FunLike.coe.{max (max (max (succ u3) (succ u4)) (succ u2)) (succ u1), max (succ u3) (succ u4), max (succ u2) (succ u1)} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _x) (AddHomClass.toFunLike.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))))) (Dfinsupp.sumAddHom.{u3, u4, max u2 u1} ι (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3) g) f) r) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u4, max u2 u1, u1} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u1 u2} R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : R) => AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u1 u2} R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))) R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddZeroClass.toAdd.{u2} R _inst_2) (AddZeroClass.toAdd.{max u1 u2} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u1 u2} R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))) R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))))) (AddMonoidHom.eval.{u2, u1} R S _inst_2 _inst_3) r) (g i))) f)
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.dfinsupp_sum_add_hom_apply AddMonoidHom.dfinsupp_sumAddHom_applyₓ'. -/
 @[simp]
 theorem dfinsupp_sumAddHom_apply [AddZeroClass R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
@@ -3469,7 +3469,7 @@ theorem dfinsupp_sumAddHom_apply [AddZeroClass R] [AddCommMonoid S] [∀ i, AddZ
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : AddZeroClass.{u3} R] [_inst_3 : AddCommMonoid.{u4} S] [_inst_4 : forall (i : ι), AddZeroClass.{u2} (β i)] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u2, max u4 u3} (β i) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))), Eq.{max (succ u3) (succ u4)} (R -> S) (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => R -> S) (AddMonoidHom.hasCoeToFun.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (coeFn.{max (succ (max u4 u3)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ (max u4 u3))} (AddMonoidHom.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) (fun (_x : AddMonoidHom.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) (Dfinsupp.sumAddHom.{u1, u2, max u4 u3} ι (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3) g) f)) (coeFn.{max (succ (max u3 u4)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ (max u3 u4))} (AddMonoidHom.{max u1 u2, max u3 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (R -> S) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u3 u4} (R -> S) (AddCommMonoid.toAddMonoid.{max u3 u4} (R -> S) (Pi.addCommMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3))))) (fun (_x : AddMonoidHom.{max u1 u2, max u3 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (R -> S) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u3 u4} (R -> S) (AddCommMonoid.toAddMonoid.{max u3 u4} (R -> S) (Pi.addCommMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3))))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> R -> S) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u3 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (R -> S) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u3 u4} (R -> S) (AddCommMonoid.toAddMonoid.{max u3 u4} (R -> S) (Pi.addCommMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.sumAddHom.{u1, u2, max u3 u4} ι (R -> S) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (Pi.addCommMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u2, max u4 u3, max u3 u4} (β i) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (R -> S) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (Pi.addZeroClass.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.coeFn.{u3, u4} R S _inst_2 _inst_3) (g i))) f)
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : AddZeroClass.{u2} R] [_inst_3 : AddCommMonoid.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, max u1 u2} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : R) => S) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S (AddZeroClass.toAdd.{u2} R _inst_2) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (FunLike.coe.{max (max (max (succ u3) (succ u4)) (succ u2)) (succ u1), max (succ u3) (succ u4), max (succ u2) (succ u1)} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _x) (AddHomClass.toFunLike.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))))) (Dfinsupp.sumAddHom.{u3, u4, max u2 u1} ι (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3) g) f)) (FunLike.coe.{max (max (max (succ u3) (succ u4)) (succ u2)) (succ u1), max (succ u3) (succ u4), max (succ u2) (succ u1)} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2947 : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R -> S) _x) (AddHomClass.toFunLike.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2947 : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{max u2 u1} (R -> S) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2947 : R) => S) (fun (i : R) => _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2947 : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2947 : R) => S) (fun (i : R) => _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2947 : R) => S) (fun (i : R) => _inst_3))))))) (Dfinsupp.sumAddHom.{u3, u4, max u2 u1} ι (R -> S) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (Pi.addCommMonoid.{u2, u1} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u4, max u2 u1, max u2 u1} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (R -> S) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (Pi.addZeroClass.{u2, u1} R (fun (ᾰ : R) => S) (fun (i : R) => AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.coeFn.{u2, u1} R S _inst_2 _inst_3) (g i))) f)
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : AddZeroClass.{u2} R] [_inst_3 : AddCommMonoid.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, max u1 u2} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : R) => S) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S (AddZeroClass.toAdd.{u2} R _inst_2) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (FunLike.coe.{max (max (max (succ u3) (succ u4)) (succ u2)) (succ u1), max (succ u3) (succ u4), max (succ u2) (succ u1)} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _x) (AddHomClass.toFunLike.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))))) (Dfinsupp.sumAddHom.{u3, u4, max u2 u1} ι (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3) g) f)) (FunLike.coe.{max (max (max (succ u3) (succ u4)) (succ u2)) (succ u1), max (succ u3) (succ u4), max (succ u2) (succ u1)} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2959 : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R -> S) _x) (AddHomClass.toFunLike.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2959 : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{max u2 u1} (R -> S) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2959 : R) => S) (fun (i : R) => _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2959 : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2959 : R) => S) (fun (i : R) => _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2959 : R) => S) (fun (i : R) => _inst_3))))))) (Dfinsupp.sumAddHom.{u3, u4, max u2 u1} ι (R -> S) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (Pi.addCommMonoid.{u2, u1} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u4, max u2 u1, max u2 u1} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (R -> S) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (Pi.addZeroClass.{u2, u1} R (fun (ᾰ : R) => S) (fun (i : R) => AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.coeFn.{u2, u1} R S _inst_2 _inst_3) (g i))) f)
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.coe_dfinsupp_sum_add_hom AddMonoidHom.coe_dfinsupp_sumAddHomₓ'. -/
 theorem coe_dfinsupp_sumAddHom [AddZeroClass R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (f : Π₀ i, β i) (g : ∀ i, β i →+ R →+ S) :
@@ -3489,7 +3489,7 @@ open Dfinsupp
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : NonAssocSemiring.{u3} R] [_inst_3 : NonAssocSemiring.{u4} S] [_inst_4 : forall (i : ι), AddZeroClass.{u2} (β i)] (h : RingHom.{u3, u4} R S _inst_2 _inst_3) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u2, u3} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_2))))), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S _inst_2 _inst_3) (fun (_x : RingHom.{u3, u4} R S _inst_2 _inst_3) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S _inst_2 _inst_3) h (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2))))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2))))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2)) g) f)) (coeFn.{max (succ u4) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u4)} (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3))))) (fun (_x : AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3))))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> S) (AddMonoidHom.hasCoeToFun.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3))))) (Dfinsupp.sumAddHom.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u2, u3, u4} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_2)))) (AddMonoid.toAddZeroClass.{u4} S (AddMonoidWithOne.toAddMonoid.{u4} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u4} S (NonAssocSemiring.toAddCommMonoidWithOne.{u4} S _inst_3)))) (RingHom.toAddMonoidHom.{u3, u4} R S _inst_2 _inst_3 h) (g i))) f)
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : NonAssocSemiring.{u2} R] [_inst_3 : NonAssocSemiring.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (h : RingHom.{u2, u1} R S _inst_2 _inst_3) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, u2} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R _inst_2))))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (a : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) a) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) g) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S _inst_2 _inst_3 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_2 _inst_3)))) h (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) g) f)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u4, u2, u1} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R _inst_2)))) (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S _inst_3)))) (RingHom.toAddMonoidHom.{u2, u1} R S _inst_2 _inst_3 h) (g i))) f)
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : NonAssocSemiring.{u2} R] [_inst_3 : NonAssocSemiring.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (h : RingHom.{u2, u1} R S _inst_2 _inst_3) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, u2} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R _inst_2))))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (a : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) a) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) g) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S _inst_2 _inst_3 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_2 _inst_3)))) h (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) g) f)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u4, u2, u1} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R _inst_2)))) (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S _inst_3)))) (RingHom.toAddMonoidHom.{u2, u1} R S _inst_2 _inst_3 h) (g i))) f)
 Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_sum_add_hom RingHom.map_dfinsupp_sumAddHomₓ'. -/
 @[simp]
 theorem map_dfinsupp_sumAddHom [NonAssocSemiring R] [NonAssocSemiring S] [∀ i, AddZeroClass (β i)]
@@ -3510,7 +3510,7 @@ open Dfinsupp
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : AddCommMonoid.{u3} R] [_inst_3 : AddCommMonoid.{u4} S] [_inst_4 : forall (i : ι), AddZeroClass.{u2} (β i)] (h : AddEquiv.{u3, u4} R S (AddZeroClass.toHasAdd.{u3} R (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (AddZeroClass.toHasAdd.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u2, u3} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AddEquiv.{u3, u4} R S (AddZeroClass.toHasAdd.{u3} R (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (AddZeroClass.toHasAdd.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) (fun (_x : AddEquiv.{u3, u4} R S (AddZeroClass.toHasAdd.{u3} R (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (AddZeroClass.toHasAdd.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) => R -> S) (AddEquiv.hasCoeToFun.{u3, u4} R S (AddZeroClass.toHasAdd.{u3} R (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (AddZeroClass.toHasAdd.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) h (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (coeFn.{max (succ u4) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u4)} (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> S) (AddMonoidHom.hasCoeToFun.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.sumAddHom.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u2, u3, u4} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)) (AddEquiv.toAddMonoidHom.{u3, u4} R S (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)) h) (g i))) f)
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : AddCommMonoid.{u2} R] [_inst_3 : AddCommMonoid.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (h : AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, u2} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))), Eq.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : R) => S) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (a : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) a) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) R (fun (_x : R) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : R) => S) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) R S (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) R S (AddEquivClass.toEquivLike.{max u2 u1, u2, u1} (AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddEquiv.instAddEquivClassAddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))))) h (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u4, u2, u1} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddEquiv.toAddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) h) (g i))) f)
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : AddCommMonoid.{u2} R] [_inst_3 : AddCommMonoid.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (h : AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, u2} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))), Eq.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : R) => S) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (a : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) a) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) R (fun (_x : R) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : R) => S) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) R S (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) R S (AddEquivClass.toEquivLike.{max u2 u1, u2, u1} (AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddEquiv.instAddEquivClassAddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))))) h (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u4, u2, u1} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddEquiv.toAddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) h) (g i))) f)
 Case conversion may be inaccurate. Consider using '#align add_equiv.map_dfinsupp_sum_add_hom AddEquiv.map_dfinsupp_sumAddHomₓ'. -/
 @[simp]
 theorem map_dfinsupp_sumAddHom [AddCommMonoid R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
Diff
@@ -3340,7 +3340,7 @@ variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : CommMonoid.{u3} R] [_inst_5 : CommMonoid.{u4} S] (h : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u4} S (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) h (Dfinsupp.prod.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (Dfinsupp.prod.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) h (g a b)))
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : CommMonoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (h : MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) h (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (Dfinsupp.prod.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) h (g a b)))
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : CommMonoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (h : MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) h (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (Dfinsupp.prod.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) h (g a b)))
 Case conversion may be inaccurate. Consider using '#align monoid_hom.map_dfinsupp_prod MonoidHom.map_dfinsupp_prodₓ'. -/
 @[simp, to_additive]
 theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R →* S) (f : Π₀ i, β i)
@@ -3353,7 +3353,7 @@ theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R →* S) (f : Π
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : Monoid.{u3} R] [_inst_5 : CommMonoid.{u4} S] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))), Eq.{succ (max u3 u4)} (R -> S) (coeFn.{succ (max u4 u3), succ (max u3 u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (Dfinsupp.prod.{u1, u2, max u4 u3} ι (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) _inst_5) f g)) (Dfinsupp.prod.{u1, u2, max u3 u4} ι (R -> S) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (Pi.commMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_5)) f (fun (a : ι) (b : β a) => coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (g a b)))
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : Monoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) _inst_5) f g)) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) ᾰ) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (Pi.commMonoid.{u2, u1} R (fun (ᾰ : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) ᾰ) (fun (i : R) => _inst_5)) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (g a b)))
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : Monoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) _inst_5) f g)) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) ᾰ) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (Pi.commMonoid.{u2, u1} R (fun (ᾰ : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) ᾰ) (fun (i : R) => _inst_5)) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (g a b)))
 Case conversion may be inaccurate. Consider using '#align monoid_hom.coe_dfinsupp_prod MonoidHom.coe_dfinsupp_prodₓ'. -/
 @[to_additive]
 theorem coe_dfinsupp_prod [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀ i, β i → R →* S) :
@@ -3366,7 +3366,7 @@ theorem coe_dfinsupp_prod [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : Monoid.{u3} R] [_inst_5 : CommMonoid.{u4} S] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) (r : R), Eq.{succ u4} S (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (Dfinsupp.prod.{u1, u2, max u4 u3} ι (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) _inst_5) f g) r) (Dfinsupp.prod.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (g a b) r))
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : Monoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) (r : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) r) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) _inst_5) f g) r) (Dfinsupp.prod.{u3, u4, u1} ι ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) r) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (g a b) r))
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : Monoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) (r : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) r) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) _inst_5) f g) r) (Dfinsupp.prod.{u3, u4, u1} ι ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) r) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (g a b) r))
 Case conversion may be inaccurate. Consider using '#align monoid_hom.dfinsupp_prod_apply MonoidHom.dfinsupp_prod_applyₓ'. -/
 @[simp, to_additive]
 theorem dfinsupp_prod_apply [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀ i, β i → R →* S)
@@ -3387,7 +3387,7 @@ variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : CommSemiring.{u3} R] [_inst_5 : CommSemiring.{u4} S] (h : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) (fun (_x : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) h (Dfinsupp.prod.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u3} R _inst_4) f g)) (Dfinsupp.prod.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u4} S _inst_5) f (fun (a : ι) (b : β a) => coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) (fun (_x : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) h (g a b)))
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : CommSemiring.{u2} R] [_inst_5 : CommSemiring.{u1} S] (h : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u2} R _inst_4) f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))))) h (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u2} R _inst_4) f g)) (Dfinsupp.prod.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u1} S _inst_5) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))))) h (g a b)))
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : CommSemiring.{u2} R] [_inst_5 : CommSemiring.{u1} S] (h : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u2} R _inst_4) f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))))) h (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u2} R _inst_4) f g)) (Dfinsupp.prod.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u1} S _inst_5) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))))) h (g a b)))
 Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_prod RingHom.map_dfinsupp_prodₓ'. -/
 @[simp]
 theorem map_dfinsupp_prod [CommSemiring R] [CommSemiring S] (h : R →+* S) (f : Π₀ i, β i)
@@ -3399,7 +3399,7 @@ theorem map_dfinsupp_prod [CommSemiring R] [CommSemiring S] (h : R →+* S) (f :
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : NonAssocSemiring.{u3} R] [_inst_5 : NonAssocSemiring.{u4} S] (h : RingHom.{u3, u4} R S _inst_4 _inst_5) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S _inst_4 _inst_5) (fun (_x : RingHom.{u3, u4} R S _inst_4 _inst_5) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S _inst_4 _inst_5) h (Dfinsupp.sum.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_4)) f g)) (Dfinsupp.sum.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_5)) f (fun (a : ι) (b : β a) => coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S _inst_4 _inst_5) (fun (_x : RingHom.{u3, u4} R S _inst_4 _inst_5) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S _inst_4 _inst_5) h (g a b)))
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : NonAssocSemiring.{u2} R] [_inst_5 : NonAssocSemiring.{u1} S] (h : RingHom.{u2, u1} R S _inst_4 _inst_5) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) (Dfinsupp.sum.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S _inst_4 _inst_5 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_4 _inst_5)))) h (Dfinsupp.sum.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) f g)) (Dfinsupp.sum.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S _inst_4 _inst_5 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_4 _inst_5)))) h (g a b)))
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : NonAssocSemiring.{u2} R] [_inst_5 : NonAssocSemiring.{u1} S] (h : RingHom.{u2, u1} R S _inst_4 _inst_5) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) (Dfinsupp.sum.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S _inst_4 _inst_5 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_4 _inst_5)))) h (Dfinsupp.sum.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) f g)) (Dfinsupp.sum.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S _inst_4 _inst_5 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_4 _inst_5)))) h (g a b)))
 Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_sum RingHom.map_dfinsupp_sumₓ'. -/
 @[simp]
 theorem map_dfinsupp_sum [NonAssocSemiring R] [NonAssocSemiring S] (h : R →+* S) (f : Π₀ i, β i)
@@ -3489,7 +3489,7 @@ open Dfinsupp
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : NonAssocSemiring.{u3} R] [_inst_3 : NonAssocSemiring.{u4} S] [_inst_4 : forall (i : ι), AddZeroClass.{u2} (β i)] (h : RingHom.{u3, u4} R S _inst_2 _inst_3) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u2, u3} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_2))))), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S _inst_2 _inst_3) (fun (_x : RingHom.{u3, u4} R S _inst_2 _inst_3) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S _inst_2 _inst_3) h (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2))))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2))))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2)) g) f)) (coeFn.{max (succ u4) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u4)} (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3))))) (fun (_x : AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3))))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> S) (AddMonoidHom.hasCoeToFun.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3))))) (Dfinsupp.sumAddHom.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u2, u3, u4} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_2)))) (AddMonoid.toAddZeroClass.{u4} S (AddMonoidWithOne.toAddMonoid.{u4} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u4} S (NonAssocSemiring.toAddCommMonoidWithOne.{u4} S _inst_3)))) (RingHom.toAddMonoidHom.{u3, u4} R S _inst_2 _inst_3 h) (g i))) f)
 but is expected to have type
-  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : NonAssocSemiring.{u2} R] [_inst_3 : NonAssocSemiring.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (h : RingHom.{u2, u1} R S _inst_2 _inst_3) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, u2} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R _inst_2))))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (a : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) a) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) g) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S _inst_2 _inst_3 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_2 _inst_3)))) h (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) g) f)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u4, u2, u1} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R _inst_2)))) (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S _inst_3)))) (RingHom.toAddMonoidHom.{u2, u1} R S _inst_2 _inst_3 h) (g i))) f)
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : NonAssocSemiring.{u2} R] [_inst_3 : NonAssocSemiring.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (h : RingHom.{u2, u1} R S _inst_2 _inst_3) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, u2} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R _inst_2))))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (a : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) a) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) g) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S _inst_2 _inst_3 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_2 _inst_3)))) h (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) g) f)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u4, u2, u1} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R _inst_2)))) (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S _inst_3)))) (RingHom.toAddMonoidHom.{u2, u1} R S _inst_2 _inst_3 h) (g i))) f)
 Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_sum_add_hom RingHom.map_dfinsupp_sumAddHomₓ'. -/
 @[simp]
 theorem map_dfinsupp_sumAddHom [NonAssocSemiring R] [NonAssocSemiring S] [∀ i, AddZeroClass (β i)]
Diff
@@ -638,7 +638,7 @@ def filterAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [Decidable
 lean 3 declaration is
   forall {ι : Type.{u1}} (γ : Type.{u3}) (β : ι -> Type.{u2}) [_inst_1 : Semiring.{u3} γ] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), Module.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] (p : ι -> Prop) [_inst_4 : DecidablePred.{succ u1} ι p], LinearMap.{u3, u3, max u1 u2, max u1 u2} γ γ _inst_1 _inst_1 (RingHom.id.{u3} γ (Semiring.toNonAssocSemiring.{u3} γ _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_2 i))))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_2 i))))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.module.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.module.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i))
 but is expected to have type
-  forall {ι : Type.{u1}} (γ : Type.{u3}) (β : ι -> Type.{u2}) [_inst_1 : Semiring.{u3} γ] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), Module.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] (p : ι -> Prop) [_inst_4 : DecidablePred.{succ u1} ι p], LinearMap.{u3, u3, max u2 u1, max u2 u1} γ γ _inst_1 _inst_1 (RingHom.id.{u3} γ (Semiring.toNonAssocSemiring.{u3} γ _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.instModuleDfinsuppToZeroToAddMonoidInstAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.instModuleDfinsuppToZeroToAddMonoidInstAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i))
+  forall {ι : Type.{u1}} (γ : Type.{u3}) (β : ι -> Type.{u2}) [_inst_1 : Semiring.{u3} γ] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), Module.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] (p : ι -> Prop) [_inst_4 : DecidablePred.{succ u1} ι p], LinearMap.{u3, u3, max u2 u1, max u2 u1} γ γ _inst_1 _inst_1 (RingHom.id.{u3} γ (Semiring.toNonAssocSemiring.{u3} γ _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.module.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.module.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i))
 Case conversion may be inaccurate. Consider using '#align dfinsupp.filter_linear_map Dfinsupp.filterLinearMapₓ'. -/
 /-- `dfinsupp.filter` as a `linear_map`. -/
 @[simps]
@@ -753,7 +753,7 @@ def subtypeDomainAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [De
 lean 3 declaration is
   forall {ι : Type.{u1}} (γ : Type.{u3}) (β : ι -> Type.{u2}) [_inst_1 : Semiring.{u3} γ] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), Module.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] (p : ι -> Prop) [_inst_4 : DecidablePred.{succ u1} ι p], LinearMap.{u3, u3, max u1 u2, max u1 u2} γ γ _inst_1 _inst_1 (RingHom.id.{u3} γ (Semiring.toNonAssocSemiring.{u3} γ _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (AddMonoid.toAddZeroClass.{u2} (β i) (AddCommMonoid.toAddMonoid.{u2} (β i) (_inst_2 i))))) (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddCommMonoid.toAddMonoid.{u2} (β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))))) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.addCommMonoid.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i))) (Dfinsupp.module.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.module.{u1, u2, u3} (Subtype.{succ u1} ι p) γ (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) _inst_1 (fun (i : Subtype.{succ u1} ι p) => _inst_2 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => _inst_3 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))
 but is expected to have type
-  forall {ι : Type.{u1}} (γ : Type.{u3}) (β : ι -> Type.{u2}) [_inst_1 : Semiring.{u3} γ] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), Module.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] (p : ι -> Prop) [_inst_4 : DecidablePred.{succ u1} ι p], LinearMap.{u3, u3, max u2 u1, max u2 u1} γ γ _inst_1 _inst_1 (RingHom.id.{u3} γ (Semiring.toNonAssocSemiring.{u3} γ _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddMonoid.toZero.{u2} ((fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) i) (_inst_2 (Subtype.val.{succ u1} ι p i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => _inst_2 (Subtype.val.{succ u1} ι p i))) (Dfinsupp.instModuleDfinsuppToZeroToAddMonoidInstAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.instModuleDfinsuppToZeroToAddMonoidInstAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2, u3} (Subtype.{succ u1} ι p) γ (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) _inst_1 (fun (i : Subtype.{succ u1} ι p) => _inst_2 (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => _inst_3 (Subtype.val.{succ u1} ι p i)))
+  forall {ι : Type.{u1}} (γ : Type.{u3}) (β : ι -> Type.{u2}) [_inst_1 : Semiring.{u3} γ] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (β i)] [_inst_3 : forall (i : ι), Module.{u3, u2} γ (β i) _inst_1 (_inst_2 i)] (p : ι -> Prop) [_inst_4 : DecidablePred.{succ u1} ι p], LinearMap.{u3, u3, max u2 u1, max u2 u1} γ γ _inst_1 _inst_1 (RingHom.id.{u3} γ (Semiring.toNonAssocSemiring.{u3} γ _inst_1)) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_2 i)))) (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddMonoid.toZero.{u2} ((fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) i) (_inst_2 (Subtype.val.{succ u1} ι p i))))) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => _inst_2 (Subtype.val.{succ u1} ι p i))) (Dfinsupp.module.{u1, u2, u3} ι γ (fun (i : ι) => β i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.module.{u1, u2, u3} (Subtype.{succ u1} ι p) γ (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) _inst_1 (fun (i : Subtype.{succ u1} ι p) => _inst_2 (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => _inst_3 (Subtype.val.{succ u1} ι p i)))
 Case conversion may be inaccurate. Consider using '#align dfinsupp.subtype_domain_linear_map Dfinsupp.subtypeDomainLinearMapₓ'. -/
 /-- `dfinsupp.subtype_domain` as a `linear_map`. -/
 @[simps]
@@ -1073,7 +1073,7 @@ theorem erase_ne {i i' : ι} {f : Π₀ i, β i} (h : i' ≠ i) : (f.eraseₓ i)
 lean 3 declaration is
   forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), Zero.{u2} (β i)] (x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (i : ι), Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.piecewise.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) (Dfinsupp.single.{u1, u2} ι β (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (fun (_x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) => forall (i : ι), β i) (Dfinsupp.hasCoeToFun.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) x i)) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i x) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.hasSingleton.{u1} ι) i) (fun (i_1 : ι) => Set.decidableSetOf.{u1} ι i_1 (fun (b : ι) => Eq.{succ u1} ι b i) (dec i_1 i))) x
 but is expected to have type
-  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), Zero.{u2} (β i)] (x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (i : ι) [inst._@.Mathlib.Data.Dfinsupp.Basic._hyg.10896 : forall (i' : ι), Decidable (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i' (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))], Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.piecewise.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) ι (fun (a : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) a) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) x i)) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i x) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i) (fun (i : ι) => inst._@.Mathlib.Data.Dfinsupp.Basic._hyg.10896 i)) x
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [dec : DecidableEq.{succ u1} ι] [_inst_1 : forall (i : ι), Zero.{u2} (β i)] (x : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (i : ι) [inst._@.Mathlib.Data.Dfinsupp.Basic._hyg.10897 : forall (i' : ι), Decidable (Membership.mem.{u1, u1} ι (Set.{u1} ι) (Set.instMembershipSet.{u1} ι) i' (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i))], Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.piecewise.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i) (Dfinsupp.single.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) ι (fun (a : ι) => (fun (i : ι) => (fun (i : ι) => β i) i) a) (Dfinsupp.funLike.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_1 i) i)) x i)) (Dfinsupp.erase.{u1, u2} ι (fun (i : ι) => β i) (fun (a : ι) (b : ι) => dec a b) (fun (i : ι) => _inst_1 i) i x) (Singleton.singleton.{u1, u1} ι (Set.{u1} ι) (Set.instSingletonSet.{u1} ι) i) (fun (i : ι) => inst._@.Mathlib.Data.Dfinsupp.Basic._hyg.10897 i)) x
 Case conversion may be inaccurate. Consider using '#align dfinsupp.piecewise_single_erase Dfinsupp.piecewise_single_eraseₓ'. -/
 theorem piecewise_single_erase (x : Π₀ i, β i) (i : ι) :
     (single i (x i)).piecewise (x.eraseₓ i) {i} = x :=
Diff
@@ -1673,7 +1673,7 @@ instance decidableZero : DecidablePred (Eq (0 : Π₀ i, β i)) := fun f =>
 #align dfinsupp.decidable_zero Dfinsupp.decidableZero
 -/
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:628:2: warning: expanding binder collection (i «expr ∉ » s) -/
+/- ./././Mathport/Syntax/Translate/Basic.lean:635:2: warning: expanding binder collection (i «expr ∉ » s) -/
 #print Dfinsupp.support_subset_iff /-
 theorem support_subset_iff {s : Set ι} {f : Π₀ i, β i} :
     ↑f.support ⊆ s ↔ ∀ (i) (_ : i ∉ s), f i = 0 := by
Diff
@@ -3158,22 +3158,30 @@ theorem prod_subtypeDomain_index [∀ i, Zero (β i)] [∀ (i) (x : β i), Decid
 
 omit dec
 
-#print Dfinsupp.subtypeDomain_sum /-
+/- warning: dfinsupp.subtype_domain_sum -> Dfinsupp.subtypeDomain_sum is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {s : Finset.{u3} γ} {h : γ -> (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))))} {p : ι -> Prop} [_inst_2 : DecidablePred.{succ u1} ι p], Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) p (fun (a : ι) => _inst_2 a) (Finset.sum.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))) γ (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) s (fun (c : γ) => h c))) (Finset.sum.{max u1 u2, u3} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))))) γ (Dfinsupp.addCommMonoid.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => _inst_1 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i))) s (fun (c : γ) => Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) p (fun (a : ι) => _inst_2 a) (h c)))
+but is expected to have type
+  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} [_inst_1 : forall (i : ι), AddCommMonoid.{u2} (β i)] {s : Finset.{u3} γ} {h : γ -> (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))))} {p : ι -> Prop} [_inst_2 : DecidablePred.{succ u1} ι p], Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_1 (Subtype.val.{succ u1} ι p i))))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) p (fun (a : ι) => _inst_2 a) (Finset.sum.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i)))) γ (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) s (fun (c : γ) => h c))) (Finset.sum.{max u1 u2, u3} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_1 (Subtype.val.{succ u1} ι p i))))) γ (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => _inst_1 (Subtype.val.{succ u1} ι p i))) s (fun (c : γ) => Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) p (fun (a : ι) => _inst_2 a) (h c)))
+Case conversion may be inaccurate. Consider using '#align dfinsupp.subtype_domain_sum Dfinsupp.subtypeDomain_sumₓ'. -/
 theorem subtypeDomain_sum [∀ i, AddCommMonoid (β i)] {s : Finset γ} {h : γ → Π₀ i, β i}
     {p : ι → Prop} [DecidablePred p] :
     (∑ c in s, h c).subtypeDomain p = ∑ c in s, (h c).subtypeDomain p :=
   (subtypeDomainAddMonoidHom β p).map_sum _ s
 #align dfinsupp.subtype_domain_sum Dfinsupp.subtypeDomain_sum
--/
 
-#print Dfinsupp.subtypeDomain_finsupp_sum /-
+/- warning: dfinsupp.subtype_domain_finsupp_sum -> Dfinsupp.subtypeDomain_finsupp_sum is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} {δ : γ -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} γ] [_inst_2 : forall (c : γ), Zero.{u4} (δ c)] [_inst_3 : forall (c : γ) (x : δ c), Decidable (Ne.{succ u4} (δ c) x (OfNat.ofNat.{u4} (δ c) 0 (OfNat.mk.{u4} (δ c) 0 (Zero.zero.{u4} (δ c) (_inst_2 c)))))] [_inst_4 : forall (i : ι), AddCommMonoid.{u2} (β i)] {p : ι -> Prop} [_inst_5 : DecidablePred.{succ u1} ι p] {s : Dfinsupp.{u3, u4} γ (fun (c : γ) => δ c) (fun (i : γ) => _inst_2 i)} {h : forall (c : γ), (δ c) -> (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_4 i)))))}, Eq.{succ (max u1 u2)} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_4 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_4 i)))) p (fun (a : ι) => _inst_5 a) (Dfinsupp.sum.{u3, u4, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))))) (fun (c : γ) => δ c) (fun (a : γ) (b : γ) => _inst_1 a b) (fun (i : γ) => _inst_2 i) (fun (i : γ) (x : δ i) => _inst_3 i x) (Dfinsupp.addCommMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) s h)) (Dfinsupp.sum.{u3, u4, max u1 u2} γ (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (_inst_4 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)))))) (fun (c : γ) => δ c) (fun (a : γ) (b : γ) => _inst_1 a b) (fun (i : γ) => _inst_2 i) (fun (i : γ) (x : δ i) => _inst_3 i x) (Dfinsupp.addCommMonoid.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i)) (fun (i : Subtype.{succ u1} ι p) => _inst_4 ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Subtype.{succ u1} ι p) ι (HasLiftT.mk.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (CoeTCₓ.coe.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeBase.{succ u1, succ u1} (Subtype.{succ u1} ι p) ι (coeSubtype.{succ u1} ι (fun (x : ι) => p x))))) i))) s (fun (c : γ) (d : δ c) => Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_4 i)))) p (fun (a : ι) => _inst_5 a) (h c d)))
+but is expected to have type
+  forall {ι : Type.{u1}} {γ : Type.{u3}} {β : ι -> Type.{u2}} {δ : γ -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} γ] [_inst_2 : forall (c : γ), Zero.{u4} (δ c)] [_inst_3 : forall (c : γ) (x : δ c), Decidable (Ne.{succ u4} (δ c) x (OfNat.ofNat.{u4} (δ c) 0 (Zero.toOfNat0.{u4} (δ c) (_inst_2 c))))] [_inst_4 : forall (i : ι), AddCommMonoid.{u2} (β i)] {p : ι -> Prop} [_inst_5 : DecidablePred.{succ u1} ι p] {s : Dfinsupp.{u3, u4} γ (fun (c : γ) => δ c) (fun (i : γ) => _inst_2 i)} {h : forall (c : γ), (δ c) -> (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))))}, Eq.{max (succ u1) (succ u2)} (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_4 (Subtype.val.{succ u1} ι p i))))) (Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) p (fun (a : ι) => _inst_5 a) (Dfinsupp.sum.{u3, u4, max u1 u2} γ (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_4 i)))) (fun (c : γ) => δ c) (fun (a : γ) (b : γ) => _inst_1 a b) (fun (i : γ) => _inst_2 i) (fun (i : γ) (x : δ i) => _inst_3 i x) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) s h)) (Dfinsupp.sum.{u3, u4, max u1 u2} γ (Dfinsupp.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) (Subtype.val.{succ u1} ι p i)) (_inst_4 (Subtype.val.{succ u1} ι p i))))) (fun (c : γ) => δ c) (fun (a : γ) (b : γ) => _inst_1 a b) (fun (i : γ) => _inst_2 i) (fun (i : γ) (x : δ i) => _inst_3 i x) (Dfinsupp.instAddCommMonoidDfinsuppToZeroToAddMonoid.{u1, u2} (Subtype.{succ u1} ι p) (fun (i : Subtype.{succ u1} ι p) => β (Subtype.val.{succ u1} ι p i)) (fun (i : Subtype.{succ u1} ι p) => _inst_4 (Subtype.val.{succ u1} ι p i))) s (fun (c : γ) (d : δ c) => Dfinsupp.subtypeDomain.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddMonoid.toZero.{u2} ((fun (i : ι) => β i) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) p (fun (a : ι) => _inst_5 a) (h c d)))
+Case conversion may be inaccurate. Consider using '#align dfinsupp.subtype_domain_finsupp_sum Dfinsupp.subtypeDomain_finsupp_sumₓ'. -/
 theorem subtypeDomain_finsupp_sum {δ : γ → Type x} [DecidableEq γ] [∀ c, Zero (δ c)]
     [∀ (c) (x : δ c), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)] {p : ι → Prop} [DecidablePred p]
     {s : Π₀ c, δ c} {h : ∀ c, δ c → Π₀ i, β i} :
     (s.Sum h).subtypeDomain p = s.Sum fun c d => (h c d).subtypeDomain p :=
   subtypeDomain_sum
 #align dfinsupp.subtype_domain_finsupp_sum Dfinsupp.subtypeDomain_finsupp_sum
--/
 
 end ProdAndSum
 
@@ -3189,7 +3197,12 @@ omit dec
 
 variable [∀ i, AddZeroClass (β i)] [∀ i, AddZeroClass (β₁ i)] [∀ i, AddZeroClass (β₂ i)]
 
-#print Dfinsupp.mapRange_add /-
+/- warning: dfinsupp.map_range_add -> Dfinsupp.mapRange_add is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} {β₂ : ι -> Type.{u3}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u3} (β₂ i)] (f : forall (i : ι), (β₁ i) -> (β₂ i)) (hf : forall (i : ι), Eq.{succ u3} (β₂ i) (f i (OfNat.ofNat.{u2} (β₁ i) 0 (OfNat.mk.{u2} (β₁ i) 0 (Zero.zero.{u2} (β₁ i) (AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i)))))) (OfNat.ofNat.{u3} (β₂ i) 0 (OfNat.mk.{u3} (β₂ i) 0 (Zero.zero.{u3} (β₂ i) (AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i)))))), (forall (i : ι) (x : β₁ i) (y : β₁ i), Eq.{succ u3} (β₂ i) (f i (HAdd.hAdd.{u2, u2, u2} (β₁ i) (β₁ i) (β₁ i) (instHAdd.{u2} (β₁ i) (AddZeroClass.toHasAdd.{u2} (β₁ i) (_inst_2 i))) x y)) (HAdd.hAdd.{u3, u3, u3} (β₂ i) (β₂ i) (β₂ i) (instHAdd.{u3} (β₂ i) (AddZeroClass.toHasAdd.{u3} (β₂ i) (_inst_3 i))) (f i x) (f i y))) -> (forall (g₁ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (g₂ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))), Eq.{succ (max u1 u3)} (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.mapRange.{u1, u2, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i)) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i)) f hf (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i))) g₁ g₂)) (HAdd.hAdd.{max u1 u3, max u1 u3, max u1 u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i))) (instHAdd.{max u1 u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.hasAdd.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i))) (Dfinsupp.mapRange.{u1, u2, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i)) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i)) f hf g₁) (Dfinsupp.mapRange.{u1, u2, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i)) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i)) f hf g₂)))
+but is expected to have type
+  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} {β₂ : ι -> Type.{u3}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u3} (β₂ i)] (f : forall (i : ι), (β₁ i) -> (β₂ i)) (hf : forall (i : ι), Eq.{succ u3} (β₂ i) (f i (OfNat.ofNat.{u2} (β₁ i) 0 (Zero.toOfNat0.{u2} (β₁ i) (AddZeroClass.toZero.{u2} (β₁ i) (_inst_2 i))))) (OfNat.ofNat.{u3} (β₂ i) 0 (Zero.toOfNat0.{u3} (β₂ i) (AddZeroClass.toZero.{u3} (β₂ i) (_inst_3 i))))), (forall (i : ι) (x : β₁ i) (y : β₁ i), Eq.{succ u3} (β₂ i) (f i (HAdd.hAdd.{u2, u2, u2} (β₁ i) (β₁ i) (β₁ i) (instHAdd.{u2} (β₁ i) (AddZeroClass.toAdd.{u2} (β₁ i) (_inst_2 i))) x y)) (HAdd.hAdd.{u3, u3, u3} (β₂ i) (β₂ i) (β₂ i) (instHAdd.{u3} (β₂ i) (AddZeroClass.toAdd.{u3} (β₂ i) (_inst_3 i))) (f i x) (f i y))) -> (forall (g₁ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (g₂ : Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))), Eq.{max (succ u1) (succ u3)} (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.mapRange.{u1, u2, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β₁ i) (_inst_2 i)) (fun (i : ι) => AddZeroClass.toZero.{u3} (β₂ i) (_inst_3 i)) f hf (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (instHAdd.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i))) g₁ g₂)) (HAdd.hAdd.{max u1 u3, max u1 u3, max u1 u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u3} (β₂ i) (_inst_3 i))) (instHAdd.{max u1 u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i))) (Dfinsupp.mapRange.{u1, u2, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β₁ i) (_inst_2 i)) (fun (i : ι) => AddZeroClass.toZero.{u3} (β₂ i) (_inst_3 i)) f hf g₁) (Dfinsupp.mapRange.{u1, u2, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u2} (β₁ i) (_inst_2 i)) (fun (i : ι) => AddZeroClass.toZero.{u3} (β₂ i) (_inst_3 i)) f hf g₂)))
+Case conversion may be inaccurate. Consider using '#align dfinsupp.map_range_add Dfinsupp.mapRange_addₓ'. -/
 theorem mapRange_add (f : ∀ i, β₁ i → β₂ i) (hf : ∀ i, f i 0 = 0)
     (hf' : ∀ i x y, f i (x + y) = f i x + f i y) (g₁ g₂ : Π₀ i, β₁ i) :
     mapRange f hf (g₁ + g₂) = mapRange f hf g₁ + mapRange f hf g₂ :=
@@ -3197,9 +3210,13 @@ theorem mapRange_add (f : ∀ i, β₁ i → β₂ i) (hf : ∀ i, f i 0 = 0)
   ext
   simp only [map_range_apply f, coe_add, Pi.add_apply, hf']
 #align dfinsupp.map_range_add Dfinsupp.mapRange_add
--/
 
-#print Dfinsupp.mapRange.addMonoidHom /-
+/- warning: dfinsupp.map_range.add_monoid_hom -> Dfinsupp.mapRange.addMonoidHom is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} {β₂ : ι -> Type.{u3}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u3} (β₂ i)], (forall (i : ι), AddMonoidHom.{u2, u3} (β₁ i) (β₂ i) (_inst_2 i) (_inst_3 i)) -> (AddMonoidHom.{max u1 u2, max u1 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.addZeroClass.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)))
+but is expected to have type
+  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} {β₂ : ι -> Type.{u3}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u3} (β₂ i)], (forall (i : ι), AddMonoidHom.{u2, u3} (β₁ i) (β₂ i) (_inst_2 i) (_inst_3 i)) -> (AddMonoidHom.{max u2 u1, max u3 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.addZeroClass.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)))
+Case conversion may be inaccurate. Consider using '#align dfinsupp.map_range.add_monoid_hom Dfinsupp.mapRange.addMonoidHomₓ'. -/
 /-- `dfinsupp.map_range` as an `add_monoid_hom`. -/
 @[simps apply]
 def mapRange.addMonoidHom (f : ∀ i, β₁ i →+ β₂ i) : (Π₀ i, β₁ i) →+ Π₀ i, β₂ i
@@ -3208,25 +3225,37 @@ def mapRange.addMonoidHom (f : ∀ i, β₁ i →+ β₂ i) : (Π₀ i, β₁ i)
   map_zero' := mapRange_zero _ _
   map_add' := mapRange_add _ _ fun i => (f i).map_add
 #align dfinsupp.map_range.add_monoid_hom Dfinsupp.mapRange.addMonoidHom
--/
 
-#print Dfinsupp.mapRange.addMonoidHom_id /-
+/- warning: dfinsupp.map_range.add_monoid_hom_id -> Dfinsupp.mapRange.addMonoidHom_id is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β₂ : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddZeroClass.{u2} (β₂ i)], Eq.{succ (max u1 u2)} (AddMonoidHom.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₂ i) (_inst_3 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₂ i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i))) (Dfinsupp.mapRange.addMonoidHom.{u1, u2, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => AddMonoidHom.id.{u2} (β₂ i) (_inst_3 i))) (AddMonoidHom.id.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₂ i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)))
+but is expected to have type
+  forall {ι : Type.{u1}} {β₂ : ι -> Type.{u2}} [_inst_3 : forall (i : ι), AddZeroClass.{u2} (β₂ i)], Eq.{max (succ u1) (succ u2)} (AddMonoidHom.{max u2 u1, max u2 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i))) (Dfinsupp.mapRange.addMonoidHom.{u1, u2, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => AddMonoidHom.id.{u2} (β₂ i) (_inst_3 i))) (AddMonoidHom.id.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)))
+Case conversion may be inaccurate. Consider using '#align dfinsupp.map_range.add_monoid_hom_id Dfinsupp.mapRange.addMonoidHom_idₓ'. -/
 @[simp]
 theorem mapRange.addMonoidHom_id :
     (mapRange.addMonoidHom fun i => AddMonoidHom.id (β₂ i)) = AddMonoidHom.id _ :=
   AddMonoidHom.ext mapRange_id
 #align dfinsupp.map_range.add_monoid_hom_id Dfinsupp.mapRange.addMonoidHom_id
--/
 
-#print Dfinsupp.mapRange.addMonoidHom_comp /-
+/- warning: dfinsupp.map_range.add_monoid_hom_comp -> Dfinsupp.mapRange.addMonoidHom_comp is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} {β₁ : ι -> Type.{u3}} {β₂ : ι -> Type.{u4}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : forall (i : ι), AddZeroClass.{u3} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u4} (β₂ i)] (f : forall (i : ι), AddMonoidHom.{u3, u4} (β₁ i) (β₂ i) (_inst_2 i) (_inst_3 i)) (f₂ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) (β₁ i) (_inst_1 i) (_inst_2 i)), Eq.{max (succ (max u1 u4)) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, max u1 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u4} (β₂ i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.addZeroClass.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i))) (Dfinsupp.mapRange.addMonoidHom.{u1, u2, u4} ι (fun (i : ι) => β i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_1 i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => AddMonoidHom.comp.{u2, u3, u4} (β i) (β₁ i) (β₂ i) (_inst_1 i) (_inst_2 i) (_inst_3 i) (f i) (f₂ i))) (AddMonoidHom.comp.{max u1 u2, max u1 u3, max u1 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₁ i) (_inst_2 i))) (Dfinsupp.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u4} (β₂ i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.addZeroClass.{u1, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.addZeroClass.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.mapRange.addMonoidHom.{u1, u3, u4} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) f) (Dfinsupp.mapRange.addMonoidHom.{u1, u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_1 i) (fun (i : ι) => _inst_2 i) f₂))
+but is expected to have type
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} {β₁ : ι -> Type.{u3}} {β₂ : ι -> Type.{u4}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : forall (i : ι), AddZeroClass.{u3} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u4} (β₂ i)] (f : forall (i : ι), AddMonoidHom.{u3, u4} (β₁ i) (β₂ i) (_inst_2 i) (_inst_3 i)) (f₂ : forall (i : ι), AddMonoidHom.{u2, u3} (β i) (β₁ i) (_inst_1 i) (_inst_2 i)), Eq.{max (max (succ u1) (succ u2)) (succ u4)} (AddMonoidHom.{max u2 u1, max u4 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.addZeroClass.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i))) (Dfinsupp.mapRange.addMonoidHom.{u1, u2, u4} ι (fun (i : ι) => β i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_1 i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => AddMonoidHom.comp.{u2, u3, u4} (β i) (β₁ i) (β₂ i) (_inst_1 i) (_inst_2 i) (_inst_3 i) (f i) (f₂ i))) (AddMonoidHom.comp.{max u2 u1, max u1 u3, max u1 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.addZeroClass.{u1, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.addZeroClass.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.mapRange.addMonoidHom.{u1, u3, u4} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) f) (Dfinsupp.mapRange.addMonoidHom.{u1, u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_1 i) (fun (i : ι) => _inst_2 i) f₂))
+Case conversion may be inaccurate. Consider using '#align dfinsupp.map_range.add_monoid_hom_comp Dfinsupp.mapRange.addMonoidHom_compₓ'. -/
 theorem mapRange.addMonoidHom_comp (f : ∀ i, β₁ i →+ β₂ i) (f₂ : ∀ i, β i →+ β₁ i) :
     (mapRange.addMonoidHom fun i => (f i).comp (f₂ i)) =
       (mapRange.addMonoidHom f).comp (mapRange.addMonoidHom f₂) :=
   AddMonoidHom.ext <| mapRange_comp (fun i x => f i x) (fun i x => f₂ i x) _ _ _
 #align dfinsupp.map_range.add_monoid_hom_comp Dfinsupp.mapRange.addMonoidHom_comp
--/
 
-#print Dfinsupp.mapRange.addEquiv /-
+/- warning: dfinsupp.map_range.add_equiv -> Dfinsupp.mapRange.addEquiv is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} {β₂ : ι -> Type.{u3}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u3} (β₂ i)], (forall (i : ι), AddEquiv.{u2, u3} (β₁ i) (β₂ i) (AddZeroClass.toHasAdd.{u2} (β₁ i) (_inst_2 i)) (AddZeroClass.toHasAdd.{u3} (β₂ i) (_inst_3 i))) -> (AddEquiv.{max u1 u2, max u1 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.hasAdd.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)))
+but is expected to have type
+  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} {β₂ : ι -> Type.{u3}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u3} (β₂ i)], (forall (i : ι), AddEquiv.{u2, u3} (β₁ i) (β₂ i) (AddZeroClass.toAdd.{u2} (β₁ i) (_inst_2 i)) (AddZeroClass.toAdd.{u3} (β₂ i) (_inst_3 i))) -> (AddEquiv.{max u2 u1, max u3 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.instAddDfinsuppToZero.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)))
+Case conversion may be inaccurate. Consider using '#align dfinsupp.map_range.add_equiv Dfinsupp.mapRange.addEquivₓ'. -/
 /-- `dfinsupp.map_range.add_monoid_hom` as an `add_equiv`. -/
 @[simps apply]
 def mapRange.addEquiv (e : ∀ i, β₁ i ≃+ β₂ i) : (Π₀ i, β₁ i) ≃+ Π₀ i, β₂ i :=
@@ -3244,31 +3273,42 @@ def mapRange.addEquiv (e : ∀ i, β₁ i ≃+ β₂ i) : (Π₀ i, β₁ i) ≃
         · simp_rw [AddEquiv.self_comp_symm]
           simp }
 #align dfinsupp.map_range.add_equiv Dfinsupp.mapRange.addEquiv
--/
 
-#print Dfinsupp.mapRange.addEquiv_refl /-
+/- warning: dfinsupp.map_range.add_equiv_refl -> Dfinsupp.mapRange.addEquiv_refl is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)], Eq.{succ (max u1 u2)} (AddEquiv.{max u1 u2, max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i))) (Dfinsupp.mapRange.addEquiv.{u1, u2, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => AddEquiv.refl.{u2} (β₁ i) (AddZeroClass.toHasAdd.{u2} (β₁ i) (_inst_2 i)))) (AddEquiv.refl.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)))
+but is expected to have type
+  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)], Eq.{max (succ u1) (succ u2)} (AddEquiv.{max u2 u1, max u2 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i))) (Dfinsupp.mapRange.addEquiv.{u1, u2, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => AddEquiv.refl.{u2} (β₁ i) (AddZeroClass.toAdd.{u2} (β₁ i) (_inst_2 i)))) (AddEquiv.refl.{max u1 u2} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)))
+Case conversion may be inaccurate. Consider using '#align dfinsupp.map_range.add_equiv_refl Dfinsupp.mapRange.addEquiv_reflₓ'. -/
 @[simp]
 theorem mapRange.addEquiv_refl :
     (mapRange.addEquiv fun i => AddEquiv.refl (β₁ i)) = AddEquiv.refl _ :=
   AddEquiv.ext mapRange_id
 #align dfinsupp.map_range.add_equiv_refl Dfinsupp.mapRange.addEquiv_refl
--/
 
-#print Dfinsupp.mapRange.addEquiv_trans /-
+/- warning: dfinsupp.map_range.add_equiv_trans -> Dfinsupp.mapRange.addEquiv_trans is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} {β₁ : ι -> Type.{u3}} {β₂ : ι -> Type.{u4}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : forall (i : ι), AddZeroClass.{u3} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u4} (β₂ i)] (f : forall (i : ι), AddEquiv.{u2, u3} (β i) (β₁ i) (AddZeroClass.toHasAdd.{u2} (β i) (_inst_1 i)) (AddZeroClass.toHasAdd.{u3} (β₁ i) (_inst_2 i))) (f₂ : forall (i : ι), AddEquiv.{u3, u4} (β₁ i) (β₂ i) (AddZeroClass.toHasAdd.{u3} (β₁ i) (_inst_2 i)) (AddZeroClass.toHasAdd.{u4} (β₂ i) (_inst_3 i))), Eq.{max (succ (max u1 u2)) (succ (max u1 u4))} (AddEquiv.{max u1 u2, max u1 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u4} (β₂ i) (_inst_3 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.hasAdd.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i))) (Dfinsupp.mapRange.addEquiv.{u1, u2, u4} ι (fun (i : ι) => β i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_1 i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => AddEquiv.trans.{u2, u3, u4} (β i) (β₁ i) (β₂ i) (AddZeroClass.toHasAdd.{u2} (β i) (_inst_1 i)) (AddZeroClass.toHasAdd.{u3} (β₁ i) (_inst_2 i)) (AddZeroClass.toHasAdd.{u4} (β₂ i) (_inst_3 i)) (f i) (f₂ i))) (AddEquiv.trans.{max u1 u2, max u1 u3, max u1 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β i) (_inst_1 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₁ i) (_inst_2 i))) (Dfinsupp.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u4} (β₂ i) (_inst_3 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.hasAdd.{u1, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.hasAdd.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.mapRange.addEquiv.{u1, u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_1 i) (fun (i : ι) => _inst_2 i) f) (Dfinsupp.mapRange.addEquiv.{u1, u3, u4} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) f₂))
+but is expected to have type
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} {β₁ : ι -> Type.{u3}} {β₂ : ι -> Type.{u4}} [_inst_1 : forall (i : ι), AddZeroClass.{u2} (β i)] [_inst_2 : forall (i : ι), AddZeroClass.{u3} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u4} (β₂ i)] (f : forall (i : ι), AddEquiv.{u2, u3} (β i) (β₁ i) (AddZeroClass.toAdd.{u2} (β i) (_inst_1 i)) (AddZeroClass.toAdd.{u3} (β₁ i) (_inst_2 i))) (f₂ : forall (i : ι), AddEquiv.{u3, u4} (β₁ i) (β₂ i) (AddZeroClass.toAdd.{u3} (β₁ i) (_inst_2 i)) (AddZeroClass.toAdd.{u4} (β₂ i) (_inst_3 i))), Eq.{max (max (succ u1) (succ u2)) (succ u4)} (AddEquiv.{max u2 u1, max u4 u1} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.instAddDfinsuppToZero.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i))) (Dfinsupp.mapRange.addEquiv.{u1, u2, u4} ι (fun (i : ι) => β i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_1 i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => AddEquiv.trans.{u2, u3, u4} (β i) (β₁ i) (β₂ i) (AddZeroClass.toAdd.{u2} (β i) (_inst_1 i)) (AddZeroClass.toAdd.{u3} (β₁ i) (_inst_2 i)) (AddZeroClass.toAdd.{u4} (β₂ i) (_inst_3 i)) (f i) (f₂ i))) (AddEquiv.trans.{max u1 u2, max u1 u3, max u1 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β i) i) (_inst_1 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_1 i)) (Dfinsupp.instAddDfinsuppToZero.{u1, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.instAddDfinsuppToZero.{u1, u4} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.mapRange.addEquiv.{u1, u2, u3} ι (fun (i : ι) => β i) (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_1 i) (fun (i : ι) => _inst_2 i) f) (Dfinsupp.mapRange.addEquiv.{u1, u3, u4} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) f₂))
+Case conversion may be inaccurate. Consider using '#align dfinsupp.map_range.add_equiv_trans Dfinsupp.mapRange.addEquiv_transₓ'. -/
 theorem mapRange.addEquiv_trans (f : ∀ i, β i ≃+ β₁ i) (f₂ : ∀ i, β₁ i ≃+ β₂ i) :
     (mapRange.addEquiv fun i => (f i).trans (f₂ i)) =
       (mapRange.addEquiv f).trans (mapRange.addEquiv f₂) :=
   AddEquiv.ext <| mapRange_comp (fun i x => f₂ i x) (fun i x => f i x) _ _ _
 #align dfinsupp.map_range.add_equiv_trans Dfinsupp.mapRange.addEquiv_trans
--/
 
-#print Dfinsupp.mapRange.addEquiv_symm /-
+/- warning: dfinsupp.map_range.add_equiv_symm -> Dfinsupp.mapRange.addEquiv_symm is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} {β₂ : ι -> Type.{u3}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u3} (β₂ i)] (e : forall (i : ι), AddEquiv.{u2, u3} (β₁ i) (β₂ i) (AddZeroClass.toHasAdd.{u2} (β₁ i) (_inst_2 i)) (AddZeroClass.toHasAdd.{u3} (β₂ i) (_inst_3 i))), Eq.{max (succ (max u1 u3)) (succ (max u1 u2))} (AddEquiv.{max u1 u3, max u1 u2} (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.hasAdd.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i))) (AddEquiv.symm.{max u1 u2, max u1 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} (β₁ i) (_inst_2 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} (β₂ i) (_inst_3 i))) (Dfinsupp.hasAdd.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.hasAdd.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.mapRange.addEquiv.{u1, u2, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) e)) (Dfinsupp.mapRange.addEquiv.{u1, u3, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => AddEquiv.symm.{u2, u3} (β₁ i) (β₂ i) (AddZeroClass.toHasAdd.{u2} (β₁ i) (_inst_2 i)) (AddZeroClass.toHasAdd.{u3} (β₂ i) (_inst_3 i)) (e i)))
+but is expected to have type
+  forall {ι : Type.{u1}} {β₁ : ι -> Type.{u2}} {β₂ : ι -> Type.{u3}} [_inst_2 : forall (i : ι), AddZeroClass.{u2} (β₁ i)] [_inst_3 : forall (i : ι), AddZeroClass.{u3} (β₂ i)] (e : forall (i : ι), AddEquiv.{u2, u3} (β₁ i) (β₂ i) (AddZeroClass.toAdd.{u2} (β₁ i) (_inst_2 i)) (AddZeroClass.toAdd.{u3} (β₂ i) (_inst_3 i))), Eq.{max (max (succ u1) (succ u2)) (succ u3)} (AddEquiv.{max u1 u3, max u1 u2} (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i))) (AddEquiv.symm.{max u1 u2, max u1 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => AddZeroClass.toZero.{u2} ((fun (i : ι) => β₁ i) i) (_inst_2 i))) (Dfinsupp.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => β₂ i) i) (_inst_3 i))) (Dfinsupp.instAddDfinsuppToZero.{u1, u2} ι (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_2 i)) (Dfinsupp.instAddDfinsuppToZero.{u1, u3} ι (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_3 i)) (Dfinsupp.mapRange.addEquiv.{u1, u2, u3} ι (fun (i : ι) => β₁ i) (fun (i : ι) => β₂ i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) e)) (Dfinsupp.mapRange.addEquiv.{u1, u3, u2} ι (fun (i : ι) => β₂ i) (fun (i : ι) => β₁ i) (fun (i : ι) => _inst_3 i) (fun (i : ι) => _inst_2 i) (fun (i : ι) => AddEquiv.symm.{u2, u3} (β₁ i) (β₂ i) (AddZeroClass.toAdd.{u2} (β₁ i) (_inst_2 i)) (AddZeroClass.toAdd.{u3} (β₂ i) (_inst_3 i)) (e i)))
+Case conversion may be inaccurate. Consider using '#align dfinsupp.map_range.add_equiv_symm Dfinsupp.mapRange.addEquiv_symmₓ'. -/
 @[simp]
 theorem mapRange.addEquiv_symm (e : ∀ i, β₁ i ≃+ β₂ i) :
     (mapRange.addEquiv e).symm = mapRange.addEquiv fun i => (e i).symm :=
   rfl
 #align dfinsupp.map_range.add_equiv_symm Dfinsupp.mapRange.addEquiv_symm
--/
 
 end MapRange
 
@@ -3296,32 +3336,44 @@ variable {R S : Type _}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
-#print MonoidHom.map_dfinsupp_prod /-
+/- warning: monoid_hom.map_dfinsupp_prod -> MonoidHom.map_dfinsupp_prod is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : CommMonoid.{u3} R] [_inst_5 : CommMonoid.{u4} S] (h : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u4} S (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) h (Dfinsupp.prod.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (Dfinsupp.prod.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4)) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) h (g a b)))
+but is expected to have type
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : CommMonoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (h : MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) h (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (Dfinsupp.prod.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4)) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) h (g a b)))
+Case conversion may be inaccurate. Consider using '#align monoid_hom.map_dfinsupp_prod MonoidHom.map_dfinsupp_prodₓ'. -/
 @[simp, to_additive]
 theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R →* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Prod g) = f.Prod fun a b => h (g a b) :=
   h.map_prod _ _
 #align monoid_hom.map_dfinsupp_prod MonoidHom.map_dfinsupp_prod
 #align add_monoid_hom.map_dfinsupp_sum AddMonoidHom.map_dfinsupp_sum
--/
 
-#print MonoidHom.coe_dfinsupp_prod /-
+/- warning: monoid_hom.coe_dfinsupp_prod -> MonoidHom.coe_dfinsupp_prod is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : Monoid.{u3} R] [_inst_5 : CommMonoid.{u4} S] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))), Eq.{succ (max u3 u4)} (R -> S) (coeFn.{succ (max u4 u3), succ (max u3 u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (Dfinsupp.prod.{u1, u2, max u4 u3} ι (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) _inst_5) f g)) (Dfinsupp.prod.{u1, u2, max u3 u4} ι (R -> S) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (Pi.commMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_5)) f (fun (a : ι) (b : β a) => coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (g a b)))
+but is expected to have type
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : Monoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) _inst_5) f g)) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) ᾰ) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (Pi.commMonoid.{u2, u1} R (fun (ᾰ : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) ᾰ) (fun (i : R) => _inst_5)) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (g a b)))
+Case conversion may be inaccurate. Consider using '#align monoid_hom.coe_dfinsupp_prod MonoidHom.coe_dfinsupp_prodₓ'. -/
 @[to_additive]
 theorem coe_dfinsupp_prod [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀ i, β i → R →* S) :
     ⇑(f.Prod g) = f.Prod fun a b => g a b :=
   coe_finset_prod _ _
 #align monoid_hom.coe_dfinsupp_prod MonoidHom.coe_dfinsupp_prod
 #align add_monoid_hom.coe_dfinsupp_sum AddMonoidHom.coe_dfinsupp_sum
--/
 
-#print MonoidHom.dfinsupp_prod_apply /-
+/- warning: monoid_hom.dfinsupp_prod_apply -> MonoidHom.dfinsupp_prod_apply is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : Monoid.{u3} R] [_inst_5 : CommMonoid.{u4} S] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) (r : R), Eq.{succ u4} S (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (Dfinsupp.prod.{u1, u2, max u4 u3} ι (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) _inst_5) f g) r) (Dfinsupp.prod.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (fun (_x : MonoidHom.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) => R -> S) (MonoidHom.hasCoeToFun.{u3, u4} R S (Monoid.toMulOneClass.{u3} R _inst_4) (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5))) (g a b) r))
+but is expected to have type
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : Monoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) (r : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) r) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (Dfinsupp.prod.{u3, u4, max u2 u1} ι (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (MonoidHom.commMonoid.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) _inst_5) f g) r) (Dfinsupp.prod.{u3, u4, u1} ι ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) r) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R _inst_4)) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MonoidHomClass.toMulHomClass.{max u2 u1, u2, u1} (MonoidHom.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)) (MonoidHom.monoidHomClass.{u2, u1} R S (Monoid.toMulOneClass.{u2} R _inst_4) (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))) (g a b) r))
+Case conversion may be inaccurate. Consider using '#align monoid_hom.dfinsupp_prod_apply MonoidHom.dfinsupp_prod_applyₓ'. -/
 @[simp, to_additive]
 theorem dfinsupp_prod_apply [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀ i, β i → R →* S)
     (r : R) : (f.Prod g) r = f.Prod fun a b => (g a b) r :=
   finset_prod_apply _ _ _
 #align monoid_hom.dfinsupp_prod_apply MonoidHom.dfinsupp_prod_apply
 #align add_monoid_hom.dfinsupp_sum_apply AddMonoidHom.dfinsupp_sum_apply
--/
 
 end MonoidHom
 
@@ -3331,21 +3383,29 @@ variable {R S : Type _}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
-#print RingHom.map_dfinsupp_prod /-
+/- warning: ring_hom.map_dfinsupp_prod -> RingHom.map_dfinsupp_prod is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : CommSemiring.{u3} R] [_inst_5 : CommSemiring.{u4} S] (h : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) (fun (_x : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) h (Dfinsupp.prod.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u3} R _inst_4) f g)) (Dfinsupp.prod.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u4} S _inst_5) f (fun (a : ι) (b : β a) => coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) (fun (_x : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R (CommSemiring.toSemiring.{u3} R _inst_4)) (Semiring.toNonAssocSemiring.{u4} S (CommSemiring.toSemiring.{u4} S _inst_5))) h (g a b)))
+but is expected to have type
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : CommSemiring.{u2} R] [_inst_5 : CommSemiring.{u1} S] (h : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u2} R _inst_4) f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))))) h (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u2} R _inst_4) f g)) (Dfinsupp.prod.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (CommSemiring.toCommMonoid.{u1} S _inst_5) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5))) R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)) (RingHom.instRingHomClassRingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_4)) (Semiring.toNonAssocSemiring.{u1} S (CommSemiring.toSemiring.{u1} S _inst_5)))))) h (g a b)))
+Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_prod RingHom.map_dfinsupp_prodₓ'. -/
 @[simp]
 theorem map_dfinsupp_prod [CommSemiring R] [CommSemiring S] (h : R →+* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Prod g) = f.Prod fun a b => h (g a b) :=
   h.map_prod _ _
 #align ring_hom.map_dfinsupp_prod RingHom.map_dfinsupp_prod
--/
 
-#print RingHom.map_dfinsupp_sum /-
+/- warning: ring_hom.map_dfinsupp_sum -> RingHom.map_dfinsupp_sum is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : NonAssocSemiring.{u3} R] [_inst_5 : NonAssocSemiring.{u4} S] (h : RingHom.{u3, u4} R S _inst_4 _inst_5) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S _inst_4 _inst_5) (fun (_x : RingHom.{u3, u4} R S _inst_4 _inst_5) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S _inst_4 _inst_5) h (Dfinsupp.sum.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_4)) f g)) (Dfinsupp.sum.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_5)) f (fun (a : ι) (b : β a) => coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S _inst_4 _inst_5) (fun (_x : RingHom.{u3, u4} R S _inst_4 _inst_5) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S _inst_4 _inst_5) h (g a b)))
+but is expected to have type
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : NonAssocSemiring.{u2} R] [_inst_5 : NonAssocSemiring.{u1} S] (h : RingHom.{u2, u1} R S _inst_4 _inst_5) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) (Dfinsupp.sum.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S _inst_4 _inst_5 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_4 _inst_5)))) h (Dfinsupp.sum.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) f g)) (Dfinsupp.sum.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_5) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_4 _inst_5) R S _inst_4 _inst_5 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_4 _inst_5)))) h (g a b)))
+Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_sum RingHom.map_dfinsupp_sumₓ'. -/
 @[simp]
 theorem map_dfinsupp_sum [NonAssocSemiring R] [NonAssocSemiring S] (h : R →+* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Sum g) = f.Sum fun a b => h (g a b) :=
   h.map_sum _ _
 #align ring_hom.map_dfinsupp_sum RingHom.map_dfinsupp_sum
--/
 
 end RingHom
 
@@ -3355,14 +3415,18 @@ variable {R S : Type _}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
-#print MulEquiv.map_dfinsupp_prod /-
+/- warning: mul_equiv.map_dfinsupp_prod -> MulEquiv.map_dfinsupp_prod is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : forall (i : ι), Zero.{u2} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u2} (β i) x (OfNat.ofNat.{u2} (β i) 0 (OfNat.mk.{u2} (β i) 0 (Zero.zero.{u2} (β i) (_inst_2 i)))))] [_inst_4 : CommMonoid.{u3} R] [_inst_5 : CommMonoid.{u4} S] (h : MulEquiv.{u3, u4} R S (MulOneClass.toHasMul.{u3} R (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4))) (MulOneClass.toHasMul.{u4} S (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (MulEquiv.{u3, u4} R S (MulOneClass.toHasMul.{u3} R (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4))) (MulOneClass.toHasMul.{u4} S (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) (fun (_x : MulEquiv.{u3, u4} R S (MulOneClass.toHasMul.{u3} R (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4))) (MulOneClass.toHasMul.{u4} S (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) => R -> S) (MulEquiv.hasCoeToFun.{u3, u4} R S (MulOneClass.toHasMul.{u3} R (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4))) (MulOneClass.toHasMul.{u4} S (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) h (Dfinsupp.prod.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (Dfinsupp.prod.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (MulEquiv.{u3, u4} R S (MulOneClass.toHasMul.{u3} R (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4))) (MulOneClass.toHasMul.{u4} S (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) (fun (_x : MulEquiv.{u3, u4} R S (MulOneClass.toHasMul.{u3} R (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4))) (MulOneClass.toHasMul.{u4} S (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) => R -> S) (MulEquiv.hasCoeToFun.{u3, u4} R S (MulOneClass.toHasMul.{u3} R (Monoid.toMulOneClass.{u3} R (CommMonoid.toMonoid.{u3} R _inst_4))) (MulOneClass.toHasMul.{u4} S (Monoid.toMulOneClass.{u4} S (CommMonoid.toMonoid.{u4} S _inst_5)))) h (g a b)))
+but is expected to have type
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : forall (i : ι), Zero.{u4} (β i)] [_inst_3 : forall (i : ι) (x : β i), Decidable (Ne.{succ u4} (β i) x (OfNat.ofNat.{u4} (β i) 0 (Zero.toOfNat0.{u4} (β i) (_inst_2 i))))] [_inst_4 : CommMonoid.{u2} R] [_inst_5 : CommMonoid.{u1} S] (h : MulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_2 i)) (g : forall (i : ι), (β i) -> R), Eq.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : R) => S) (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) R (fun (_x : R) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : R) => S) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) R S (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) R S (MulEquivClass.toEquivLike.{max u2 u1, u2, u1} (MulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MulEquiv.instMulEquivClassMulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))))) h (Dfinsupp.prod.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_4 f g)) (Dfinsupp.prod.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_2 i) (fun (i : ι) (x : β i) => _inst_3 i x) _inst_5 f (fun (a : ι) (b : β a) => FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (MulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) R (fun (_x : R) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : R) => S) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (MulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) R S (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (MulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) R S (MulEquivClass.toEquivLike.{max u2 u1, u2, u1} (MulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5)))) R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))) (MulEquiv.instMulEquivClassMulEquiv.{u2, u1} R S (MulOneClass.toMul.{u2} R (Monoid.toMulOneClass.{u2} R (CommMonoid.toMonoid.{u2} R _inst_4))) (MulOneClass.toMul.{u1} S (Monoid.toMulOneClass.{u1} S (CommMonoid.toMonoid.{u1} S _inst_5))))))) h (g a b)))
+Case conversion may be inaccurate. Consider using '#align mul_equiv.map_dfinsupp_prod MulEquiv.map_dfinsupp_prodₓ'. -/
 @[simp, to_additive]
 theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R ≃* S) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.Prod g) = f.Prod fun a b => h (g a b) :=
   h.map_prod _ _
 #align mul_equiv.map_dfinsupp_prod MulEquiv.map_dfinsupp_prod
 #align add_equiv.map_dfinsupp_sum AddEquiv.map_dfinsupp_sum
--/
 
 end MulEquiv
 
@@ -3375,31 +3439,43 @@ variable {R S : Type _}
 
 open Dfinsupp
 
-#print AddMonoidHom.map_dfinsupp_sumAddHom /-
+/- warning: add_monoid_hom.map_dfinsupp_sum_add_hom -> AddMonoidHom.map_dfinsupp_sumAddHom is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : AddCommMonoid.{u3} R] [_inst_3 : AddCommMonoid.{u4} S] [_inst_4 : forall (i : ι), AddZeroClass.{u2} (β i)] (h : AddMonoidHom.{u3, u4} R S (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u2, u3} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))), Eq.{succ u4} S (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (AddMonoidHom.{u3, u4} R S (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{u3, u4} R S (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => R -> S) (AddMonoidHom.hasCoeToFun.{u3, u4} R S (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) h (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (coeFn.{max (succ u4) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u4)} (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> S) (AddMonoidHom.hasCoeToFun.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.sumAddHom.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u2, u3, u4} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)) h (g i))) f)
+but is expected to have type
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : AddCommMonoid.{u2} R] [_inst_3 : AddCommMonoid.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (h : AddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, u2} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : R) => S) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (a : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) a) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : R) => S) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) h (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u4, u2, u1} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) h (g i))) f)
+Case conversion may be inaccurate. Consider using '#align add_monoid_hom.map_dfinsupp_sum_add_hom AddMonoidHom.map_dfinsupp_sumAddHomₓ'. -/
 @[simp]
 theorem map_dfinsupp_sumAddHom [AddCommMonoid R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (h : R →+ S) (f : Π₀ i, β i) (g : ∀ i, β i →+ R) :
     h (sumAddHom g f) = sumAddHom (fun i => h.comp (g i)) f :=
   congr_fun (comp_liftAddHom h g) f
 #align add_monoid_hom.map_dfinsupp_sum_add_hom AddMonoidHom.map_dfinsupp_sumAddHom
--/
 
-#print AddMonoidHom.dfinsupp_sumAddHom_apply /-
+/- warning: add_monoid_hom.dfinsupp_sum_add_hom_apply -> AddMonoidHom.dfinsupp_sumAddHom_apply is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : AddZeroClass.{u3} R] [_inst_3 : AddCommMonoid.{u4} S] [_inst_4 : forall (i : ι), AddZeroClass.{u2} (β i)] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u2, max u4 u3} (β i) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) (r : R), Eq.{succ u4} S (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => R -> S) (AddMonoidHom.hasCoeToFun.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (coeFn.{max (succ (max u4 u3)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ (max u4 u3))} (AddMonoidHom.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) (fun (_x : AddMonoidHom.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) (Dfinsupp.sumAddHom.{u1, u2, max u4 u3} ι (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3) g) f) r) (coeFn.{max (succ u4) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u4)} (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> S) (AddMonoidHom.hasCoeToFun.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.sumAddHom.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u2, max u4 u3, u4} (β i) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (_inst_4 i) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)) (coeFn.{max (succ (max u4 u3)) (succ u3), max (succ u3) (succ (max u4 u3))} (AddMonoidHom.{u3, max u4 u3} R (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) _inst_3)))) (fun (_x : AddMonoidHom.{u3, max u4 u3} R (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) _inst_3)))) => R -> (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) (AddMonoidHom.hasCoeToFun.{u3, max u4 u3} R (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u4 u3, u4} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) _inst_3)))) (AddMonoidHom.eval.{u3, u4} R S _inst_2 _inst_3) r) (g i))) f)
+but is expected to have type
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : AddZeroClass.{u2} R] [_inst_3 : AddCommMonoid.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, max u1 u2} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (r : R), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : R) => S) r) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : R) => S) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S (AddZeroClass.toAdd.{u2} R _inst_2) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (FunLike.coe.{max (max (max (succ u3) (succ u4)) (succ u2)) (succ u1), max (succ u3) (succ u4), max (succ u2) (succ u1)} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _x) (AddHomClass.toFunLike.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))))) (Dfinsupp.sumAddHom.{u3, u4, max u2 u1} ι (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3) g) f) r) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u4, max u2 u1, u1} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u1 u2} R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : R) => AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u1 u2} R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))) R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddZeroClass.toAdd.{u2} R _inst_2) (AddZeroClass.toAdd.{max u1 u2} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u1 u2} R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))) R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} R (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _inst_2 (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{max u2 u1, u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) S (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) _inst_3)))))) (AddMonoidHom.eval.{u2, u1} R S _inst_2 _inst_3) r) (g i))) f)
+Case conversion may be inaccurate. Consider using '#align add_monoid_hom.dfinsupp_sum_add_hom_apply AddMonoidHom.dfinsupp_sumAddHom_applyₓ'. -/
 @[simp]
 theorem dfinsupp_sumAddHom_apply [AddZeroClass R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (f : Π₀ i, β i) (g : ∀ i, β i →+ R →+ S) (r : R) :
     (sumAddHom g f) r = sumAddHom (fun i => (eval r).comp (g i)) f :=
   map_dfinsupp_sumAddHom (eval r) f g
 #align add_monoid_hom.dfinsupp_sum_add_hom_apply AddMonoidHom.dfinsupp_sumAddHom_apply
--/
 
-#print AddMonoidHom.coe_dfinsupp_sumAddHom /-
+/- warning: add_monoid_hom.coe_dfinsupp_sum_add_hom -> AddMonoidHom.coe_dfinsupp_sumAddHom is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : AddZeroClass.{u3} R] [_inst_3 : AddCommMonoid.{u4} S] [_inst_4 : forall (i : ι), AddZeroClass.{u2} (β i)] (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u2, max u4 u3} (β i) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))), Eq.{max (succ u3) (succ u4)} (R -> S) (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => R -> S) (AddMonoidHom.hasCoeToFun.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (coeFn.{max (succ (max u4 u3)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ (max u4 u3))} (AddMonoidHom.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) (fun (_x : AddMonoidHom.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u4 u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3)))) (Dfinsupp.sumAddHom.{u1, u2, max u4 u3} ι (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3) g) f)) (coeFn.{max (succ (max u3 u4)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ (max u3 u4))} (AddMonoidHom.{max u1 u2, max u3 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (R -> S) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u3 u4} (R -> S) (AddCommMonoid.toAddMonoid.{max u3 u4} (R -> S) (Pi.addCommMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3))))) (fun (_x : AddMonoidHom.{max u1 u2, max u3 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (R -> S) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u3 u4} (R -> S) (AddCommMonoid.toAddMonoid.{max u3 u4} (R -> S) (Pi.addCommMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3))))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> R -> S) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u3 u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) (R -> S) (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{max u3 u4} (R -> S) (AddCommMonoid.toAddMonoid.{max u3 u4} (R -> S) (Pi.addCommMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.sumAddHom.{u1, u2, max u3 u4} ι (R -> S) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (Pi.addCommMonoid.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u2, max u4 u3, max u3 u4} (β i) (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (R -> S) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u4 u3} (AddMonoidHom.{u3, u4} R S _inst_2 (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.addCommMonoid.{u3, u4} R S _inst_2 _inst_3))) (Pi.addZeroClass.{u3, u4} R (fun (ᾰ : R) => S) (fun (i : R) => AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (AddMonoidHom.coeFn.{u3, u4} R S _inst_2 _inst_3) (g i))) f)
+but is expected to have type
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : AddZeroClass.{u2} R] [_inst_3 : AddCommMonoid.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, max u1 u2} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : R), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : R) => S) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : R) => S) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S (AddZeroClass.toAdd.{u2} R _inst_2) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) f) R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (FunLike.coe.{max (max (max (succ u3) (succ u4)) (succ u2)) (succ u1), max (succ u3) (succ u4), max (succ u2) (succ u1)} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) _x) (AddHomClass.toFunLike.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3)))))) (Dfinsupp.sumAddHom.{u3, u4, max u2 u1} ι (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3) g) f)) (FunLike.coe.{max (max (max (succ u3) (succ u4)) (succ u2)) (succ u1), max (succ u3) (succ u4), max (succ u2) (succ u1)} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2947 : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R -> S) _x) (AddHomClass.toFunLike.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2947 : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{max u2 u1} (R -> S) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2947 : R) => S) (fun (i : R) => _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max (max u3 u4) u2) u1, max u3 u4, max u2 u1} (AddMonoidHom.{max u4 u3, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2947 : R) => S) (fun (i : R) => _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2947 : R) => S) (fun (i : R) => _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, max u2 u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (R -> S) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (R -> S) (AddCommMonoid.toAddMonoid.{max u2 u1} (R -> S) (Pi.addCommMonoid.{u2, u1} R (fun (a._@.Mathlib.Algebra.Group.Pi._hyg.2947 : R) => S) (fun (i : R) => _inst_3))))))) (Dfinsupp.sumAddHom.{u3, u4, max u2 u1} ι (R -> S) (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (Pi.addCommMonoid.{u2, u1} R (fun (ᾰ : R) => S) (fun (i : R) => _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u4, max u2 u1, max u2 u1} (β i) (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (R -> S) (_inst_4 i) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{u2, u1} R S _inst_2 (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.addCommMonoid.{u2, u1} R S _inst_2 _inst_3))) (Pi.addZeroClass.{u2, u1} R (fun (ᾰ : R) => S) (fun (i : R) => AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHom.coeFn.{u2, u1} R S _inst_2 _inst_3) (g i))) f)
+Case conversion may be inaccurate. Consider using '#align add_monoid_hom.coe_dfinsupp_sum_add_hom AddMonoidHom.coe_dfinsupp_sumAddHomₓ'. -/
 theorem coe_dfinsupp_sumAddHom [AddZeroClass R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (f : Π₀ i, β i) (g : ∀ i, β i →+ R →+ S) :
     ⇑(sumAddHom g f) = sumAddHom (fun i => (coeFn R S).comp (g i)) f :=
   map_dfinsupp_sumAddHom (coeFn R S) f g
 #align add_monoid_hom.coe_dfinsupp_sum_add_hom AddMonoidHom.coe_dfinsupp_sumAddHom
--/
 
 end AddMonoidHom
 
@@ -3409,14 +3485,18 @@ variable {R S : Type _}
 
 open Dfinsupp
 
-#print RingHom.map_dfinsupp_sumAddHom /-
+/- warning: ring_hom.map_dfinsupp_sum_add_hom -> RingHom.map_dfinsupp_sumAddHom is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : NonAssocSemiring.{u3} R] [_inst_3 : NonAssocSemiring.{u4} S] [_inst_4 : forall (i : ι), AddZeroClass.{u2} (β i)] (h : RingHom.{u3, u4} R S _inst_2 _inst_3) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u2, u3} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_2))))), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (RingHom.{u3, u4} R S _inst_2 _inst_3) (fun (_x : RingHom.{u3, u4} R S _inst_2 _inst_3) => R -> S) (RingHom.hasCoeToFun.{u3, u4} R S _inst_2 _inst_3) h (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2))))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2))))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2))))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R _inst_2)) g) f)) (coeFn.{max (succ u4) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u4)} (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3))))) (fun (_x : AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3))))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> S) (AddMonoidHom.hasCoeToFun.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3))))) (Dfinsupp.sumAddHom.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u2, u3, u4} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R _inst_2)))) (AddMonoid.toAddZeroClass.{u4} S (AddMonoidWithOne.toAddMonoid.{u4} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u4} S (NonAssocSemiring.toAddCommMonoidWithOne.{u4} S _inst_3)))) (RingHom.toAddMonoidHom.{u3, u4} R S _inst_2 _inst_3 h) (g i))) f)
+but is expected to have type
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : NonAssocSemiring.{u2} R] [_inst_3 : NonAssocSemiring.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (h : RingHom.{u2, u1} R S _inst_2 _inst_3) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, u2} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R _inst_2))))), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (a : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) a) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) g) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} R S _inst_2 _inst_3) R S _inst_2 _inst_3 (RingHom.instRingHomClassRingHom.{u2, u1} R S _inst_2 _inst_3)))) h (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2))))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R _inst_2)) g) f)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)))) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3))))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S _inst_3)) (fun (i : ι) => AddMonoidHom.comp.{u4, u2, u1} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R _inst_2)))) (AddMonoid.toAddZeroClass.{u1} S (AddMonoidWithOne.toAddMonoid.{u1} S (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} S (NonAssocSemiring.toAddCommMonoidWithOne.{u1} S _inst_3)))) (RingHom.toAddMonoidHom.{u2, u1} R S _inst_2 _inst_3 h) (g i))) f)
+Case conversion may be inaccurate. Consider using '#align ring_hom.map_dfinsupp_sum_add_hom RingHom.map_dfinsupp_sumAddHomₓ'. -/
 @[simp]
 theorem map_dfinsupp_sumAddHom [NonAssocSemiring R] [NonAssocSemiring S] [∀ i, AddZeroClass (β i)]
     (h : R →+* S) (f : Π₀ i, β i) (g : ∀ i, β i →+ R) :
     h (sumAddHom g f) = sumAddHom (fun i => h.toAddMonoidHom.comp (g i)) f :=
   AddMonoidHom.congr_fun (comp_liftAddHom h.toAddMonoidHom g) f
 #align ring_hom.map_dfinsupp_sum_add_hom RingHom.map_dfinsupp_sumAddHom
--/
 
 end RingHom
 
@@ -3426,14 +3506,18 @@ variable {R S : Type _}
 
 open Dfinsupp
 
-#print AddEquiv.map_dfinsupp_sumAddHom /-
+/- warning: add_equiv.map_dfinsupp_sum_add_hom -> AddEquiv.map_dfinsupp_sumAddHom is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {β : ι -> Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u3}} {S : Type.{u4}} [_inst_2 : AddCommMonoid.{u3} R] [_inst_3 : AddCommMonoid.{u4} S] [_inst_4 : forall (i : ι), AddZeroClass.{u2} (β i)] (h : AddEquiv.{u3, u4} R S (AddZeroClass.toHasAdd.{u3} R (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (AddZeroClass.toHasAdd.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) (f : Dfinsupp.{u1, u2} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u2, u3} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))), Eq.{succ u4} S (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (AddEquiv.{u3, u4} R S (AddZeroClass.toHasAdd.{u3} R (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (AddZeroClass.toHasAdd.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) (fun (_x : AddEquiv.{u3, u4} R S (AddZeroClass.toHasAdd.{u3} R (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (AddZeroClass.toHasAdd.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) => R -> S) (AddEquiv.hasCoeToFun.{u3, u4} R S (AddZeroClass.toHasAdd.{u3} R (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (AddZeroClass.toHasAdd.{u4} S (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)))) h (coeFn.{max (succ u3) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u3)} (AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (fun (_x : AddMonoidHom.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> R) (AddMonoidHom.hasCoeToFun.{max u1 u2, u3} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) R (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2))) (Dfinsupp.sumAddHom.{u1, u2, u3} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (coeFn.{max (succ u4) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u4)} (AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (fun (_x : AddMonoidHom.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) => (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) -> S) (AddMonoidHom.hasCoeToFun.{max u1 u2, u4} (Dfinsupp.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => β i) i) ((fun (i : ι) => _inst_4 i) i))) S (Dfinsupp.addZeroClass.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => β i) i) (fun (i : ι) => (fun (i : ι) => _inst_4 i) i)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3))) (Dfinsupp.sumAddHom.{u1, u2, u4} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u2, u3, u4} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)) (AddEquiv.toAddMonoidHom.{u3, u4} R S (AddMonoid.toAddZeroClass.{u3} R (AddCommMonoid.toAddMonoid.{u3} R _inst_2)) (AddMonoid.toAddZeroClass.{u4} S (AddCommMonoid.toAddMonoid.{u4} S _inst_3)) h) (g i))) f)
+but is expected to have type
+  forall {ι : Type.{u3}} {β : ι -> Type.{u4}} [_inst_1 : DecidableEq.{succ u3} ι] {R : Type.{u2}} {S : Type.{u1}} [_inst_2 : AddCommMonoid.{u2} R] [_inst_3 : AddCommMonoid.{u1} S] [_inst_4 : forall (i : ι), AddZeroClass.{u4} (β i)] (h : AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) (f : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (g : forall (i : ι), AddMonoidHom.{u4, u2} (β i) R (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))), Eq.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : R) => S) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (a : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) a) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) R (fun (_x : R) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : R) => S) _x) (EmbeddingLike.toFunLike.{max (succ u2) (succ u1), succ u2, succ u1} (AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) R S (EquivLike.toEmbeddingLike.{max (succ u2) (succ u1), succ u2, succ u1} (AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) R S (AddEquivClass.toEquivLike.{max u2 u1, u2, u1} (AddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)))) R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddEquiv.instAddEquivClassAddEquiv.{u2, u1} R S (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))))) h (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u2), max (succ u3) (succ u4), succ u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => R) _x) (AddHomClass.toFunLike.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u2, max u3 u4, u2} (AddMonoidHom.{max u4 u3, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u2} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) R (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2))))) (Dfinsupp.sumAddHom.{u3, u4, u2} ι R (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_2 g) f)) (FunLike.coe.{max (max (succ u3) (succ u4)) (succ u1), max (succ u3) (succ u4), succ u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (fun (_x : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) => S) _x) (AddHomClass.toFunLike.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (AddZeroClass.toAdd.{max u3 u4} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i))) (AddZeroClass.toAdd.{u1} S (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u4) u1, max u3 u4, u1} (AddMonoidHom.{max u4 u3, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))) (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddMonoidHom.addMonoidHomClass.{max u3 u4, u1} (Dfinsupp.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => AddZeroClass.toZero.{u4} ((fun (i : ι) => β i) i) (_inst_4 i))) S (Dfinsupp.addZeroClass.{u3, u4} ι (fun (i : ι) => β i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3))))) (Dfinsupp.sumAddHom.{u3, u4, u1} ι S (fun (i : ι) => β i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => _inst_4 i) _inst_3 (fun (i : ι) => AddMonoidHom.comp.{u4, u2, u1} (β i) R S (_inst_4 i) (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) (AddEquiv.toAddMonoidHom.{u2, u1} R S (AddMonoid.toAddZeroClass.{u2} R (AddCommMonoid.toAddMonoid.{u2} R _inst_2)) (AddMonoid.toAddZeroClass.{u1} S (AddCommMonoid.toAddMonoid.{u1} S _inst_3)) h) (g i))) f)
+Case conversion may be inaccurate. Consider using '#align add_equiv.map_dfinsupp_sum_add_hom AddEquiv.map_dfinsupp_sumAddHomₓ'. -/
 @[simp]
 theorem map_dfinsupp_sumAddHom [AddCommMonoid R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (h : R ≃+ S) (f : Π₀ i, β i) (g : ∀ i, β i →+ R) :
     h (sumAddHom g f) = sumAddHom (fun i => h.toAddMonoidHom.comp (g i)) f :=
   AddMonoidHom.congr_fun (comp_liftAddHom h.toAddMonoidHom g) f
 #align add_equiv.map_dfinsupp_sum_add_hom AddEquiv.map_dfinsupp_sumAddHom
--/
 
 end AddEquiv
 
@@ -3456,7 +3540,12 @@ instance Dfinsupp.infinite_of_left {ι : Sort _} {π : ι → Sort _} [∀ i, No
 #align dfinsupp.infinite_of_left Dfinsupp.infinite_of_left
 -/
 
-#print Dfinsupp.infinite_of_exists_right /-
+/- warning: dfinsupp.infinite_of_exists_right -> Dfinsupp.infinite_of_exists_right is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {π : ι -> Type.{u2}} (i : ι) [_inst_1 : Infinite.{succ u2} (π i)] [_inst_2 : forall (i : ι), Zero.{u2} (π i)], Infinite.{succ (max u1 u2)} (Dfinsupp.{u1, u2} ι (fun (i : ι) => π i) (fun (i : ι) => _inst_2 i))
+but is expected to have type
+  forall {ι : Type.{u2}} {π : ι -> Type.{u1}} (i : ι) [_inst_1 : Infinite.{succ u1} (π i)] [_inst_2 : forall (i : ι), Zero.{u1} (π i)], Infinite.{max (succ u1) (succ u2)} (Dfinsupp.{u2, u1} ι (fun (i : ι) => π i) (fun (i : ι) => _inst_2 i))
+Case conversion may be inaccurate. Consider using '#align dfinsupp.infinite_of_exists_right Dfinsupp.infinite_of_exists_rightₓ'. -/
 /-- See `dfinsupp.infinite_of_right` for this in instance form, with the drawback that
 it needs all `π i` to be infinite. -/
 theorem Dfinsupp.infinite_of_exists_right {ι : Sort _} {π : ι → Sort _} (i : ι) [Infinite (π i)]
@@ -3464,7 +3553,6 @@ theorem Dfinsupp.infinite_of_exists_right {ι : Sort _} {π : ι → Sort _} (i
   letI := Classical.decEq ι
   Infinite.of_injective (fun j => Dfinsupp.single i j) Dfinsupp.single_injective
 #align dfinsupp.infinite_of_exists_right Dfinsupp.infinite_of_exists_right
--/
 
 #print Dfinsupp.infinite_of_right /-
 /-- See `dfinsupp.infinite_of_exists_right` for the case that only one `π ι` is infinite. -/

Changes in mathlib4

mathlib3
mathlib4
chore: adapt to multiple goal linter 1 (#12338)

A PR accompanying #12339.

Zulip discussion

Diff
@@ -1009,7 +1009,7 @@ theorem add_closure_iUnion_range_single :
     AddSubmonoid.closure (⋃ i : ι, Set.range (single i : β i → Π₀ i, β i)) = ⊤ :=
   top_unique fun x _ => by
     apply DFinsupp.induction x
-    exact AddSubmonoid.zero_mem _
+    · exact AddSubmonoid.zero_mem _
     exact fun a b f _ _ hf =>
       AddSubmonoid.add_mem _
         (AddSubmonoid.subset_closure <| Set.mem_iUnion.2 ⟨a, Set.mem_range_self _⟩) hf
@@ -1247,8 +1247,8 @@ theorem erase_def (i : ι) (f : Π₀ i, β i) : f.erase i = mk (f.support.erase
 theorem support_erase (i : ι) (f : Π₀ i, β i) : (f.erase i).support = f.support.erase i := by
   ext j
   by_cases h1 : j = i
-  simp only [h1, mem_support_toFun, erase_apply, ite_true, ne_eq, not_true, not_not,
-    Finset.mem_erase, false_and]
+  · simp only [h1, mem_support_toFun, erase_apply, ite_true, ne_eq, not_true, not_not,
+      Finset.mem_erase, false_and]
   by_cases h2 : f j ≠ 0 <;> simp at h2 <;> simp [h1, h2]
 #align dfinsupp.support_erase DFinsupp.support_erase
 
@@ -1955,8 +1955,8 @@ theorem sumAddHom_apply [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decida
   intro i _
   dsimp only [coe_mk', Subtype.coe_mk] at *
   split_ifs with h
-  rfl
-  rw [not_not.mp h, AddMonoidHom.map_zero]
+  · rfl
+  · rw [not_not.mp h, AddMonoidHom.map_zero]
 #align dfinsupp.sum_add_hom_apply DFinsupp.sumAddHom_apply
 
 theorem _root_.dfinsupp_sumAddHom_mem [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] {S : Type*}
chore(Data/DFinsupp/Basic): remove impossible →ₚ notation (#12018)

This is a binary operator that expands to a unary function; so this notation is (and has always been) impossible to use.

Diff
@@ -70,9 +70,6 @@ variable {β}
 /-- `Π₀ i, β i` denotes the type of dependent functions with finite support `DFinsupp β`. -/
 notation3 "Π₀ "(...)", "r:(scoped f => DFinsupp f) => r
 
-@[inherit_doc]
-infixl:25 " →ₚ " => DFinsupp
-
 namespace DFinsupp
 
 section Basic
style: replace '.-/' by '. -/' (#11938)

Purely automatic replacement. If this is in any way controversial; I'm happy to just close this PR.

Diff
@@ -1331,7 +1331,7 @@ open Finset
 
 variable {κ : Type*}
 
-/-- Reindexing (and possibly removing) terms of a dfinsupp.-/
+/-- Reindexing (and possibly removing) terms of a dfinsupp. -/
 noncomputable def comapDomain [∀ i, Zero (β i)] (h : κ → ι) (hh : Function.Injective h)
     (f : Π₀ i, β i) : Π₀ k, β (h k) where
   toFun x := f (h x)
@@ -1379,7 +1379,7 @@ theorem comapDomain_single [DecidableEq κ] [∀ i, Zero (β i)] (h : κ → ι)
   · rw [single_eq_of_ne hik.symm, single_eq_of_ne (hh.ne hik.symm)]
 #align dfinsupp.comap_domain_single DFinsupp.comapDomain_single
 
-/-- A computable version of comap_domain when an explicit left inverse is provided.-/
+/-- A computable version of comap_domain when an explicit left inverse is provided. -/
 def comapDomain' [∀ i, Zero (β i)] (h : κ → ι) {h' : ι → κ} (hh' : Function.LeftInverse h' h)
     (f : Π₀ i, β i) : Π₀ k, β (h k) where
   toFun x := f (h x)
@@ -1535,7 +1535,7 @@ theorem sigmaCurry_single [∀ i, DecidableEq (α i)] [∀ i j, Zero (δ i j)]
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /-- The natural map between `Π₀ i (j : α i), δ i j` and `Π₀ (i : Σ i, α i), δ i.1 i.2`, inverse of
-`curry`.-/
+`curry`. -/
 def sigmaUncurry [∀ i j, Zero (δ i j)]
     [∀ i, DecidableEq (α i)] [∀ i j (x : δ i j), Decidable (x ≠ 0)]
     (f : Π₀ (i) (j), δ i j) :
chore: remove mathport name: <expression> lines (#11928)

Quoting [@digama0](https://github.com/digama0):

These were actually never meant to go in the file, they are basically debugging information and only useful on significantly broken mathport files. You can safely remove all of them.

Diff
@@ -67,11 +67,9 @@ structure DFinsupp [∀ i, Zero (β i)] : Type max u v where mk' ::
 
 variable {β}
 
--- mathport name: «exprΠ₀ , »
 /-- `Π₀ i, β i` denotes the type of dependent functions with finite support `DFinsupp β`. -/
 notation3 "Π₀ "(...)", "r:(scoped f => DFinsupp f) => r
 
--- mathport name: «expr →ₚ »
 @[inherit_doc]
 infixl:25 " →ₚ " => DFinsupp
 
chore(DFinsupp/Basic): drop a DecidableEq assumption (#11795)

Golf DFinsupp.finite_support, drop an unneeded DecidableEq assumption.

Diff
@@ -560,17 +560,15 @@ theorem subtypeDomain_sub [∀ i, AddGroup (β i)] {p : ι → Prop} [DecidableP
 
 end FilterAndSubtypeDomain
 
-variable [dec : DecidableEq ι]
+variable [DecidableEq ι]
 
 section Basic
 
 variable [∀ i, Zero (β i)]
 
-theorem finite_support (f : Π₀ i, β i) : Set.Finite { i | f i ≠ 0 } := by
-  classical
-  exact Trunc.induction_on f.support' fun xs =>
-        (Multiset.toFinset xs.1).finite_toSet.subset fun i H =>
-          Multiset.mem_toFinset.2 ((xs.prop i).resolve_right H)
+theorem finite_support (f : Π₀ i, β i) : Set.Finite { i | f i ≠ 0 } :=
+  Trunc.induction_on f.support' fun xs ↦
+    xs.1.finite_toSet.subset fun i H ↦ ((xs.prop i).resolve_right H)
 #align dfinsupp.finite_support DFinsupp.finite_support
 
 /-- Create an element of `Π₀ i, β i` from a finset `s` and a function `x`
chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11801)
Diff
@@ -1234,7 +1234,7 @@ theorem zipWith_def {ι : Type u} {β : ι → Type v} {β₁ : ι → Type v₁
     {f : ∀ i, β₁ i → β₂ i → β i} {hf : ∀ i, f i 0 0 = 0} {g₁ : Π₀ i, β₁ i} {g₂ : Π₀ i, β₂ i} :
     zipWith f hf g₁ g₂ = mk (g₁.support ∪ g₂.support) fun i => f i.1 (g₁ i.1) (g₂ i.1) := by
   ext i
-  by_cases h1 : g₁ i ≠ 0 <;> by_cases h2 : g₂ i ≠ 0 <;> simp only [not_not, Ne.def] at h1 h2 <;>
+  by_cases h1 : g₁ i ≠ 0 <;> by_cases h2 : g₂ i ≠ 0 <;> simp only [not_not, Ne] at h1 h2 <;>
     simp [h1, h2, hf]
 #align dfinsupp.zip_with_def DFinsupp.zipWith_def
 
chore: don't use classical! when classical suffices (#11681)

(In fact, this is every use of classical! in Mathlib.)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -567,7 +567,7 @@ section Basic
 variable [∀ i, Zero (β i)]
 
 theorem finite_support (f : Π₀ i, β i) : Set.Finite { i | f i ≠ 0 } := by
-  classical!
+  classical
   exact Trunc.induction_on f.support' fun xs =>
         (Multiset.toFinset xs.1).finite_toSet.subset fun i H =>
           Multiset.mem_toFinset.2 ((xs.prop i).resolve_right H)
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -51,7 +51,6 @@ universe u u₁ u₂ v v₁ v₂ v₃ w x y l
 open BigOperators
 
 variable {ι : Type u} {γ : Type w} {β : ι → Type v} {β₁ : ι → Type v₁} {β₂ : ι → Type v₂}
-
 variable (β)
 
 /-- A dependent function `Π i, β i` with finite support, with notation `Π₀ i, β i`.
@@ -2272,7 +2271,6 @@ variable [DecidableEq ι]
 namespace MonoidHom
 
 variable {R S : Type*}
-
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
 #align monoid_hom.map_dfinsupp_prod map_dfinsupp_prodₓ
chore: remove useless tactics (#11333)

The removal of some pointless tactics flagged by #11308.

Diff
@@ -1136,10 +1136,7 @@ theorem mem_support_toFun (f : Π₀ i, β i) (i) : i ∈ f.support ↔ f i ≠
   exact and_iff_right_of_imp (s.prop i).resolve_right
 #align dfinsupp.mem_support_to_fun DFinsupp.mem_support_toFun
 
-theorem eq_mk_support (f : Π₀ i, β i) : f = mk f.support fun i => f i := by
-  change f = mk f.support fun i => f i.1
-  ext i
-  by_cases h : f i ≠ 0 <;> [skip; rw [not_not] at h] <;> simp [h]
+theorem eq_mk_support (f : Π₀ i, β i) : f = mk f.support fun i => f i := by aesop
 #align dfinsupp.eq_mk_support DFinsupp.eq_mk_support
 
 /-- Equivalence between dependent functions with finite support `s : Finset ι` and functions
chore: classify simp can do this porting notes (#10619)

Classify by adding issue number (#10618) to porting notes claiming anything semantically equivalent to simp can prove this or simp can simplify this.

Diff
@@ -653,7 +653,7 @@ theorem single_zero (i) : (single i 0 : Π₀ i, β i) = 0 :=
   DFunLike.coe_injective <| Pi.single_zero _
 #align dfinsupp.single_zero DFinsupp.single_zero
 
--- @[simp] -- Porting note: simp can prove this
+-- @[simp] -- Porting note (#10618): simp can prove this
 theorem single_eq_same {i b} : (single i b : Π₀ i, β i) i = b := by
   simp only [single_apply, dite_eq_ite, ite_true]
 #align dfinsupp.single_eq_same DFinsupp.single_eq_same
@@ -768,7 +768,7 @@ theorem erase_apply {i j : ι} {f : Π₀ i, β i} : (f.erase i) j = if j = i th
   rfl
 #align dfinsupp.erase_apply DFinsupp.erase_apply
 
--- @[simp] -- Porting note: simp can prove this
+-- @[simp] -- Porting note (#10618): simp can prove this
 theorem erase_same {i : ι} {f : Π₀ i, β i} : (f.erase i) i = 0 := by simp
 #align dfinsupp.erase_same DFinsupp.erase_same
 
refactor(Data/FunLike): use unbundled inheritance from FunLike (#8386)

The FunLike hierarchy is very big and gets scanned through each time we need a coercion (via the CoeFun instance). It looks like unbundled inheritance suits Lean 4 better here. The only class that still extends FunLike is EquivLike, since that has a custom coe_injective' field that is easier to implement. All other classes should take FunLike or EquivLike as a parameter.

Zulip thread

Important changes

Previously, morphism classes would be Type-valued and extend FunLike:

/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
  extends FunLike F A B :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))

After this PR, they should be Prop-valued and take FunLike as a parameter:

/-- `MyHomClass F A B` states that `F` is a type of `MyClass.op`-preserving morphisms.
You should extend this class when you extend `MyHom`. -/
class MyHomClass (F : Type*) (A B : outParam <| Type*) [MyClass A] [MyClass B]
  [FunLike F A B] : Prop :=
(map_op : ∀ (f : F) (x y : A), f (MyClass.op x y) = MyClass.op (f x) (f y))

(Note that A B stay marked as outParam even though they are not purely required to be so due to the FunLike parameter already filling them in. This is required to see through type synonyms, which is important in the category theory library. Also, I think keeping them as outParam is slightly faster.)

Similarly, MyEquivClass should take EquivLike as a parameter.

As a result, every mention of [MyHomClass F A B] should become [FunLike F A B] [MyHomClass F A B].

Remaining issues

Slower (failing) search

While overall this gives some great speedups, there are some cases that are noticeably slower. In particular, a failing application of a lemma such as map_mul is more expensive. This is due to suboptimal processing of arguments. For example:

variable [FunLike F M N] [Mul M] [Mul N] (f : F) (x : M) (y : M)

theorem map_mul [MulHomClass F M N] : f (x * y) = f x * f y

example [AddHomClass F A B] : f (x * y) = f x * f y := map_mul f _ _

Before this PR, applying map_mul f gives the goals [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]. Since M and N are out_params, [MulHomClass F ?M ?N] is synthesized first, supplies values for ?M and ?N and then the Mul M and Mul N instances can be found.

After this PR, the goals become [FunLike F ?M ?N] [Mul ?M] [Mul ?N] [MulHomClass F ?M ?N]. Now [FunLike F ?M ?N] is synthesized first, supplies values for ?M and ?N and then the Mul M and Mul N instances can be found, before trying MulHomClass F M N which fails. Since the Mul hierarchy is very big, this can be slow to fail, especially when there is no such Mul instance.

A long-term but harder to achieve solution would be to specify the order in which instance goals get solved. For example, we'd like to change the arguments to map_mul to look like [FunLike F M N] [Mul M] [Mul N] [highPriority <| MulHomClass F M N] because MulHomClass fails or succeeds much faster than the others.

As a consequence, the simpNF linter is much slower since by design it tries and fails to apply many map_ lemmas. The same issue occurs a few times in existing calls to simp [map_mul], where map_mul is tried "too soon" and fails. Thanks to the speedup of leanprover/lean4#2478 the impact is very limited, only in files that already were close to the timeout.

simp not firing sometimes

This affects map_smulₛₗ and related definitions. For simp lemmas Lean apparently uses a slightly different mechanism to find instances, so that rw can find every argument to map_smulₛₗ successfully but simp can't: leanprover/lean4#3701.

Missing instances due to unification failing

Especially in the category theory library, we might sometimes have a type A which is also accessible as a synonym (Bundled A hA).1. Instance synthesis doesn't always work if we have f : A →* B but x * y : (Bundled A hA).1 or vice versa. This seems to be mostly fixed by keeping A B as outParams in MulHomClass F A B. (Presumably because Lean will do a definitional check A =?= (Bundled A hA).1 instead of using the syntax in the discrimination tree.)

Workaround for issues

The timeouts can be worked around for now by specifying which map_mul we mean, either as map_mul f for some explicit f, or as e.g. MonoidHomClass.map_mul.

map_smulₛₗ not firing as simp lemma can be worked around by going back to the pre-FunLike situation and making LinearMap.map_smulₛₗ a simp lemma instead of the generic map_smulₛₗ. Writing simp [map_smulₛₗ _] also works.

Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Diff
@@ -1727,7 +1727,7 @@ def prod [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMon
 @[to_additive (attr := simp)]
 theorem _root_.map_dfinsupp_prod
     {R S H : Type*} [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
-    [CommMonoid R] [CommMonoid S] [MonoidHomClass H R S] (h : H) (f : Π₀ i, β i)
+    [CommMonoid R] [CommMonoid S] [FunLike H R S] [MonoidHomClass H R S] (h : H) (f : Π₀ i, β i)
     (g : ∀ i, β i → R) : h (f.prod g) = f.prod fun a b => h (g a b) :=
   map_prod _ _ _
 
chore: create Algebra/Module/LinearMap/Basic in preparation of splitting (#10160)
  • chore: create Algebra/Module/LinearMap in preparation of splitting
  • adjust imports
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2018 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Kenny Lau
 -/
-import Mathlib.Algebra.Module.LinearMap
+import Mathlib.Algebra.Module.LinearMap.Basic
 import Mathlib.Algebra.BigOperators.Basic
 import Mathlib.Data.Set.Finite
 import Mathlib.GroupTheory.Submonoid.Membership
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
@@ -82,14 +82,14 @@ section Basic
 
 variable [∀ i, Zero (β i)] [∀ i, Zero (β₁ i)] [∀ i, Zero (β₂ i)]
 
-instance funLike : FunLike (Π₀ i, β i) ι β :=
+instance instDFunLike : DFunLike (Π₀ i, β i) ι β :=
   ⟨fun f => f.toFun, fun ⟨f₁, s₁⟩ ⟨f₂, s₁⟩ ↦ fun (h : f₁ = f₂) ↦ by
     subst h
     congr
     apply Subsingleton.elim ⟩
-#align dfinsupp.fun_like DFinsupp.funLike
+#align dfinsupp.fun_like DFinsupp.instDFunLike
 
-/-- Helper instance for when there are too many metavariables to apply `FunLike.coeFunForall`
+/-- Helper instance for when there are too many metavariables to apply `DFunLike.coeFunForall`
 directly. -/
 instance : CoeFun (Π₀ i, β i) fun _ => ∀ i, β i :=
   inferInstance
@@ -101,19 +101,19 @@ theorem toFun_eq_coe (f : Π₀ i, β i) : f.toFun = f :=
 
 @[ext]
 theorem ext {f g : Π₀ i, β i} (h : ∀ i, f i = g i) : f = g :=
-  FunLike.ext _ _ h
+  DFunLike.ext _ _ h
 #align dfinsupp.ext DFinsupp.ext
 
-@[deprecated FunLike.ext_iff]
+@[deprecated DFunLike.ext_iff]
 theorem ext_iff {f g : Π₀ i, β i} : f = g ↔ ∀ i, f i = g i :=
-  FunLike.ext_iff
+  DFunLike.ext_iff
 #align dfinsupp.ext_iff DFinsupp.ext_iff
 
-lemma ne_iff {f g : Π₀ i, β i} : f ≠ g ↔ ∃ i, f i ≠ g i := FunLike.ne_iff
+lemma ne_iff {f g : Π₀ i, β i} : f ≠ g ↔ ∃ i, f i ≠ g i := DFunLike.ne_iff
 
-@[deprecated FunLike.coe_injective]
+@[deprecated DFunLike.coe_injective]
 theorem coeFn_injective : @Function.Injective (Π₀ i, β i) (∀ i, β i) (⇑) :=
-  FunLike.coe_injective
+  DFunLike.coe_injective
 #align dfinsupp.coe_fn_injective DFinsupp.coeFn_injective
 
 instance : Zero (Π₀ i, β i) :=
@@ -243,15 +243,15 @@ theorem coe_add [∀ i, AddZeroClass (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g
 #align dfinsupp.coe_add DFinsupp.coe_add
 
 instance addZeroClass [∀ i, AddZeroClass (β i)] : AddZeroClass (Π₀ i, β i) :=
-  FunLike.coe_injective.addZeroClass _ coe_zero coe_add
+  DFunLike.coe_injective.addZeroClass _ coe_zero coe_add
 
 instance instIsLeftCancelAdd [∀ i, AddZeroClass (β i)] [∀ i, IsLeftCancelAdd (β i)] :
     IsLeftCancelAdd (Π₀ i, β i) where
-  add_left_cancel _ _ _ h := ext fun x => add_left_cancel <| FunLike.congr_fun h x
+  add_left_cancel _ _ _ h := ext fun x => add_left_cancel <| DFunLike.congr_fun h x
 
 instance instIsRightCancelAdd [∀ i, AddZeroClass (β i)] [∀ i, IsRightCancelAdd (β i)] :
     IsRightCancelAdd (Π₀ i, β i) where
-  add_right_cancel _ _ _ h := ext fun x => add_right_cancel <| FunLike.congr_fun h x
+  add_right_cancel _ _ _ h := ext fun x => add_right_cancel <| DFunLike.congr_fun h x
 
 instance instIsCancelAdd [∀ i, AddZeroClass (β i)] [∀ i, IsCancelAdd (β i)] :
     IsCancelAdd (Π₀ i, β i) where
@@ -272,7 +272,7 @@ theorem coe_nsmul [∀ i, AddMonoid (β i)] (b : ℕ) (v : Π₀ i, β i) : ⇑(
 #align dfinsupp.coe_nsmul DFinsupp.coe_nsmul
 
 instance [∀ i, AddMonoid (β i)] : AddMonoid (Π₀ i, β i) :=
-  FunLike.coe_injective.addMonoid _ coe_zero coe_add fun _ _ => coe_nsmul _ _
+  DFunLike.coe_injective.addMonoid _ coe_zero coe_add fun _ _ => coe_nsmul _ _
 
 /-- Coercion from a `DFinsupp` to a pi type is an `AddMonoidHom`. -/
 def coeFnAddMonoidHom [∀ i, AddZeroClass (β i)] : (Π₀ i, β i) →+ ∀ i, β i
@@ -289,7 +289,7 @@ def evalAddMonoidHom [∀ i, AddZeroClass (β i)] (i : ι) : (Π₀ i, β i) →
 #align dfinsupp.eval_add_monoid_hom DFinsupp.evalAddMonoidHom
 
 instance addCommMonoid [∀ i, AddCommMonoid (β i)] : AddCommMonoid (Π₀ i, β i) :=
-  FunLike.coe_injective.addCommMonoid _ coe_zero coe_add fun _ _ => coe_nsmul _ _
+  DFunLike.coe_injective.addCommMonoid _ coe_zero coe_add fun _ _ => coe_nsmul _ _
 
 @[simp, norm_cast]
 theorem coe_finset_sum {α} [∀ i, AddCommMonoid (β i)] (s : Finset α) (g : α → Π₀ i, β i) :
@@ -341,11 +341,11 @@ theorem coe_zsmul [∀ i, AddGroup (β i)] (b : ℤ) (v : Π₀ i, β i) : ⇑(b
 #align dfinsupp.coe_zsmul DFinsupp.coe_zsmul
 
 instance [∀ i, AddGroup (β i)] : AddGroup (Π₀ i, β i) :=
-  FunLike.coe_injective.addGroup _ coe_zero coe_add coe_neg coe_sub (fun _ _ => coe_nsmul _ _)
+  DFunLike.coe_injective.addGroup _ coe_zero coe_add coe_neg coe_sub (fun _ _ => coe_nsmul _ _)
     fun _ _ => coe_zsmul _ _
 
 instance addCommGroup [∀ i, AddCommGroup (β i)] : AddCommGroup (Π₀ i, β i) :=
-  FunLike.coe_injective.addCommGroup _ coe_zero coe_add coe_neg coe_sub (fun _ _ => coe_nsmul _ _)
+  DFunLike.coe_injective.addCommGroup _ coe_zero coe_add coe_neg coe_sub (fun _ _ => coe_nsmul _ _)
     fun _ _ => coe_zsmul _ _
 
 /-- Dependent functions with finite support inherit a semiring action from an action on each
@@ -383,7 +383,7 @@ instance isCentralScalar [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMu
 structure on each coordinate. -/
 instance distribMulAction [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] :
     DistribMulAction γ (Π₀ i, β i) :=
-  Function.Injective.distribMulAction coeFnAddMonoidHom FunLike.coe_injective coe_smul
+  Function.Injective.distribMulAction coeFnAddMonoidHom DFunLike.coe_injective coe_smul
 
 /-- Dependent functions with finite support inherit a module structure from such a structure on
 each coordinate. -/
@@ -511,14 +511,14 @@ theorem subtypeDomain_apply [∀ i, Zero (β i)] {p : ι → Prop} [DecidablePre
 @[simp]
 theorem subtypeDomain_add [∀ i, AddZeroClass (β i)] {p : ι → Prop} [DecidablePred p]
     (v v' : Π₀ i, β i) : (v + v').subtypeDomain p = v.subtypeDomain p + v'.subtypeDomain p :=
-  FunLike.coe_injective rfl
+  DFunLike.coe_injective rfl
 #align dfinsupp.subtype_domain_add DFinsupp.subtypeDomain_add
 
 @[simp]
 theorem subtypeDomain_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
     {p : ι → Prop} [DecidablePred p] (r : γ) (f : Π₀ i, β i) :
     (r • f).subtypeDomain p = r • f.subtypeDomain p :=
-  FunLike.coe_injective rfl
+  DFunLike.coe_injective rfl
 #align dfinsupp.subtype_domain_smul DFinsupp.subtypeDomain_smul
 
 variable (γ β)
@@ -550,13 +550,13 @@ variable {γ β}
 @[simp]
 theorem subtypeDomain_neg [∀ i, AddGroup (β i)] {p : ι → Prop} [DecidablePred p] {v : Π₀ i, β i} :
     (-v).subtypeDomain p = -v.subtypeDomain p :=
-  FunLike.coe_injective rfl
+  DFunLike.coe_injective rfl
 #align dfinsupp.subtype_domain_neg DFinsupp.subtypeDomain_neg
 
 @[simp]
 theorem subtypeDomain_sub [∀ i, AddGroup (β i)] {p : ι → Prop} [DecidablePred p]
     {v v' : Π₀ i, β i} : (v - v').subtypeDomain p = v.subtypeDomain p - v'.subtypeDomain p :=
-  FunLike.coe_injective rfl
+  DFunLike.coe_injective rfl
 #align dfinsupp.subtype_domain_sub DFinsupp.subtypeDomain_sub
 
 end FilterAndSubtypeDomain
@@ -606,11 +606,11 @@ theorem mk_injective (s : Finset ι) : Function.Injective (@mk ι β _ _ s) := b
 #align dfinsupp.mk_injective DFinsupp.mk_injective
 
 instance unique [∀ i, Subsingleton (β i)] : Unique (Π₀ i, β i) :=
-  FunLike.coe_injective.unique
+  DFunLike.coe_injective.unique
 #align dfinsupp.unique DFinsupp.unique
 
 instance uniqueOfIsEmpty [IsEmpty ι] : Unique (Π₀ i, β i) :=
-  FunLike.coe_injective.unique
+  DFunLike.coe_injective.unique
 #align dfinsupp.unique_of_is_empty DFinsupp.uniqueOfIsEmpty
 
 /-- Given `Fintype ι`, `equivFunOnFintype` is the `Equiv` between `Π₀ i, β i` and `Π i, β i`.
@@ -620,7 +620,7 @@ def equivFunOnFintype [Fintype ι] : (Π₀ i, β i) ≃ ∀ i, β i
     where
   toFun := (⇑)
   invFun f := ⟨f, Trunc.mk ⟨Finset.univ.1, fun _ => Or.inl <| Finset.mem_univ_val _⟩⟩
-  left_inv _ := FunLike.coe_injective rfl
+  left_inv _ := DFunLike.coe_injective rfl
   right_inv _ := rfl
 #align dfinsupp.equiv_fun_on_fintype DFinsupp.equivFunOnFintype
 #align dfinsupp.equiv_fun_on_fintype_apply DFinsupp.equivFunOnFintype_apply
@@ -650,7 +650,7 @@ theorem single_apply {i i' b} :
 
 @[simp]
 theorem single_zero (i) : (single i 0 : Π₀ i, β i) = 0 :=
-  FunLike.coe_injective <| Pi.single_zero _
+  DFunLike.coe_injective <| Pi.single_zero _
 #align dfinsupp.single_zero DFinsupp.single_zero
 
 -- @[simp] -- Porting note: simp can prove this
@@ -663,7 +663,7 @@ theorem single_eq_of_ne {i i' b} (h : i ≠ i') : (single i b : Π₀ i, β i) i
 #align dfinsupp.single_eq_of_ne DFinsupp.single_eq_of_ne
 
 theorem single_injective {i} : Function.Injective (single i : β i → Π₀ i, β i) := fun _ _ H =>
-  Pi.single_injective β i <| FunLike.coe_injective.eq_iff.mpr H
+  Pi.single_injective β i <| DFunLike.coe_injective.eq_iff.mpr H
 #align dfinsupp.single_injective DFinsupp.single_injective
 
 /-- Like `Finsupp.single_eq_single_iff`, but with a `HEq` due to dependent types -/
@@ -1040,7 +1040,7 @@ See note [partially-applied ext lemmas]. -/
 @[ext]
 theorem addHom_ext' {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+ γ⦄
     (H : ∀ x, f.comp (singleAddHom β x) = g.comp (singleAddHom β x)) : f = g :=
-  addHom_ext fun x => FunLike.congr_fun (H x)
+  addHom_ext fun x => DFunLike.congr_fun (H x)
 #align dfinsupp.add_hom_ext' DFinsupp.addHom_ext'
 
 end AddMonoid
@@ -1584,7 +1584,7 @@ theorem sigmaUncurry_add [∀ i j, AddZeroClass (δ i j)]
     [∀ i, DecidableEq (α i)] [∀ i j (x : δ i j), Decidable (x ≠ 0)]
     (f g : Π₀ (i) (j), δ i j) :
     sigmaUncurry (f + g) = sigmaUncurry f + sigmaUncurry g :=
-  FunLike.coe_injective rfl
+  DFunLike.coe_injective rfl
 #align dfinsupp.sigma_uncurry_add DFinsupp.sigmaUncurry_add
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
@@ -1593,7 +1593,7 @@ theorem sigmaUncurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)]
     [∀ i, DecidableEq (α i)] [∀ i j (x : δ i j), Decidable (x ≠ 0)]
     [∀ i j, DistribMulAction γ (δ i j)]
     (r : γ) (f : Π₀ (i) (j), δ i j) : sigmaUncurry (r • f) = r • sigmaUncurry f :=
-  FunLike.coe_injective rfl
+  DFunLike.coe_injective rfl
 #align dfinsupp.sigma_uncurry_smul DFinsupp.sigmaUncurry_smul
 
 @[simp]
@@ -2143,7 +2143,7 @@ theorem prod_sum_index {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ 
 @[simp]
 theorem sum_single [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] {f : Π₀ i, β i} :
     f.sum single = f := by
-  have := FunLike.congr_fun (liftAddHom_singleAddHom (β := β)) f
+  have := DFunLike.congr_fun (liftAddHom_singleAddHom (β := β)) f
   rw [liftAddHom_apply, sumAddHom_apply] at this
   exact this
 #align dfinsupp.sum_single DFinsupp.sum_single
@@ -2315,7 +2315,7 @@ open DFinsupp
 theorem map_dfinsupp_sumAddHom [AddCommMonoid R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (h : R →+ S) (f : Π₀ i, β i) (g : ∀ i, β i →+ R) :
     h (sumAddHom g f) = sumAddHom (fun i => h.comp (g i)) f :=
-  FunLike.congr_fun (comp_liftAddHom h g) f
+  DFunLike.congr_fun (comp_liftAddHom h g) f
 #align add_monoid_hom.map_dfinsupp_sum_add_hom AddMonoidHom.map_dfinsupp_sumAddHom
 
 theorem dfinsupp_sumAddHom_apply [AddZeroClass R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
@@ -2343,7 +2343,7 @@ open DFinsupp
 theorem map_dfinsupp_sumAddHom [NonAssocSemiring R] [NonAssocSemiring S] [∀ i, AddZeroClass (β i)]
     (h : R →+* S) (f : Π₀ i, β i) (g : ∀ i, β i →+ R) :
     h (sumAddHom g f) = sumAddHom (fun i => h.toAddMonoidHom.comp (g i)) f :=
-  FunLike.congr_fun (comp_liftAddHom h.toAddMonoidHom g) f
+  DFunLike.congr_fun (comp_liftAddHom h.toAddMonoidHom g) f
 #align ring_hom.map_dfinsupp_sum_add_hom RingHom.map_dfinsupp_sumAddHom
 
 end RingHom
@@ -2358,7 +2358,7 @@ open DFinsupp
 theorem map_dfinsupp_sumAddHom [AddCommMonoid R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (h : R ≃+ S) (f : Π₀ i, β i) (g : ∀ i, β i →+ R) :
     h (sumAddHom g f) = sumAddHom (fun i => h.toAddMonoidHom.comp (g i)) f :=
-  FunLike.congr_fun (comp_liftAddHom h.toAddMonoidHom g) f
+  DFunLike.congr_fun (comp_liftAddHom h.toAddMonoidHom g) f
 #align add_equiv.map_dfinsupp_sum_add_hom AddEquiv.map_dfinsupp_sumAddHom
 
 end AddEquiv
chore(*): replace $ with <| (#9319)

See Zulip thread for the discussion.

Diff
@@ -1490,7 +1490,7 @@ def sigmaCurry [∀ i j, Zero (δ i j)] (f : Π₀ (i : Σ _, _), δ i.1 i.2) :
   toFun := fun i ↦
   { toFun := fun j ↦ f ⟨i, j⟩,
     support' := f.support'.map (fun ⟨m, hm⟩ ↦
-      ⟨m.filterMap (fun ⟨i', j'⟩ ↦ if h : i' = i then some $ h.rec j' else none),
+      ⟨m.filterMap (fun ⟨i', j'⟩ ↦ if h : i' = i then some <| h.rec j' else none),
         fun j ↦ (hm ⟨i, j⟩).imp_left (fun h ↦ (m.mem_filterMap _).mpr ⟨⟨i, j⟩, h, dif_pos rfl⟩)⟩) }
   support' := f.support'.map (fun ⟨m, hm⟩ ↦
     ⟨m.map Sigma.fst, fun i ↦ Decidable.or_iff_not_imp_left.mpr (fun h ↦ DFinsupp.ext
feat: Better lemmas for transferring finite sums along equivalences (#9237)

Lemmas around this were a mess, throth in terms of names, statement and location. This PR standardises everything to be in Algebra.BigOperators.Basic and changes the lemmas to take in InjOn and SurjOn assumptions where possible (and where impossible make sure the hypotheses are taken in the correct order) and moves the equality of functions hypothesis last.

Also add a few lemmas that help fix downstream uses by golfing.

From LeanAPAP and LeanCamCombi

Diff
@@ -2151,9 +2151,8 @@ theorem sum_single [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable
 @[to_additive]
 theorem prod_subtypeDomain_index [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     [CommMonoid γ] {v : Π₀ i, β i} {p : ι → Prop} [DecidablePred p] {h : ∀ i, β i → γ}
-    (hp : ∀ x ∈ v.support, p x) : ((v.subtypeDomain p).prod fun i b => h i b) = v.prod h :=
-  Finset.prod_bij (fun p _ => p) (by simp) (by simp) (fun ⟨a₀, ha₀⟩ ⟨a₁, ha₁⟩ => by simp)
-    fun i hi => ⟨⟨i, hp i hi⟩, by simpa using hi, rfl⟩
+    (hp : ∀ x ∈ v.support, p x) : (v.subtypeDomain p).prod (fun i b => h i b) = v.prod h := by
+  refine Finset.prod_bij (fun p _ ↦ p) ?_ ?_ ?_ ?_ <;> aesop
 #align dfinsupp.prod_subtype_domain_index DFinsupp.prod_subtypeDomain_index
 #align dfinsupp.sum_subtype_domain_index DFinsupp.sum_subtypeDomain_index
 
chore(*): use ∃ x ∈ s, _ instead of ∃ (x) (_ : x ∈ s), _ (#9215)

Follow-up #9184

Diff
@@ -1190,10 +1190,7 @@ instance decidableZero : DecidablePred (Eq (0 : Π₀ i, β i)) := fun _ =>
   decidable_of_iff _ <| support_eq_empty.trans eq_comm
 #align dfinsupp.decidable_zero DFinsupp.decidableZero
 
-/- ./././Mathport/Syntax/Translate/Basic.lean:632:2:
-  warning: expanding binder collection (i «expr ∉ » s) -/
-theorem support_subset_iff {s : Set ι} {f : Π₀ i, β i} :
-    ↑f.support ⊆ s ↔ ∀ (i) (_ : i ∉ s), f i = 0 := by
+theorem support_subset_iff {s : Set ι} {f : Π₀ i, β i} : ↑f.support ⊆ s ↔ ∀ i ∉ s, f i = 0 := by
   simp [Set.subset_def]; exact forall_congr' fun i => not_imp_comm
 #align dfinsupp.support_subset_iff DFinsupp.support_subset_iff
 
chore: Replace (· op ·) a by (a op ·) (#8843)

I used the regex \(\(· (.) ·\) (.)\), replacing with ($2 $1 ·).

Diff
@@ -259,7 +259,7 @@ instance instIsCancelAdd [∀ i, AddZeroClass (β i)] [∀ i, IsCancelAdd (β i)
 /-- Note the general `SMul` instance doesn't apply as `ℕ` is not distributive
 unless `β i`'s addition is commutative. -/
 instance hasNatScalar [∀ i, AddMonoid (β i)] : SMul ℕ (Π₀ i, β i) :=
-  ⟨fun c v => v.mapRange (fun _ => (· • ·) c) fun _ => nsmul_zero _⟩
+  ⟨fun c v => v.mapRange (fun _ => (c • ·)) fun _ => nsmul_zero _⟩
 #align dfinsupp.has_nat_scalar DFinsupp.hasNatScalar
 
 theorem nsmul_apply [∀ i, AddMonoid (β i)] (b : ℕ) (v : Π₀ i, β i) (i : ι) : (b • v) i = b • v i :=
@@ -328,7 +328,7 @@ theorem coe_sub [∀ i, AddGroup (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g₁
 /-- Note the general `SMul` instance doesn't apply as `ℤ` is not distributive
 unless `β i`'s addition is commutative. -/
 instance hasIntScalar [∀ i, AddGroup (β i)] : SMul ℤ (Π₀ i, β i) :=
-  ⟨fun c v => v.mapRange (fun _ => (· • ·) c) fun _ => zsmul_zero _⟩
+  ⟨fun c v => v.mapRange (fun _ => (c • ·)) fun _ => zsmul_zero _⟩
 #align dfinsupp.has_int_scalar DFinsupp.hasIntScalar
 
 theorem zsmul_apply [∀ i, AddGroup (β i)] (b : ℤ) (v : Π₀ i, β i) (i : ι) : (b • v) i = b • v i :=
@@ -351,7 +351,7 @@ instance addCommGroup [∀ i, AddCommGroup (β i)] : AddCommGroup (Π₀ i, β i
 /-- Dependent functions with finite support inherit a semiring action from an action on each
 coordinate. -/
 instance [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] : SMul γ (Π₀ i, β i) :=
-  ⟨fun c v => v.mapRange (fun _ => (· • ·) c) fun _ => smul_zero _⟩
+  ⟨fun c v => v.mapRange (fun _ => (c • ·)) fun _ => smul_zero _⟩
 
 theorem smul_apply [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] (b : γ)
     (v : Π₀ i, β i) (i : ι) : (b • v) i = b • v i :=
@@ -803,7 +803,7 @@ theorem filter_ne_eq_erase (f : Π₀ i, β i) (i : ι) : f.filter (· ≠ i) =
 #align dfinsupp.filter_ne_eq_erase DFinsupp.filter_ne_eq_erase
 
 @[simp]
-theorem filter_ne_eq_erase' (f : Π₀ i, β i) (i : ι) : f.filter ((· ≠ ·) i) = f.erase i := by
+theorem filter_ne_eq_erase' (f : Π₀ i, β i) (i : ι) : f.filter (i ≠ ·) = f.erase i := by
   rw [← filter_ne_eq_erase f i]
   congr with j
   exact ne_comm
feat: When Finsupp.prod is nonzero (#8844)

Also replace Finsupp.nonzero_iff_exists by a more general lemma.

Diff
@@ -109,6 +109,8 @@ theorem ext_iff {f g : Π₀ i, β i} : f = g ↔ ∀ i, f i = g i :=
   FunLike.ext_iff
 #align dfinsupp.ext_iff DFinsupp.ext_iff
 
+lemma ne_iff {f g : Π₀ i, β i} : f ≠ g ↔ ∃ i, f i ≠ g i := FunLike.ne_iff
+
 @[deprecated FunLike.coe_injective]
 theorem coeFn_injective : @Function.Injective (Π₀ i, β i) (∀ i, β i) (⇑) :=
   FunLike.coe_injective
@@ -120,14 +122,10 @@ instance : Zero (Π₀ i, β i) :=
 instance : Inhabited (Π₀ i, β i) :=
   ⟨0⟩
 
-@[simp]
-theorem coe_mk' (f : ∀ i, β i) (s) : ⇑(⟨f, s⟩ : Π₀ i, β i) = f :=
-  rfl
+@[simp, norm_cast] lemma coe_mk' (f : ∀ i, β i) (s) : ⇑(⟨f, s⟩ : Π₀ i, β i) = f := rfl
 #align dfinsupp.coe_mk' DFinsupp.coe_mk'
 
-@[simp]
-theorem coe_zero : ⇑(0 : Π₀ i, β i) = 0 :=
-  rfl
+@[simp, norm_cast] lemma coe_zero : ⇑(0 : Π₀ i, β i) = 0 := rfl
 #align dfinsupp.coe_zero DFinsupp.coe_zero
 
 theorem zero_apply (i : ι) : (0 : Π₀ i, β i) i = 0 :=
@@ -239,7 +237,7 @@ theorem add_apply [∀ i, AddZeroClass (β i)] (g₁ g₂ : Π₀ i, β i) (i :
   rfl
 #align dfinsupp.add_apply DFinsupp.add_apply
 
-@[simp]
+@[simp, norm_cast]
 theorem coe_add [∀ i, AddZeroClass (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g₁ + g₂) = g₁ + g₂ :=
   rfl
 #align dfinsupp.coe_add DFinsupp.coe_add
@@ -268,7 +266,7 @@ theorem nsmul_apply [∀ i, AddMonoid (β i)] (b : ℕ) (v : Π₀ i, β i) (i :
   rfl
 #align dfinsupp.nsmul_apply DFinsupp.nsmul_apply
 
-@[simp]
+@[simp, norm_cast]
 theorem coe_nsmul [∀ i, AddMonoid (β i)] (b : ℕ) (v : Π₀ i, β i) : ⇑(b • v) = b • ⇑v :=
   rfl
 #align dfinsupp.coe_nsmul DFinsupp.coe_nsmul
@@ -293,7 +291,7 @@ def evalAddMonoidHom [∀ i, AddZeroClass (β i)] (i : ι) : (Π₀ i, β i) →
 instance addCommMonoid [∀ i, AddCommMonoid (β i)] : AddCommMonoid (Π₀ i, β i) :=
   FunLike.coe_injective.addCommMonoid _ coe_zero coe_add fun _ _ => coe_nsmul _ _
 
-@[simp]
+@[simp, norm_cast]
 theorem coe_finset_sum {α} [∀ i, AddCommMonoid (β i)] (s : Finset α) (g : α → Π₀ i, β i) :
     ⇑(∑ a in s, g a) = ∑ a in s, ⇑(g a) :=
   map_sum coeFnAddMonoidHom g s
@@ -312,9 +310,7 @@ theorem neg_apply [∀ i, AddGroup (β i)] (g : Π₀ i, β i) (i : ι) : (-g) i
   rfl
 #align dfinsupp.neg_apply DFinsupp.neg_apply
 
-@[simp]
-theorem coe_neg [∀ i, AddGroup (β i)] (g : Π₀ i, β i) : ⇑(-g) = -g :=
-  rfl
+@[simp, norm_cast] lemma coe_neg [∀ i, AddGroup (β i)] (g : Π₀ i, β i) : ⇑(-g) = -g := rfl
 #align dfinsupp.coe_neg DFinsupp.coe_neg
 
 instance [∀ i, AddGroup (β i)] : Sub (Π₀ i, β i) :=
@@ -324,7 +320,7 @@ theorem sub_apply [∀ i, AddGroup (β i)] (g₁ g₂ : Π₀ i, β i) (i : ι)
   rfl
 #align dfinsupp.sub_apply DFinsupp.sub_apply
 
-@[simp]
+@[simp, norm_cast]
 theorem coe_sub [∀ i, AddGroup (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g₁ - g₂) = g₁ - g₂ :=
   rfl
 #align dfinsupp.coe_sub DFinsupp.coe_sub
@@ -339,7 +335,7 @@ theorem zsmul_apply [∀ i, AddGroup (β i)] (b : ℤ) (v : Π₀ i, β i) (i :
   rfl
 #align dfinsupp.zsmul_apply DFinsupp.zsmul_apply
 
-@[simp]
+@[simp, norm_cast]
 theorem coe_zsmul [∀ i, AddGroup (β i)] (b : ℤ) (v : Π₀ i, β i) : ⇑(b • v) = b • ⇑v :=
   rfl
 #align dfinsupp.coe_zsmul DFinsupp.coe_zsmul
@@ -362,7 +358,7 @@ theorem smul_apply [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulActio
   rfl
 #align dfinsupp.smul_apply DFinsupp.smul_apply
 
-@[simp]
+@[simp, norm_cast]
 theorem coe_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] (b : γ)
     (v : Π₀ i, β i) : ⇑(b • v) = b • ⇑v :=
   rfl
@@ -850,9 +846,7 @@ def update : Π₀ i, β i :=
 
 variable (j : ι)
 
-@[simp]
-theorem coe_update : (f.update i b : ∀ i : ι, β i) = Function.update f i b :=
-  rfl
+@[simp, norm_cast] lemma coe_update : (f.update i b : ∀ i : ι, β i) = Function.update f i b := rfl
 #align dfinsupp.coe_update DFinsupp.coe_update
 
 @[simp]
@@ -1893,6 +1887,16 @@ theorem prod_eq_prod_fintype [Fintype ι] [∀ i, Zero (β i)] [∀ (i : ι) (x
 #align dfinsupp.prod_eq_prod_fintype DFinsupp.prod_eq_prod_fintype
 #align dfinsupp.sum_eq_sum_fintype DFinsupp.sum_eq_sum_fintype
 
+section CommMonoidWithZero
+variable [Π i, Zero (β i)] [CommMonoidWithZero γ] [Nontrivial γ] [NoZeroDivisors γ]
+  [Π i, DecidableEq (β i)] {f : Π₀ i, β i} {g : Π i, β i → γ}
+
+@[simp]
+lemma prod_eq_zero_iff : f.prod g = 0 ↔ ∃ i ∈ f.support, g i (f i) = 0 := Finset.prod_eq_zero_iff
+lemma prod_ne_zero_iff : f.prod g ≠ 0 ↔ ∀ i ∈ f.support, g i (f i) ≠ 0 := Finset.prod_ne_zero_iff
+
+end CommMonoidWithZero
+
 /--
 When summing over an `AddMonoidHom`, the decidability assumption is not needed, and the result is
 also an `AddMonoidHom`.
@@ -2281,14 +2285,14 @@ variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 #align monoid_hom.map_dfinsupp_prod map_dfinsupp_prodₓ
 #align add_monoid_hom.map_dfinsupp_sum map_dfinsupp_sumₓ
 
-@[to_additive]
+@[to_additive (attr := simp, norm_cast)]
 theorem coe_dfinsupp_prod [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀ i, β i → R →* S) :
     ⇑(f.prod g) = f.prod fun a b => ⇑(g a b) :=
   coe_finset_prod _ _
 #align monoid_hom.coe_dfinsupp_prod MonoidHom.coe_dfinsupp_prod
 #align add_monoid_hom.coe_dfinsupp_sum AddMonoidHom.coe_dfinsupp_sum
 
-@[to_additive (attr := simp)]
+@[to_additive]
 theorem dfinsupp_prod_apply [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀ i, β i → R →* S)
     (r : R) : (f.prod g) r = f.prod fun a b => (g a b) r :=
   finset_prod_apply _ _ _
@@ -2318,13 +2322,13 @@ theorem map_dfinsupp_sumAddHom [AddCommMonoid R] [AddCommMonoid S] [∀ i, AddZe
   FunLike.congr_fun (comp_liftAddHom h g) f
 #align add_monoid_hom.map_dfinsupp_sum_add_hom AddMonoidHom.map_dfinsupp_sumAddHom
 
-@[simp]
 theorem dfinsupp_sumAddHom_apply [AddZeroClass R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (f : Π₀ i, β i) (g : ∀ i, β i →+ R →+ S) (r : R) :
     (sumAddHom g f) r = sumAddHom (fun i => (eval r).comp (g i)) f :=
   map_dfinsupp_sumAddHom (eval r) f g
 #align add_monoid_hom.dfinsupp_sum_add_hom_apply AddMonoidHom.dfinsupp_sumAddHom_apply
 
+@[simp, norm_cast]
 theorem coe_dfinsupp_sumAddHom [AddZeroClass R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
     (f : Π₀ i, β i) (g : ∀ i, β i →+ R →+ S) :
     ⇑(sumAddHom g f) = sumAddHom (fun i => (coeFn R S).comp (g i)) f :=
chore: tidy various files (#8818)
Diff
@@ -752,7 +752,7 @@ variable [∀ i, Zero (β₁ i)] [∀ i, Zero (β₂ i)]
 @[simp]
 theorem zipWith_single_single (f : ∀ i, β₁ i → β₂ i → β i) (hf : ∀ i, f i 0 0 = 0)
     {i} (b₁ : β₁ i) (b₂ : β₂ i) :
-      zipWith f hf (single i b₁) (single i b₂) = single i (f i b₁ b₂) := by
+    zipWith f hf (single i b₁) (single i b₂) = single i (f i b₁ b₂) := by
   ext j
   rw [zipWith_apply]
   obtain rfl | hij := Decidable.eq_or_ne i j
chore: remove deprecated MonoidHom.map_prod, AddMonoidHom.map_sum (#8787)
Diff
@@ -296,13 +296,13 @@ instance addCommMonoid [∀ i, AddCommMonoid (β i)] : AddCommMonoid (Π₀ i, 
 @[simp]
 theorem coe_finset_sum {α} [∀ i, AddCommMonoid (β i)] (s : Finset α) (g : α → Π₀ i, β i) :
     ⇑(∑ a in s, g a) = ∑ a in s, ⇑(g a) :=
-  (coeFnAddMonoidHom : _ →+ ∀ i, β i).map_sum g s
+  map_sum coeFnAddMonoidHom g s
 #align dfinsupp.coe_finset_sum DFinsupp.coe_finset_sum
 
 @[simp]
 theorem finset_sum_apply {α} [∀ i, AddCommMonoid (β i)] (s : Finset α) (g : α → Π₀ i, β i) (i : ι) :
     (∑ a in s, g a) i = ∑ a in s, g a i :=
-  (evalAddMonoidHom i : _ →+ β i).map_sum g s
+  map_sum (evalAddMonoidHom i) g s
 #align dfinsupp.finset_sum_apply DFinsupp.finset_sum_apply
 
 instance [∀ i, AddGroup (β i)] : Neg (Π₀ i, β i) :=
@@ -1800,7 +1800,7 @@ theorem prod_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type*} {β₂ : ι
 theorem sum_apply {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
     [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)] {f : Π₀ i₁, β₁ i₁}
     {g : ∀ i₁, β₁ i₁ → Π₀ i, β i} {i₂ : ι} : (f.sum g) i₂ = f.sum fun i₁ b => g i₁ b i₂ :=
-  (evalAddMonoidHom i₂ : (Π₀ i, β i) →+ β i₂).map_sum _ f.support
+  map_sum (evalAddMonoidHom i₂) _ f.support
 #align dfinsupp.sum_apply DFinsupp.sum_apply
 
 theorem support_sum {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
@@ -1834,7 +1834,7 @@ theorem prod_mul [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x
 @[to_additive (attr := simp)]
 theorem prod_inv [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommGroup γ]
     {f : Π₀ i, β i} {h : ∀ i, β i → γ} : (f.prod fun i b => (h i b)⁻¹) = (f.prod h)⁻¹ :=
-  ((invMonoidHom : γ →* γ).map_prod _ f.support).symm
+  (map_prod (invMonoidHom : γ →* γ) _ f.support).symm
 #align dfinsupp.prod_inv DFinsupp.prod_inv
 #align dfinsupp.sum_neg DFinsupp.sum_neg
 
@@ -2159,7 +2159,7 @@ theorem prod_subtypeDomain_index [∀ i, Zero (β i)] [∀ (i) (x : β i), Decid
 theorem subtypeDomain_sum [∀ i, AddCommMonoid (β i)] {s : Finset γ} {h : γ → Π₀ i, β i}
     {p : ι → Prop} [DecidablePred p] :
     (∑ c in s, h c).subtypeDomain p = ∑ c in s, (h c).subtypeDomain p :=
-  (subtypeDomainAddMonoidHom β p).map_sum _ s
+  map_sum (subtypeDomainAddMonoidHom β p) _ s
 #align dfinsupp.subtype_domain_sum DFinsupp.subtypeDomain_sum
 
 theorem subtypeDomain_finsupp_sum {δ : γ → Type x} [DecidableEq γ] [∀ c, Zero (δ c)]
fix(Mathlib/Algebra/Lie/DirectSum): remove unused R argument from lemmas (#8388)

This made them not actually work as a simp lemma.

Also extracts a common result that can be used to prove single_add for DFinsupp and Finsupp, and a new Finsupp.single_mul lemma.

Diff
@@ -746,6 +746,21 @@ theorem equivFunOnFintype_symm_single [Fintype ι] (i : ι) (m : β i) :
   simp only [← single_eq_pi_single, equivFunOnFintype_symm_coe]
 #align dfinsupp.equiv_fun_on_fintype_symm_single DFinsupp.equivFunOnFintype_symm_single
 
+section SingleAndZipWith
+
+variable [∀ i, Zero (β₁ i)] [∀ i, Zero (β₂ i)]
+@[simp]
+theorem zipWith_single_single (f : ∀ i, β₁ i → β₂ i → β i) (hf : ∀ i, f i 0 0 = 0)
+    {i} (b₁ : β₁ i) (b₂ : β₂ i) :
+      zipWith f hf (single i b₁) (single i b₂) = single i (f i b₁ b₂) := by
+  ext j
+  rw [zipWith_apply]
+  obtain rfl | hij := Decidable.eq_or_ne i j
+  · rw [single_eq_same, single_eq_same, single_eq_same]
+  · rw [single_eq_of_ne hij, single_eq_of_ne hij, single_eq_of_ne hij, hf]
+
+end SingleAndZipWith
+
 /-- Redefine `f i` to be `0`. -/
 def erase (i : ι) (x : Π₀ i, β i) : Π₀ i, β i :=
   ⟨fun j ↦ if j = i then 0 else x.1 j,
@@ -885,11 +900,7 @@ variable [∀ i, AddZeroClass (β i)]
 
 @[simp]
 theorem single_add (i : ι) (b₁ b₂ : β i) : single i (b₁ + b₂) = single i b₁ + single i b₂ :=
-  ext fun i' => by
-    by_cases h : i = i'
-    · subst h
-      simp only [add_apply, single_eq_same]
-    · simp only [add_apply, single_eq_of_ne h, zero_add]
+  (zipWith_single_single (fun _ => (· + ·)) _ b₁ b₂).symm
 #align dfinsupp.single_add DFinsupp.single_add
 
 @[simp]
fix: correct precedence for coercion arrows (#8297)

The new precedences match coeNotation in core:

syntax:1024 (name := coeNotation) "↑" term:1024 : term

They also match the precedence in Lean 3.

Diff
@@ -295,7 +295,7 @@ instance addCommMonoid [∀ i, AddCommMonoid (β i)] : AddCommMonoid (Π₀ i, 
 
 @[simp]
 theorem coe_finset_sum {α} [∀ i, AddCommMonoid (β i)] (s : Finset α) (g : α → Π₀ i, β i) :
-    ⇑(∑ a in s, g a) = ∑ a in s, ⇑g a :=
+    ⇑(∑ a in s, g a) = ∑ a in s, ⇑(g a) :=
   (coeFnAddMonoidHom : _ →+ ∀ i, β i).map_sum g s
 #align dfinsupp.coe_finset_sum DFinsupp.coe_finset_sum
 
@@ -2272,7 +2272,7 @@ variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
 @[to_additive]
 theorem coe_dfinsupp_prod [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀ i, β i → R →* S) :
-    ⇑(f.prod g) = f.prod fun a b => ⇑g a b :=
+    ⇑(f.prod g) = f.prod fun a b => ⇑(g a b) :=
   coe_finset_prod _ _
 #align monoid_hom.coe_dfinsupp_prod MonoidHom.coe_dfinsupp_prod
 #align add_monoid_hom.coe_dfinsupp_sum AddMonoidHom.coe_dfinsupp_sum
chore: remove nonterminal simp (#7580)

Removes nonterminal simps on lines looking like simp [...]

Diff
@@ -1256,7 +1256,8 @@ theorem erase_def (i : ι) (f : Π₀ i, β i) : f.erase i = mk (f.support.erase
 theorem support_erase (i : ι) (f : Π₀ i, β i) : (f.erase i).support = f.support.erase i := by
   ext j
   by_cases h1 : j = i
-  simp [h1]
+  simp only [h1, mem_support_toFun, erase_apply, ite_true, ne_eq, not_true, not_not,
+    Finset.mem_erase, false_and]
   by_cases h2 : f j ≠ 0 <;> simp at h2 <;> simp [h1, h2]
 #align dfinsupp.support_erase DFinsupp.support_erase
 
feat: IsCancelAdd instances for (d)finsupp and monoid algebra (#7582)

The left and right versions would be pointless on AddMonoidAlgebra as addition is commutative.

Diff
@@ -247,6 +247,17 @@ theorem coe_add [∀ i, AddZeroClass (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g
 instance addZeroClass [∀ i, AddZeroClass (β i)] : AddZeroClass (Π₀ i, β i) :=
   FunLike.coe_injective.addZeroClass _ coe_zero coe_add
 
+instance instIsLeftCancelAdd [∀ i, AddZeroClass (β i)] [∀ i, IsLeftCancelAdd (β i)] :
+    IsLeftCancelAdd (Π₀ i, β i) where
+  add_left_cancel _ _ _ h := ext fun x => add_left_cancel <| FunLike.congr_fun h x
+
+instance instIsRightCancelAdd [∀ i, AddZeroClass (β i)] [∀ i, IsRightCancelAdd (β i)] :
+    IsRightCancelAdd (Π₀ i, β i) where
+  add_right_cancel _ _ _ h := ext fun x => add_right_cancel <| FunLike.congr_fun h x
+
+instance instIsCancelAdd [∀ i, AddZeroClass (β i)] [∀ i, IsCancelAdd (β i)] :
+    IsCancelAdd (Π₀ i, β i) where
+
 /-- Note the general `SMul` instance doesn't apply as `ℕ` is not distributive
 unless `β i`'s addition is commutative. -/
 instance hasNatScalar [∀ i, AddMonoid (β i)] : SMul ℕ (Π₀ i, β i) :=
chore: realign map_dfinsupp_sum/prod (#7190)
Diff
@@ -2255,8 +2255,8 @@ variable {R S : Type*}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
-#noalign monoid_hom.map_dfinsupp_prod
-#noalign add_monoid_hom.map_dfinsupp_sum
+#align monoid_hom.map_dfinsupp_prod map_dfinsupp_prodₓ
+#align add_monoid_hom.map_dfinsupp_sum map_dfinsupp_sumₓ
 
 @[to_additive]
 theorem coe_dfinsupp_prod [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀ i, β i → R →* S) :
@@ -2274,10 +2274,10 @@ theorem dfinsupp_prod_apply [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : 
 
 end MonoidHom
 
-#noalign ring_hom.map_dfinsupp_prod
-#noalign ring_hom.map_dfinsupp_sum
-#noalign mul_equiv.map_dfinsupp_prod
-#noalign add_equiv.map_dfinsupp_sum
+#align ring_hom.map_dfinsupp_prod map_dfinsupp_prodₓ
+#align ring_hom.map_dfinsupp_sum map_dfinsupp_sumₓ
+#align mul_equiv.map_dfinsupp_prod map_dfinsupp_prodₓ
+#align add_equiv.map_dfinsupp_sum map_dfinsupp_sumₓ
 
 /-! The above lemmas, repeated for `DFinsupp.sumAddHom`. -/
 
chore: unify map_dfinsupp_sum/prod lemmas (#7151)
Diff
@@ -1710,6 +1710,13 @@ def prod [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMon
 #align dfinsupp.prod DFinsupp.prod
 #align dfinsupp.sum DFinsupp.sum
 
+@[to_additive (attr := simp)]
+theorem _root_.map_dfinsupp_prod
+    {R S H : Type*} [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
+    [CommMonoid R] [CommMonoid S] [MonoidHomClass H R S] (h : H) (f : Π₀ i, β i)
+    (g : ∀ i, β i → R) : h (f.prod g) = f.prod fun a b => h (g a b) :=
+  map_prod _ _ _
+
 @[to_additive]
 theorem prod_mapRange_index {β₁ : ι → Type v₁} {β₂ : ι → Type v₂} [∀ i, Zero (β₁ i)]
     [∀ i, Zero (β₂ i)] [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ (i) (x : β₂ i), Decidable (x ≠ 0)]
@@ -2248,12 +2255,8 @@ variable {R S : Type*}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
-@[to_additive (attr := simp)]
-theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R →* S) (f : Π₀ i, β i)
-    (g : ∀ i, β i → R) : h (f.prod g) = f.prod fun a b => h (g a b) :=
-  h.map_prod _ _
-#align monoid_hom.map_dfinsupp_prod MonoidHom.map_dfinsupp_prod
-#align add_monoid_hom.map_dfinsupp_sum AddMonoidHom.map_dfinsupp_sum
+#noalign monoid_hom.map_dfinsupp_prod
+#noalign add_monoid_hom.map_dfinsupp_sum
 
 @[to_additive]
 theorem coe_dfinsupp_prod [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : ∀ i, β i → R →* S) :
@@ -2271,40 +2274,10 @@ theorem dfinsupp_prod_apply [Monoid R] [CommMonoid S] (f : Π₀ i, β i) (g : 
 
 end MonoidHom
 
-namespace RingHom
-
-variable {R S : Type*}
-
-variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
-
-@[simp]
-theorem map_dfinsupp_prod [CommSemiring R] [CommSemiring S] (h : R →+* S) (f : Π₀ i, β i)
-    (g : ∀ i, β i → R) : h (f.prod g) = f.prod fun a b => h (g a b) :=
-  h.map_prod _ _
-#align ring_hom.map_dfinsupp_prod RingHom.map_dfinsupp_prod
-
-@[simp]
-theorem map_dfinsupp_sum [NonAssocSemiring R] [NonAssocSemiring S] (h : R →+* S) (f : Π₀ i, β i)
-    (g : ∀ i, β i → R) : h (f.sum g) = f.sum fun a b => h (g a b) :=
-  h.map_sum _ _
-#align ring_hom.map_dfinsupp_sum RingHom.map_dfinsupp_sum
-
-end RingHom
-
-namespace MulEquiv
-
-variable {R S : Type*}
-
-variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
-
-@[to_additive (attr := simp)]
-theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R ≃* S) (f : Π₀ i, β i)
-    (g : ∀ i, β i → R) : h (f.prod g) = f.prod fun a b => h (g a b) :=
-  h.map_prod _ _
-#align mul_equiv.map_dfinsupp_prod MulEquiv.map_dfinsupp_prod
-#align add_equiv.map_dfinsupp_sum AddEquiv.map_dfinsupp_sum
-
-end MulEquiv
+#noalign ring_hom.map_dfinsupp_prod
+#noalign ring_hom.map_dfinsupp_sum
+#noalign mul_equiv.map_dfinsupp_prod
+#noalign add_equiv.map_dfinsupp_sum
 
 /-! The above lemmas, repeated for `DFinsupp.sumAddHom`. -/
 
style: fix wrapping of where (#7149)
Diff
@@ -359,18 +359,18 @@ theorem coe_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction
 
 instance smulCommClass {δ : Type*} [Monoid γ] [Monoid δ] [∀ i, AddMonoid (β i)]
     [∀ i, DistribMulAction γ (β i)] [∀ i, DistribMulAction δ (β i)] [∀ i, SMulCommClass γ δ (β i)] :
-    SMulCommClass γ δ (Π₀ i, β i)
-    where smul_comm r s m := ext fun i => by simp only [smul_apply, smul_comm r s (m i)]
+    SMulCommClass γ δ (Π₀ i, β i) where
+  smul_comm r s m := ext fun i => by simp only [smul_apply, smul_comm r s (m i)]
 
 instance isScalarTower {δ : Type*} [Monoid γ] [Monoid δ] [∀ i, AddMonoid (β i)]
     [∀ i, DistribMulAction γ (β i)] [∀ i, DistribMulAction δ (β i)] [SMul γ δ]
-    [∀ i, IsScalarTower γ δ (β i)] : IsScalarTower γ δ (Π₀ i, β i)
-    where smul_assoc r s m := ext fun i => by simp only [smul_apply, smul_assoc r s (m i)]
+    [∀ i, IsScalarTower γ δ (β i)] : IsScalarTower γ δ (Π₀ i, β i) where
+  smul_assoc r s m := ext fun i => by simp only [smul_apply, smul_assoc r s (m i)]
 
 instance isCentralScalar [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
     [∀ i, DistribMulAction γᵐᵒᵖ (β i)] [∀ i, IsCentralScalar γ (β i)] :
-    IsCentralScalar γ (Π₀ i, β i)
-    where op_smul_eq_smul r m := ext fun i => by simp only [smul_apply, op_smul_eq_smul r (m i)]
+    IsCentralScalar γ (Π₀ i, β i) where
+  op_smul_eq_smul r m := ext fun i => by simp only [smul_apply, op_smul_eq_smul r (m i)]
 
 /-- Dependent functions with finite support inherit a `DistribMulAction` structure from such a
 structure on each coordinate. -/
chore: remove some no longer relevant porting notes (#7108)
Diff
@@ -1967,7 +1967,7 @@ bounded `iSup` can be produced from taking a finite number of non-zero elements
 satisfy `p i`, coercing them to `γ`, and summing them. -/
 theorem _root_.AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom (p : ι → Prop) [DecidablePred p]
     [AddCommMonoid γ] (S : ι → AddSubmonoid γ) :
-    ⨆ (i) (_ : p i), S i = -- Porting note: Removing `h` results in a timeout
+    ⨆ (i) (_ : p i), S i =
       AddMonoidHom.mrange ((sumAddHom fun i => (S i).subtype).comp (filterAddMonoidHom _ p)) := by
   apply le_antisymm
   · refine' iSup₂_le fun i hi y hy => ⟨DFinsupp.single i ⟨y, hy⟩, _⟩
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
@@ -357,12 +357,12 @@ theorem coe_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction
   rfl
 #align dfinsupp.coe_smul DFinsupp.coe_smul
 
-instance smulCommClass {δ : Type _} [Monoid γ] [Monoid δ] [∀ i, AddMonoid (β i)]
+instance smulCommClass {δ : Type*} [Monoid γ] [Monoid δ] [∀ i, AddMonoid (β i)]
     [∀ i, DistribMulAction γ (β i)] [∀ i, DistribMulAction δ (β i)] [∀ i, SMulCommClass γ δ (β i)] :
     SMulCommClass γ δ (Π₀ i, β i)
     where smul_comm r s m := ext fun i => by simp only [smul_apply, smul_comm r s (m i)]
 
-instance isScalarTower {δ : Type _} [Monoid γ] [Monoid δ] [∀ i, AddMonoid (β i)]
+instance isScalarTower {δ : Type*} [Monoid γ] [Monoid δ] [∀ i, AddMonoid (β i)]
     [∀ i, DistribMulAction γ (β i)] [∀ i, DistribMulAction δ (β i)] [SMul γ δ]
     [∀ i, IsScalarTower γ δ (β i)] : IsScalarTower γ δ (Π₀ i, β i)
     where smul_assoc r s m := ext fun i => by simp only [smul_apply, smul_assoc r s (m i)]
@@ -761,7 +761,7 @@ theorem piecewise_single_erase (x : Π₀ i, β i) (i : ι)
   · exact erase_ne h
 #align dfinsupp.piecewise_single_erase DFinsupp.piecewise_single_erase
 
-theorem erase_eq_sub_single {β : ι → Type _} [∀ i, AddGroup (β i)] (f : Π₀ i, β i) (i : ι) :
+theorem erase_eq_sub_single {β : ι → Type*} [∀ i, AddGroup (β i)] (f : Π₀ i, β i) (i : ι) :
     f.erase i = f - single i (f i) := by
   ext j
   rcases eq_or_ne i j with (rfl | h)
@@ -843,7 +843,7 @@ theorem update_eq_erase : f.update i 0 = f.erase i := by
   · simp [hi.symm]
 #align dfinsupp.update_eq_erase DFinsupp.update_eq_erase
 
-theorem update_eq_single_add_erase {β : ι → Type _} [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i)
+theorem update_eq_single_add_erase {β : ι → Type*} [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i)
     (i : ι) (b : β i) : f.update i b = single i b + f.erase i := by
   ext j
   rcases eq_or_ne i j with (rfl | h)
@@ -851,7 +851,7 @@ theorem update_eq_single_add_erase {β : ι → Type _} [∀ i, AddZeroClass (β
   · simp [Function.update_noteq h.symm, h, erase_ne, h.symm]
 #align dfinsupp.update_eq_single_add_erase DFinsupp.update_eq_single_add_erase
 
-theorem update_eq_erase_add_single {β : ι → Type _} [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i)
+theorem update_eq_erase_add_single {β : ι → Type*} [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i)
     (i : ι) (b : β i) : f.update i b = f.erase i + single i b := by
   ext j
   rcases eq_or_ne i j with (rfl | h)
@@ -859,7 +859,7 @@ theorem update_eq_erase_add_single {β : ι → Type _} [∀ i, AddZeroClass (β
   · simp [Function.update_noteq h.symm, h, erase_ne, h.symm]
 #align dfinsupp.update_eq_erase_add_single DFinsupp.update_eq_erase_add_single
 
-theorem update_eq_sub_add_single {β : ι → Type _} [∀ i, AddGroup (β i)] (f : Π₀ i, β i) (i : ι)
+theorem update_eq_sub_add_single {β : ι → Type*} [∀ i, AddGroup (β i)] (f : Π₀ i, β i) (i : ι)
     (b : β i) : f.update i b = f - single i (f i) + single i b := by
   rw [update_eq_erase_add_single f i b, erase_eq_sub_single f i]
 #align dfinsupp.update_eq_sub_add_single DFinsupp.update_eq_sub_add_single
@@ -1323,7 +1323,7 @@ section Equiv
 
 open Finset
 
-variable {κ : Type _}
+variable {κ : Type*}
 
 /-- Reindexing (and possibly removing) terms of a dfinsupp.-/
 noncomputable def comapDomain [∀ i, Zero (β i)] (h : κ → ι) (hh : Function.Injective h)
@@ -1447,7 +1447,7 @@ def equivCongrLeft [∀ i, Zero (β i)] (h : ι ≃ κ) : (Π₀ i, β i) ≃ Π
 
 section SigmaCurry
 
-variable {α : ι → Type _} {δ : ∀ i, α i → Type v}
+variable {α : ι → Type*} {δ : ∀ i, α i → Type v}
 
 -- lean can't find these instances -- Porting note: but Lean 4 can!!!
 instance hasAdd₂ [∀ i j, AddZeroClass (δ i j)] : Add (Π₀ (i : ι) (j : α i), δ i j) :=
@@ -1756,7 +1756,7 @@ theorem prod_neg_index [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (
 #align dfinsupp.sum_neg_index DFinsupp.sum_neg_index
 
 @[to_additive]
-theorem prod_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂ : ι₂ → Type _} [DecidableEq ι₁]
+theorem prod_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type*} {β₂ : ι₂ → Type*} [DecidableEq ι₁]
     [DecidableEq ι₂] [∀ i, Zero (β₁ i)] [∀ i, Zero (β₂ i)] [∀ (i) (x : β₁ i), Decidable (x ≠ 0)]
     [∀ (i) (x : β₂ i), Decidable (x ≠ 0)] [CommMonoid γ] (f₁ : Π₀ i, β₁ i) (f₂ : Π₀ i, β₂ i)
     (h : ∀ i, β₁ i → ∀ i, β₂ i → γ) :
@@ -1815,7 +1815,7 @@ theorem prod_eq_one [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0
 #align dfinsupp.prod_eq_one DFinsupp.prod_eq_one
 #align dfinsupp.sum_eq_zero DFinsupp.sum_eq_zero
 
-theorem smul_sum {α : Type _} [Monoid α] [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
+theorem smul_sum {α : Type*} [Monoid α] [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     [AddCommMonoid γ] [DistribMulAction α γ] {f : Π₀ i, β i} {h : ∀ i, β i → γ} {c : α} :
     c • f.sum h = f.sum fun a b => c • h a b :=
   Finset.smul_sum
@@ -1843,7 +1843,7 @@ theorem prod_add_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decida
 
 @[to_additive]
 theorem _root_.dfinsupp_prod_mem [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
-    [CommMonoid γ] {S : Type _} [SetLike S γ] [SubmonoidClass S γ]
+    [CommMonoid γ] {S : Type*} [SetLike S γ] [SubmonoidClass S γ]
     (s : S) (f : Π₀ i, β i) (g : ∀ i, β i → γ)
     (h : ∀ c, f c ≠ 0 → g c (f c) ∈ s) : f.prod g ∈ s :=
   prod_mem fun _ hi => h _ <| mem_support_iff.1 hi
@@ -1939,7 +1939,7 @@ theorem sumAddHom_apply [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decida
   rw [not_not.mp h, AddMonoidHom.map_zero]
 #align dfinsupp.sum_add_hom_apply DFinsupp.sumAddHom_apply
 
-theorem _root_.dfinsupp_sumAddHom_mem [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] {S : Type _}
+theorem _root_.dfinsupp_sumAddHom_mem [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] {S : Type*}
     [SetLike S γ] [AddSubmonoidClass S γ] (s : S) (f : Π₀ i, β i) (g : ∀ i, β i →+ γ)
     (h : ∀ c, f c ≠ 0 → g c (f c) ∈ s) : DFinsupp.sumAddHom g f ∈ s := by
   classical
@@ -2002,7 +2002,7 @@ theorem _root_.AddSubmonoid.mem_bsupr_iff_exists_dfinsupp (p : ι → Prop) [Dec
   SetLike.ext_iff.mp (AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom p S) x
 #align add_submonoid.mem_bsupr_iff_exists_dfinsupp AddSubmonoid.mem_bsupr_iff_exists_dfinsupp
 
-theorem sumAddHom_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂ : ι₂ → Type _} {γ : Type _}
+theorem sumAddHom_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type*} {β₂ : ι₂ → Type*} {γ : Type*}
     [DecidableEq ι₁] [DecidableEq ι₂] [∀ i, AddZeroClass (β₁ i)] [∀ i, AddZeroClass (β₂ i)]
     [AddCommMonoid γ] (f₁ : Π₀ i, β₁ i) (f₂ : Π₀ i, β₂ i) (h : ∀ i j, β₁ i →+ β₂ j →+ γ) :
     sumAddHom (fun i₂ => sumAddHom (fun i₁ => h i₁ i₂) f₁) f₂ =
@@ -2047,7 +2047,7 @@ theorem liftAddHom_comp_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (
 #align dfinsupp.lift_add_hom_comp_single DFinsupp.liftAddHom_comp_single
 
 /-- The `DFinsupp` version of `Finsupp.comp_liftAddHom`,-/
-theorem comp_liftAddHom {δ : Type _} [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] [AddCommMonoid δ]
+theorem comp_liftAddHom {δ : Type*} [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] [AddCommMonoid δ]
     (g : γ →+ δ) (f : ∀ i, β i →+ γ) :
     g.comp (liftAddHom (β := β) f) = liftAddHom (β := β) fun a => g.comp (f a) :=
   (liftAddHom (β := β)).symm_apply_eq.1 <|
@@ -2073,7 +2073,7 @@ theorem sumAddHom_singleAddHom [∀ i, AddCommMonoid (β i)] :
   liftAddHom_singleAddHom
 #align dfinsupp.sum_add_hom_single_add_hom DFinsupp.sumAddHom_singleAddHom
 
-theorem comp_sumAddHom {δ : Type _} [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] [AddCommMonoid δ]
+theorem comp_sumAddHom {δ : Type*} [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] [AddCommMonoid δ]
     (g : γ →+ δ) (f : ∀ i, β i →+ γ) : g.comp (sumAddHom f) = sumAddHom fun a => g.comp (f a) :=
   comp_liftAddHom _ _
 #align dfinsupp.comp_sum_add_hom DFinsupp.comp_sumAddHom
@@ -2244,7 +2244,7 @@ variable [DecidableEq ι]
 
 namespace MonoidHom
 
-variable {R S : Type _}
+variable {R S : Type*}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
@@ -2273,7 +2273,7 @@ end MonoidHom
 
 namespace RingHom
 
-variable {R S : Type _}
+variable {R S : Type*}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
@@ -2293,7 +2293,7 @@ end RingHom
 
 namespace MulEquiv
 
-variable {R S : Type _}
+variable {R S : Type*}
 
 variable [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
 
@@ -2311,7 +2311,7 @@ end MulEquiv
 
 namespace AddMonoidHom
 
-variable {R S : Type _}
+variable {R S : Type*}
 
 open DFinsupp
 
@@ -2339,7 +2339,7 @@ end AddMonoidHom
 
 namespace RingHom
 
-variable {R S : Type _}
+variable {R S : Type*}
 
 open DFinsupp
 
@@ -2354,7 +2354,7 @@ end RingHom
 
 namespace AddEquiv
 
-variable {R S : Type _}
+variable {R S : Type*}
 
 open DFinsupp
 
feat: make Dfinsupp.sigmaCurry computable (#1947)

mathlib3 PR: https://github.com/leanprover-community/mathlib/pull/18316

Diff
@@ -1445,7 +1445,7 @@ def equivCongrLeft [∀ i, Zero (β i)] (h : ι ≃ κ) : (Π₀ i, β i) ≃ Π
 #align dfinsupp.equiv_congr_left DFinsupp.equivCongrLeft
 #align dfinsupp.equiv_congr_left_apply DFinsupp.equivCongrLeft_apply
 
-section Curry
+section SigmaCurry
 
 variable {α : ι → Type _} {δ : ∀ i, α i → Type v}
 
@@ -1470,66 +1470,49 @@ instance distribMulAction₂ [Monoid γ] [∀ i j, AddMonoid (δ i j)]
   @DFinsupp.distribMulAction ι _ (fun i => Π₀ j, δ i j) _ _ _
 #align dfinsupp.distrib_mul_action₂ DFinsupp.distribMulAction₂
 
-/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /-- The natural map between `Π₀ (i : Σ i, α i), δ i.1 i.2` and `Π₀ i (j : α i), δ i j`.  -/
-noncomputable def sigmaCurry [∀ i j, Zero (δ i j)] (f : Π₀ i : Σi, _, δ i.1 i.2) :
-    Π₀ (i) (j), δ i j := by
-  classical!
-  exact mk (f.support.image fun i => i.1) fun i =>
-    mk (f.support.preimage (⟨i, ·⟩) $ sigma_mk_injective.injOn _) fun j => f ⟨i, j⟩
-#align dfinsupp.sigma_curry DFinsupp.sigmaCurry
-
-@[simp]
-theorem sigmaCurry_apply [∀ i j, Zero (δ i j)] (f : Π₀ i : Σi, _, δ i.1 i.2) (i : ι) (j : α i) :
-    sigmaCurry f i j = f ⟨i, j⟩ := by
-  classical! -- Porting note: added
-  dsimp only [sigmaCurry]; by_cases h : f ⟨i, j⟩ = 0
-  · rw [h]
-    rw [mk_apply (dec := fun a b ↦ Classical.propDecidable (a = b))]
-    split_ifs
-    · rw [mk_apply (dec := fun a b ↦ Classical.propDecidable (a = b))]
-      split_ifs
-      · exact h
-      · rfl
-    · rfl
-  · rw [mk_of_mem (dec := fun a b ↦ Classical.propDecidable (a = b)) ?h₁,
-        mk_of_mem (dec := fun a b ↦ Classical.propDecidable (a = b))]
-    case h₁ =>
-      rw [@mem_image _ _ (fun a b ↦ Classical.propDecidable (a = b))]
-      refine' ⟨⟨i, j⟩, _, rfl⟩
-      convert (mem_support_toFun f _).2 h
-    · rw [mem_preimage]
-      convert (mem_support_toFun f _).2 h
+def sigmaCurry [∀ i j, Zero (δ i j)] (f : Π₀ (i : Σ _, _), δ i.1 i.2) :
+    Π₀ (i) (j), δ i j where
+  toFun := fun i ↦
+  { toFun := fun j ↦ f ⟨i, j⟩,
+    support' := f.support'.map (fun ⟨m, hm⟩ ↦
+      ⟨m.filterMap (fun ⟨i', j'⟩ ↦ if h : i' = i then some $ h.rec j' else none),
+        fun j ↦ (hm ⟨i, j⟩).imp_left (fun h ↦ (m.mem_filterMap _).mpr ⟨⟨i, j⟩, h, dif_pos rfl⟩)⟩) }
+  support' := f.support'.map (fun ⟨m, hm⟩ ↦
+    ⟨m.map Sigma.fst, fun i ↦ Decidable.or_iff_not_imp_left.mpr (fun h ↦ DFinsupp.ext
+      (fun j ↦ (hm ⟨i, j⟩).resolve_left (fun H ↦ (Multiset.mem_map.not.mp h) ⟨⟨i, j⟩, H, rfl⟩)))⟩)
+
+@[simp]
+theorem sigmaCurry_apply [∀ i j, Zero (δ i j)] (f : Π₀ (i : Σ _, _), δ i.1 i.2) (i : ι) (j : α i) :
+    sigmaCurry f i j = f ⟨i, j⟩ :=
+  rfl
 #align dfinsupp.sigma_curry_apply DFinsupp.sigmaCurry_apply
 
 @[simp]
-theorem sigmaCurry_zero [∀ i j, Zero (δ i j)] : sigmaCurry (0 : Π₀ i : Σi, _, δ i.1 i.2) = 0 := by
-  ext i j
-  rw [sigmaCurry_apply]
+theorem sigmaCurry_zero [∀ i j, Zero (δ i j)] :
+    sigmaCurry (0 : Π₀ (i : Σ _, _), δ i.1 i.2) = 0 :=
   rfl
 #align dfinsupp.sigma_curry_zero DFinsupp.sigmaCurry_zero
 
 @[simp]
-theorem sigmaCurry_add [∀ i j, AddZeroClass (δ i j)] (f g : Π₀ i : Σi, α i, δ i.1 i.2) :
-    @sigmaCurry _ _ δ _ (f + g) = @sigmaCurry _ _ δ _ f + @sigmaCurry ι α δ _ g := by
-  ext i j
-  rw [@add_apply _ (fun i => Π₀ j, δ i j) _ (sigmaCurry _), add_apply, sigmaCurry_apply,
-    sigmaCurry_apply, sigmaCurry_apply, add_apply]
+theorem sigmaCurry_add [∀ i j, AddZeroClass (δ i j)] (f g : Π₀ (i : Σ _, _), δ i.1 i.2) :
+    sigmaCurry (f + g) = sigmaCurry f + sigmaCurry g := by
+  ext (i j)
+  rfl
 #align dfinsupp.sigma_curry_add DFinsupp.sigmaCurry_add
 
 @[simp]
 theorem sigmaCurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)] [∀ i j, DistribMulAction γ (δ i j)]
-    (r : γ) (f : Π₀ i : Σi, α i, δ i.1 i.2) :
-    @sigmaCurry _ _ δ _ (r • f) = r • @sigmaCurry _ _ δ _ f := by
-  ext i j
-  rw [@smul_apply _ _ (fun i => Π₀ j, δ i j) _ _ _ _ (sigmaCurry _), smul_apply, sigmaCurry_apply,
-    sigmaCurry_apply, smul_apply]
+    (r : γ) (f : Π₀ (i : Σ _, _), δ i.1 i.2) :
+    sigmaCurry (r • f) = r • sigmaCurry f := by
+  ext (i j)
+  rfl
 #align dfinsupp.sigma_curry_smul DFinsupp.sigmaCurry_smul
 
 @[simp]
 theorem sigmaCurry_single [∀ i, DecidableEq (α i)] [∀ i j, Zero (δ i j)]
-    (ij : Σi, α i) (x : δ ij.1 ij.2) :
-    @sigmaCurry _ _ _ _ (single ij x) = single ij.1 (single ij.2 x : Π₀ j, δ ij.1 j) := by
+    (ij : Σ i, α i) (x : δ ij.1 ij.2) :
+    sigmaCurry (single ij x) = single ij.1 (single ij.2 x : Π₀ j, δ ij.1 j) := by
   obtain ⟨i, j⟩ := ij
   ext i' j'
   dsimp only
@@ -1621,7 +1604,7 @@ theorem sigmaUncurry_single [∀ i j, Zero (δ i j)]
 /-- The natural bijection between `Π₀ (i : Σ i, α i), δ i.1 i.2` and `Π₀ i (j : α i), δ i j`.
 
 This is the dfinsupp version of `Equiv.piCurry`. -/
-noncomputable def sigmaCurryEquiv [∀ i j, Zero (δ i j)]
+def sigmaCurryEquiv [∀ i j, Zero (δ i j)]
     [∀ i, DecidableEq (α i)] [∀ i j (x : δ i j), Decidable (x ≠ 0)] :
     (Π₀ i : Σi, _, δ i.1 i.2) ≃ Π₀ (i) (j), δ i j
     where
@@ -1635,7 +1618,7 @@ noncomputable def sigmaCurryEquiv [∀ i j, Zero (δ i j)]
     rw [sigmaCurry_apply, sigmaUncurry_apply]
 #align dfinsupp.sigma_curry_equiv DFinsupp.sigmaCurryEquiv
 
-end Curry
+end SigmaCurry
 
 variable {α : Option ι → Type v}
 
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,11 +2,6 @@
 Copyright (c) 2018 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Kenny Lau
-
-! This file was ported from Lean 3 source module data.dfinsupp.basic
-! leanprover-community/mathlib commit 6623e6af705e97002a9054c1c05a980180276fc1
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.Module.LinearMap
 import Mathlib.Algebra.BigOperators.Basic
@@ -15,6 +10,8 @@ import Mathlib.GroupTheory.Submonoid.Membership
 import Mathlib.GroupTheory.GroupAction.BigOperators
 import Mathlib.Data.Finset.Preimage
 
+#align_import data.dfinsupp.basic from "leanprover-community/mathlib"@"6623e6af705e97002a9054c1c05a980180276fc1"
+
 /-!
 # Dependent functions with finite support
 
feat: Encodable and Countable instances for Π₀ i, α i and α →₀ β (#5875)

Fixes #5776

Diff
@@ -1129,6 +1129,32 @@ theorem eq_mk_support (f : Π₀ i, β i) : f = mk f.support fun i => f i := by
   by_cases h : f i ≠ 0 <;> [skip; rw [not_not] at h] <;> simp [h]
 #align dfinsupp.eq_mk_support DFinsupp.eq_mk_support
 
+/-- Equivalence between dependent functions with finite support `s : Finset ι` and functions
+`∀ i, {x : β i // x ≠ 0}`. -/
+@[simps]
+def subtypeSupportEqEquiv (s : Finset ι) :
+    {f : Π₀ i, β i // f.support = s} ≃ ∀ i : s, {x : β i // x ≠ 0} where
+  toFun | ⟨f, hf⟩ => fun ⟨i, hi⟩ ↦ ⟨f i, (f.mem_support_toFun i).1 <| hf.symm ▸ hi⟩
+  invFun f := ⟨mk s fun i ↦ (f i).1, Finset.ext fun i ↦ by
+    -- TODO: `simp` fails to use `(f _).2` inside `∃ _, _`
+    calc
+      i ∈ support (mk s fun i ↦ (f i).1) ↔ ∃ h : i ∈ s, (f ⟨i, h⟩).1 ≠ 0 := by simp
+      _ ↔ ∃ _ : i ∈ s, True := exists_congr fun h ↦ (iff_true _).mpr (f _).2
+      _ ↔ i ∈ s := by simp⟩
+  left_inv := by
+    rintro ⟨f, rfl⟩
+    ext i
+    simpa using Eq.symm
+  right_inv f := by
+    ext1
+    simp [Subtype.eta]; rfl
+
+/-- Equivalence between all dependent finitely supported functions `f : Π₀ i, β i` and type
+of pairs `⟨s : Finset ι, f : ∀ i : s, {x : β i // x ≠ 0}⟩`. -/
+@[simps! apply_fst apply_snd_coe]
+def sigmaFinsetFunEquiv : (Π₀ i, β i) ≃ Σ s : Finset ι, ∀ i : s, {x : β i // x ≠ 0} :=
+  (Equiv.sigmaFiberEquiv DFinsupp.support).symm.trans (.sigmaCongrRight subtypeSupportEqEquiv)
+
 @[simp]
 theorem support_zero : (0 : Π₀ i, β i).support = ∅ :=
   rfl
chore: rename Dfinsupp to DFinsupp (#5822)

See #4354

Diff
@@ -22,29 +22,29 @@ For a non-dependent version see `data/finsupp.lean`.
 
 ## Notation
 
-This file introduces the notation `Π₀ a, β a` as notation for `Dfinsupp β`, mirroring the `α →₀ β`
+This file introduces the notation `Π₀ a, β a` as notation for `DFinsupp β`, mirroring the `α →₀ β`
 notation used for `Finsupp`. This works for nested binders too, with `Π₀ a b, γ a b` as notation
-for `Dfinsupp (fun a ↦ Dfinsupp (γ a))`.
+for `DFinsupp (fun a ↦ DFinsupp (γ a))`.
 
 ## Implementation notes
 
-The support is internally represented (in the primed `Dfinsupp.support'`) as a `Multiset` that
+The support is internally represented (in the primed `DFinsupp.support'`) as a `Multiset` that
 represents a superset of the true support of the function, quotiented by the always-true relation so
 that this does not impact equality. This approach has computational benefits over storing a
 `Finset`; it allows us to add together two finitely-supported functions without
 having to evaluate the resulting function to recompute its support (which would required
 decidability of `b = 0` for `b : β i`).
 
-The true support of the function can still be recovered with `Dfinsupp.support`; but these
+The true support of the function can still be recovered with `DFinsupp.support`; but these
 decidability obligations are now postponed to when the support is actually needed. As a consequence,
-there are two ways to sum a `Dfinsupp`: with `Dfinsupp.sum` which works over an arbitrary function
+there are two ways to sum a `DFinsupp`: with `DFinsupp.sum` which works over an arbitrary function
 but requires recomputation of the support and therefore a `Decidable` argument; and with
-`Dfinsupp.sumAddHom` which requires an additive morphism, using its properties to show that
+`DFinsupp.sumAddHom` which requires an additive morphism, using its properties to show that
 summing over a superset of the support is sufficient.
 
 `Finsupp` takes an altogether different approach here; it uses `Classical.Decidable` and declares
 the `Add` instance as noncomputable. This design difference is independent of the fact that
-`Dfinsupp` is dependently-typed and `Finsupp` is not; in future, we may want to align these two
+`DFinsupp` is dependently-typed and `Finsupp` is not; in future, we may want to align these two
 definitions, or introduce two more definitions for the other combinations of decisions.
 -/
 
@@ -59,27 +59,27 @@ variable (β)
 
 /-- A dependent function `Π i, β i` with finite support, with notation `Π₀ i, β i`.
 
-Note that `Dfinsupp.support` is the preferred API for accessing the support of the function,
-`Dfinsupp.support'` is an implementation detail that aids computability; see the implementation
+Note that `DFinsupp.support` is the preferred API for accessing the support of the function,
+`DFinsupp.support'` is an implementation detail that aids computability; see the implementation
 notes in this file for more information. -/
-structure Dfinsupp [∀ i, Zero (β i)] : Type max u v where mk' ::
-  /-- The underlying function of a dependent function with finite support (aka `Dfinsupp`). -/
+structure DFinsupp [∀ i, Zero (β i)] : Type max u v where mk' ::
+  /-- The underlying function of a dependent function with finite support (aka `DFinsupp`). -/
   toFun : ∀ i, β i
-  /-- The support of a dependent function with finite support (aka `Dfinsupp`). -/
+  /-- The support of a dependent function with finite support (aka `DFinsupp`). -/
   support' : Trunc { s : Multiset ι // ∀ i, i ∈ s ∨ toFun i = 0 }
-#align dfinsupp Dfinsupp
+#align dfinsupp DFinsupp
 
 variable {β}
 
 -- mathport name: «exprΠ₀ , »
-/-- `Π₀ i, β i` denotes the type of dependent functions with finite support `Dfinsupp β`. -/
-notation3 "Π₀ "(...)", "r:(scoped f => Dfinsupp f) => r
+/-- `Π₀ i, β i` denotes the type of dependent functions with finite support `DFinsupp β`. -/
+notation3 "Π₀ "(...)", "r:(scoped f => DFinsupp f) => r
 
 -- mathport name: «expr →ₚ »
 @[inherit_doc]
-infixl:25 " →ₚ " => Dfinsupp
+infixl:25 " →ₚ " => DFinsupp
 
-namespace Dfinsupp
+namespace DFinsupp
 
 section Basic
 
@@ -90,7 +90,7 @@ instance funLike : FunLike (Π₀ i, β i) ι β :=
     subst h
     congr
     apply Subsingleton.elim ⟩
-#align dfinsupp.fun_like Dfinsupp.funLike
+#align dfinsupp.fun_like DFinsupp.funLike
 
 /-- Helper instance for when there are too many metavariables to apply `FunLike.coeFunForall`
 directly. -/
@@ -100,22 +100,22 @@ instance : CoeFun (Π₀ i, β i) fun _ => ∀ i, β i :=
 @[simp]
 theorem toFun_eq_coe (f : Π₀ i, β i) : f.toFun = f :=
   rfl
-#align dfinsupp.to_fun_eq_coe Dfinsupp.toFun_eq_coe
+#align dfinsupp.to_fun_eq_coe DFinsupp.toFun_eq_coe
 
 @[ext]
 theorem ext {f g : Π₀ i, β i} (h : ∀ i, f i = g i) : f = g :=
   FunLike.ext _ _ h
-#align dfinsupp.ext Dfinsupp.ext
+#align dfinsupp.ext DFinsupp.ext
 
 @[deprecated FunLike.ext_iff]
 theorem ext_iff {f g : Π₀ i, β i} : f = g ↔ ∀ i, f i = g i :=
   FunLike.ext_iff
-#align dfinsupp.ext_iff Dfinsupp.ext_iff
+#align dfinsupp.ext_iff DFinsupp.ext_iff
 
 @[deprecated FunLike.coe_injective]
 theorem coeFn_injective : @Function.Injective (Π₀ i, β i) (∀ i, β i) (⇑) :=
   FunLike.coe_injective
-#align dfinsupp.coe_fn_injective Dfinsupp.coeFn_injective
+#align dfinsupp.coe_fn_injective DFinsupp.coeFn_injective
 
 instance : Zero (Π₀ i, β i) :=
   ⟨⟨0, Trunc.mk <| ⟨∅, fun _ => Or.inr rfl⟩⟩⟩
@@ -126,16 +126,16 @@ instance : Inhabited (Π₀ i, β i) :=
 @[simp]
 theorem coe_mk' (f : ∀ i, β i) (s) : ⇑(⟨f, s⟩ : Π₀ i, β i) = f :=
   rfl
-#align dfinsupp.coe_mk' Dfinsupp.coe_mk'
+#align dfinsupp.coe_mk' DFinsupp.coe_mk'
 
 @[simp]
 theorem coe_zero : ⇑(0 : Π₀ i, β i) = 0 :=
   rfl
-#align dfinsupp.coe_zero Dfinsupp.coe_zero
+#align dfinsupp.coe_zero DFinsupp.coe_zero
 
 theorem zero_apply (i : ι) : (0 : Π₀ i, β i) i = 0 :=
   rfl
-#align dfinsupp.zero_apply Dfinsupp.zero_apply
+#align dfinsupp.zero_apply DFinsupp.zero_apply
 
 /-- The composition of `f : β₁ → β₂` and `g : Π₀ i, β₁ i` is
   `mapRange f hf g : Π₀ i, β₂ i`, well defined when `f 0 = 0`.
@@ -143,8 +143,8 @@ theorem zero_apply (i : ι) : (0 : Π₀ i, β i) i = 0 :=
 This preserves the structure on `f`, and exists in various bundled forms for when `f` is itself
 bundled:
 
-* `Dfinsupp.mapRange.addMonoidHom`
-* `Dfinsupp.mapRange.addEquiv`
+* `DFinsupp.mapRange.addMonoidHom`
+* `DFinsupp.mapRange.addEquiv`
 * `dfinsupp.mapRange.linearMap`
 * `dfinsupp.mapRange.linearEquiv`
 -/
@@ -152,34 +152,34 @@ def mapRange (f : ∀ i, β₁ i → β₂ i) (hf : ∀ i, f i 0 = 0) (x : Π₀
   ⟨fun i => f i (x i),
     x.support'.map fun s => ⟨s.1, fun i => (s.2 i).imp_right fun h : x i = 0 => by
       rw [← hf i, ← h]⟩⟩
-#align dfinsupp.map_range Dfinsupp.mapRange
+#align dfinsupp.map_range DFinsupp.mapRange
 
 @[simp]
 theorem mapRange_apply (f : ∀ i, β₁ i → β₂ i) (hf : ∀ i, f i 0 = 0) (g : Π₀ i, β₁ i) (i : ι) :
     mapRange f hf g i = f i (g i) :=
   rfl
-#align dfinsupp.map_range_apply Dfinsupp.mapRange_apply
+#align dfinsupp.map_range_apply DFinsupp.mapRange_apply
 
 @[simp]
 theorem mapRange_id (h : ∀ i, id (0 : β₁ i) = 0 := fun i => rfl) (g : Π₀ i : ι, β₁ i) :
     mapRange (fun i => (id : β₁ i → β₁ i)) h g = g := by
   ext
   rfl
-#align dfinsupp.map_range_id Dfinsupp.mapRange_id
+#align dfinsupp.map_range_id DFinsupp.mapRange_id
 
 theorem mapRange_comp (f : ∀ i, β₁ i → β₂ i) (f₂ : ∀ i, β i → β₁ i) (hf : ∀ i, f i 0 = 0)
     (hf₂ : ∀ i, f₂ i 0 = 0) (h : ∀ i, (f i ∘ f₂ i) 0 = 0) (g : Π₀ i : ι, β i) :
     mapRange (fun i => f i ∘ f₂ i) h g = mapRange f hf (mapRange f₂ hf₂ g) := by
   ext
   simp only [mapRange_apply]; rfl
-#align dfinsupp.map_range_comp Dfinsupp.mapRange_comp
+#align dfinsupp.map_range_comp DFinsupp.mapRange_comp
 
 @[simp]
 theorem mapRange_zero (f : ∀ i, β₁ i → β₂ i) (hf : ∀ i, f i 0 = 0) :
     mapRange f hf (0 : Π₀ i, β₁ i) = 0 := by
   ext
   simp only [mapRange_apply, coe_zero, Pi.zero_apply, hf]
-#align dfinsupp.map_range_zero Dfinsupp.mapRange_zero
+#align dfinsupp.map_range_zero DFinsupp.mapRange_zero
 
 /-- Let `f i` be a binary operation `β₁ i → β₂ i → β i` such that `f i 0 0 = 0`.
 Then `zipWith f hf` is a binary operation `Π₀ i, β₁ i → Π₀ i, β₂ i → Π₀ i, β i`. -/
@@ -200,13 +200,13 @@ def zipWith (f : ∀ i, β₁ i → β₂ i → β i) (hf : ∀ i, f i 0 0 = 0)
       right
       exact h2
     right; rw [← hf, ← h1, ← h2]⟩
-#align dfinsupp.zip_with Dfinsupp.zipWith
+#align dfinsupp.zip_with DFinsupp.zipWith
 
 @[simp]
 theorem zipWith_apply (f : ∀ i, β₁ i → β₂ i → β i) (hf : ∀ i, f i 0 0 = 0) (g₁ : Π₀ i, β₁ i)
     (g₂ : Π₀ i, β₂ i) (i : ι) : zipWith f hf g₁ g₂ i = f i (g₁ i) (g₂ i) :=
   rfl
-#align dfinsupp.zip_with_apply Dfinsupp.zipWith_apply
+#align dfinsupp.zip_with_apply DFinsupp.zipWith_apply
 
 section Piecewise
 
@@ -216,17 +216,17 @@ variable (x y : Π₀ i, β i) (s : Set ι) [∀ i, Decidable (i ∈ s)]
   and to `y` on its complement. -/
 def piecewise : Π₀ i, β i :=
   zipWith (fun i x y => if i ∈ s then x else y) (fun _ => ite_self 0) x y
-#align dfinsupp.piecewise Dfinsupp.piecewise
+#align dfinsupp.piecewise DFinsupp.piecewise
 
 theorem piecewise_apply (i : ι) : x.piecewise y s i = if i ∈ s then x i else y i :=
   zipWith_apply _ _ x y i
-#align dfinsupp.piecewise_apply Dfinsupp.piecewise_apply
+#align dfinsupp.piecewise_apply DFinsupp.piecewise_apply
 
 @[simp, norm_cast]
 theorem coe_piecewise : ⇑(x.piecewise y s) = s.piecewise x y := by
   ext
   apply piecewise_apply
-#align dfinsupp.coe_piecewise Dfinsupp.coe_piecewise
+#align dfinsupp.coe_piecewise DFinsupp.coe_piecewise
 
 end Piecewise
 
@@ -240,12 +240,12 @@ instance [∀ i, AddZeroClass (β i)] : Add (Π₀ i, β i) :=
 theorem add_apply [∀ i, AddZeroClass (β i)] (g₁ g₂ : Π₀ i, β i) (i : ι) :
     (g₁ + g₂) i = g₁ i + g₂ i :=
   rfl
-#align dfinsupp.add_apply Dfinsupp.add_apply
+#align dfinsupp.add_apply DFinsupp.add_apply
 
 @[simp]
 theorem coe_add [∀ i, AddZeroClass (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g₁ + g₂) = g₁ + g₂ :=
   rfl
-#align dfinsupp.coe_add Dfinsupp.coe_add
+#align dfinsupp.coe_add DFinsupp.coe_add
 
 instance addZeroClass [∀ i, AddZeroClass (β i)] : AddZeroClass (Π₀ i, β i) :=
   FunLike.coe_injective.addZeroClass _ coe_zero coe_add
@@ -254,33 +254,33 @@ instance addZeroClass [∀ i, AddZeroClass (β i)] : AddZeroClass (Π₀ i, β i
 unless `β i`'s addition is commutative. -/
 instance hasNatScalar [∀ i, AddMonoid (β i)] : SMul ℕ (Π₀ i, β i) :=
   ⟨fun c v => v.mapRange (fun _ => (· • ·) c) fun _ => nsmul_zero _⟩
-#align dfinsupp.has_nat_scalar Dfinsupp.hasNatScalar
+#align dfinsupp.has_nat_scalar DFinsupp.hasNatScalar
 
 theorem nsmul_apply [∀ i, AddMonoid (β i)] (b : ℕ) (v : Π₀ i, β i) (i : ι) : (b • v) i = b • v i :=
   rfl
-#align dfinsupp.nsmul_apply Dfinsupp.nsmul_apply
+#align dfinsupp.nsmul_apply DFinsupp.nsmul_apply
 
 @[simp]
 theorem coe_nsmul [∀ i, AddMonoid (β i)] (b : ℕ) (v : Π₀ i, β i) : ⇑(b • v) = b • ⇑v :=
   rfl
-#align dfinsupp.coe_nsmul Dfinsupp.coe_nsmul
+#align dfinsupp.coe_nsmul DFinsupp.coe_nsmul
 
 instance [∀ i, AddMonoid (β i)] : AddMonoid (Π₀ i, β i) :=
   FunLike.coe_injective.addMonoid _ coe_zero coe_add fun _ _ => coe_nsmul _ _
 
-/-- Coercion from a `Dfinsupp` to a pi type is an `AddMonoidHom`. -/
+/-- Coercion from a `DFinsupp` to a pi type is an `AddMonoidHom`. -/
 def coeFnAddMonoidHom [∀ i, AddZeroClass (β i)] : (Π₀ i, β i) →+ ∀ i, β i
     where
   toFun := (⇑)
   map_zero' := coe_zero
   map_add' := coe_add
-#align dfinsupp.coe_fn_add_monoid_hom Dfinsupp.coeFnAddMonoidHom
+#align dfinsupp.coe_fn_add_monoid_hom DFinsupp.coeFnAddMonoidHom
 
 /-- Evaluation at a point is an `AddMonoidHom`. This is the finitely-supported version of
 `Pi.evalAddMonoidHom`. -/
 def evalAddMonoidHom [∀ i, AddZeroClass (β i)] (i : ι) : (Π₀ i, β i) →+ β i :=
   (Pi.evalAddMonoidHom β i).comp coeFnAddMonoidHom
-#align dfinsupp.eval_add_monoid_hom Dfinsupp.evalAddMonoidHom
+#align dfinsupp.eval_add_monoid_hom DFinsupp.evalAddMonoidHom
 
 instance addCommMonoid [∀ i, AddCommMonoid (β i)] : AddCommMonoid (Π₀ i, β i) :=
   FunLike.coe_injective.addCommMonoid _ coe_zero coe_add fun _ _ => coe_nsmul _ _
@@ -289,52 +289,52 @@ instance addCommMonoid [∀ i, AddCommMonoid (β i)] : AddCommMonoid (Π₀ i, 
 theorem coe_finset_sum {α} [∀ i, AddCommMonoid (β i)] (s : Finset α) (g : α → Π₀ i, β i) :
     ⇑(∑ a in s, g a) = ∑ a in s, ⇑g a :=
   (coeFnAddMonoidHom : _ →+ ∀ i, β i).map_sum g s
-#align dfinsupp.coe_finset_sum Dfinsupp.coe_finset_sum
+#align dfinsupp.coe_finset_sum DFinsupp.coe_finset_sum
 
 @[simp]
 theorem finset_sum_apply {α} [∀ i, AddCommMonoid (β i)] (s : Finset α) (g : α → Π₀ i, β i) (i : ι) :
     (∑ a in s, g a) i = ∑ a in s, g a i :=
   (evalAddMonoidHom i : _ →+ β i).map_sum g s
-#align dfinsupp.finset_sum_apply Dfinsupp.finset_sum_apply
+#align dfinsupp.finset_sum_apply DFinsupp.finset_sum_apply
 
 instance [∀ i, AddGroup (β i)] : Neg (Π₀ i, β i) :=
   ⟨fun f => f.mapRange (fun _ => Neg.neg) fun _ => neg_zero⟩
 
 theorem neg_apply [∀ i, AddGroup (β i)] (g : Π₀ i, β i) (i : ι) : (-g) i = -g i :=
   rfl
-#align dfinsupp.neg_apply Dfinsupp.neg_apply
+#align dfinsupp.neg_apply DFinsupp.neg_apply
 
 @[simp]
 theorem coe_neg [∀ i, AddGroup (β i)] (g : Π₀ i, β i) : ⇑(-g) = -g :=
   rfl
-#align dfinsupp.coe_neg Dfinsupp.coe_neg
+#align dfinsupp.coe_neg DFinsupp.coe_neg
 
 instance [∀ i, AddGroup (β i)] : Sub (Π₀ i, β i) :=
   ⟨zipWith (fun _ => Sub.sub) fun _ => sub_zero 0⟩
 
 theorem sub_apply [∀ i, AddGroup (β i)] (g₁ g₂ : Π₀ i, β i) (i : ι) : (g₁ - g₂) i = g₁ i - g₂ i :=
   rfl
-#align dfinsupp.sub_apply Dfinsupp.sub_apply
+#align dfinsupp.sub_apply DFinsupp.sub_apply
 
 @[simp]
 theorem coe_sub [∀ i, AddGroup (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g₁ - g₂) = g₁ - g₂ :=
   rfl
-#align dfinsupp.coe_sub Dfinsupp.coe_sub
+#align dfinsupp.coe_sub DFinsupp.coe_sub
 
 /-- Note the general `SMul` instance doesn't apply as `ℤ` is not distributive
 unless `β i`'s addition is commutative. -/
 instance hasIntScalar [∀ i, AddGroup (β i)] : SMul ℤ (Π₀ i, β i) :=
   ⟨fun c v => v.mapRange (fun _ => (· • ·) c) fun _ => zsmul_zero _⟩
-#align dfinsupp.has_int_scalar Dfinsupp.hasIntScalar
+#align dfinsupp.has_int_scalar DFinsupp.hasIntScalar
 
 theorem zsmul_apply [∀ i, AddGroup (β i)] (b : ℤ) (v : Π₀ i, β i) (i : ι) : (b • v) i = b • v i :=
   rfl
-#align dfinsupp.zsmul_apply Dfinsupp.zsmul_apply
+#align dfinsupp.zsmul_apply DFinsupp.zsmul_apply
 
 @[simp]
 theorem coe_zsmul [∀ i, AddGroup (β i)] (b : ℤ) (v : Π₀ i, β i) : ⇑(b • v) = b • ⇑v :=
   rfl
-#align dfinsupp.coe_zsmul Dfinsupp.coe_zsmul
+#align dfinsupp.coe_zsmul DFinsupp.coe_zsmul
 
 instance [∀ i, AddGroup (β i)] : AddGroup (Π₀ i, β i) :=
   FunLike.coe_injective.addGroup _ coe_zero coe_add coe_neg coe_sub (fun _ _ => coe_nsmul _ _)
@@ -352,13 +352,13 @@ instance [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i
 theorem smul_apply [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] (b : γ)
     (v : Π₀ i, β i) (i : ι) : (b • v) i = b • v i :=
   rfl
-#align dfinsupp.smul_apply Dfinsupp.smul_apply
+#align dfinsupp.smul_apply DFinsupp.smul_apply
 
 @[simp]
 theorem coe_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] (b : γ)
     (v : Π₀ i, β i) : ⇑(b • v) = b • ⇑v :=
   rfl
-#align dfinsupp.coe_smul Dfinsupp.coe_smul
+#align dfinsupp.coe_smul DFinsupp.coe_smul
 
 instance smulCommClass {δ : Type _} [Monoid γ] [Monoid δ] [∀ i, AddMonoid (β i)]
     [∀ i, DistribMulAction γ (β i)] [∀ i, DistribMulAction δ (β i)] [∀ i, SMulCommClass γ δ (β i)] :
@@ -388,7 +388,7 @@ instance module [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (
   { inferInstanceAs (DistribMulAction γ (Π₀ i, β i)) with
     zero_smul := fun c => ext fun i => by simp only [smul_apply, zero_smul, zero_apply]
     add_smul := fun c x y => ext fun i => by simp only [add_apply, smul_apply, add_smul] }
-#align dfinsupp.module Dfinsupp.module
+#align dfinsupp.module DFinsupp.module
 
 
 end Algebra
@@ -400,62 +400,62 @@ def filter [∀ i, Zero (β i)] (p : ι → Prop) [DecidablePred p] (x : Π₀ i
   ⟨fun i => if p i then x i else 0,
     x.support'.map fun xs =>
       ⟨xs.1, fun i => (xs.prop i).imp_right fun H : x i = 0 => by simp only [H, ite_self]⟩⟩
-#align dfinsupp.filter Dfinsupp.filter
+#align dfinsupp.filter DFinsupp.filter
 
 @[simp]
 theorem filter_apply [∀ i, Zero (β i)] (p : ι → Prop) [DecidablePred p] (i : ι) (f : Π₀ i, β i) :
     f.filter p i = if p i then f i else 0 :=
   rfl
-#align dfinsupp.filter_apply Dfinsupp.filter_apply
+#align dfinsupp.filter_apply DFinsupp.filter_apply
 
 theorem filter_apply_pos [∀ i, Zero (β i)] {p : ι → Prop} [DecidablePred p] (f : Π₀ i, β i) {i : ι}
     (h : p i) : f.filter p i = f i := by simp only [filter_apply, if_pos h]
-#align dfinsupp.filter_apply_pos Dfinsupp.filter_apply_pos
+#align dfinsupp.filter_apply_pos DFinsupp.filter_apply_pos
 
 theorem filter_apply_neg [∀ i, Zero (β i)] {p : ι → Prop} [DecidablePred p] (f : Π₀ i, β i) {i : ι}
     (h : ¬p i) : f.filter p i = 0 := by simp only [filter_apply, if_neg h]
-#align dfinsupp.filter_apply_neg Dfinsupp.filter_apply_neg
+#align dfinsupp.filter_apply_neg DFinsupp.filter_apply_neg
 
 theorem filter_pos_add_filter_neg [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i) (p : ι → Prop)
     [DecidablePred p] : (f.filter p + f.filter fun i => ¬p i) = f :=
   ext fun i => by
     simp only [add_apply, filter_apply]; split_ifs <;> simp only [add_zero, zero_add]
-#align dfinsupp.filter_pos_add_filter_neg Dfinsupp.filter_pos_add_filter_neg
+#align dfinsupp.filter_pos_add_filter_neg DFinsupp.filter_pos_add_filter_neg
 
 @[simp]
 theorem filter_zero [∀ i, Zero (β i)] (p : ι → Prop) [DecidablePred p] :
     (0 : Π₀ i, β i).filter p = 0 := by
   ext
   simp
-#align dfinsupp.filter_zero Dfinsupp.filter_zero
+#align dfinsupp.filter_zero DFinsupp.filter_zero
 
 @[simp]
 theorem filter_add [∀ i, AddZeroClass (β i)] (p : ι → Prop) [DecidablePred p] (f g : Π₀ i, β i) :
     (f + g).filter p = f.filter p + g.filter p := by
   ext
   simp [ite_add_zero]
-#align dfinsupp.filter_add Dfinsupp.filter_add
+#align dfinsupp.filter_add DFinsupp.filter_add
 
 @[simp]
 theorem filter_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)] (p : ι → Prop)
     [DecidablePred p] (r : γ) (f : Π₀ i, β i) : (r • f).filter p = r • f.filter p := by
   ext
   simp [smul_apply, smul_ite]
-#align dfinsupp.filter_smul Dfinsupp.filter_smul
+#align dfinsupp.filter_smul DFinsupp.filter_smul
 
 variable (γ β)
 
-/-- `Dfinsupp.filter` as an `AddMonoidHom`. -/
+/-- `DFinsupp.filter` as an `AddMonoidHom`. -/
 @[simps]
 def filterAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [DecidablePred p] :
     (Π₀ i, β i) →+ Π₀ i, β i where
   toFun := filter p
   map_zero' := filter_zero p
   map_add' := filter_add p
-#align dfinsupp.filter_add_monoid_hom Dfinsupp.filterAddMonoidHom
-#align dfinsupp.filter_add_monoid_hom_apply Dfinsupp.filterAddMonoidHom_apply
+#align dfinsupp.filter_add_monoid_hom DFinsupp.filterAddMonoidHom
+#align dfinsupp.filter_add_monoid_hom_apply DFinsupp.filterAddMonoidHom_apply
 
-/-- `Dfinsupp.filter` as a `LinearMap`. -/
+/-- `DFinsupp.filter` as a `LinearMap`. -/
 @[simps]
 def filterLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (β i)] (p : ι → Prop)
     [DecidablePred p] : (Π₀ i, β i) →ₗ[γ] Π₀ i, β i
@@ -463,8 +463,8 @@ def filterLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module 
   toFun := filter p
   map_add' := filter_add p
   map_smul' := filter_smul p
-#align dfinsupp.filter_linear_map Dfinsupp.filterLinearMap
-#align dfinsupp.filter_linear_map_apply Dfinsupp.filterLinearMap_apply
+#align dfinsupp.filter_linear_map DFinsupp.filterLinearMap
+#align dfinsupp.filter_linear_map_apply DFinsupp.filterLinearMap_apply
 
 variable {γ β}
 
@@ -472,13 +472,13 @@ variable {γ β}
 theorem filter_neg [∀ i, AddGroup (β i)] (p : ι → Prop) [DecidablePred p] (f : Π₀ i, β i) :
     (-f).filter p = -f.filter p :=
   (filterAddMonoidHom β p).map_neg f
-#align dfinsupp.filter_neg Dfinsupp.filter_neg
+#align dfinsupp.filter_neg DFinsupp.filter_neg
 
 @[simp]
 theorem filter_sub [∀ i, AddGroup (β i)] (p : ι → Prop) [DecidablePred p] (f g : Π₀ i, β i) :
     (f - g).filter p = f.filter p - g.filter p :=
   (filterAddMonoidHom β p).map_sub f g
-#align dfinsupp.filter_sub Dfinsupp.filter_sub
+#align dfinsupp.filter_sub DFinsupp.filter_sub
 
 /-- `subtypeDomain p f` is the restriction of the finitely supported function
   `f` to the subtype `p`. -/
@@ -490,32 +490,32 @@ def subtypeDomain [∀ i, Zero (β i)] (p : ι → Prop) [DecidablePred p] (x :
         (xs.prop i).imp_left fun H =>
           Multiset.mem_map.2
             ⟨⟨i, Multiset.mem_filter.2 ⟨H, i.2⟩⟩, Multiset.mem_attach _ _, Subtype.eta _ _⟩⟩⟩
-#align dfinsupp.subtype_domain Dfinsupp.subtypeDomain
+#align dfinsupp.subtype_domain DFinsupp.subtypeDomain
 
 @[simp]
 theorem subtypeDomain_zero [∀ i, Zero (β i)] {p : ι → Prop} [DecidablePred p] :
     subtypeDomain p (0 : Π₀ i, β i) = 0 :=
   rfl
-#align dfinsupp.subtype_domain_zero Dfinsupp.subtypeDomain_zero
+#align dfinsupp.subtype_domain_zero DFinsupp.subtypeDomain_zero
 
 @[simp]
 theorem subtypeDomain_apply [∀ i, Zero (β i)] {p : ι → Prop} [DecidablePred p] {i : Subtype p}
     {v : Π₀ i, β i} : (subtypeDomain p v) i = v i :=
   rfl
-#align dfinsupp.subtype_domain_apply Dfinsupp.subtypeDomain_apply
+#align dfinsupp.subtype_domain_apply DFinsupp.subtypeDomain_apply
 
 @[simp]
 theorem subtypeDomain_add [∀ i, AddZeroClass (β i)] {p : ι → Prop} [DecidablePred p]
     (v v' : Π₀ i, β i) : (v + v').subtypeDomain p = v.subtypeDomain p + v'.subtypeDomain p :=
   FunLike.coe_injective rfl
-#align dfinsupp.subtype_domain_add Dfinsupp.subtypeDomain_add
+#align dfinsupp.subtype_domain_add DFinsupp.subtypeDomain_add
 
 @[simp]
 theorem subtypeDomain_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
     {p : ι → Prop} [DecidablePred p] (r : γ) (f : Π₀ i, β i) :
     (r • f).subtypeDomain p = r • f.subtypeDomain p :=
   FunLike.coe_injective rfl
-#align dfinsupp.subtype_domain_smul Dfinsupp.subtypeDomain_smul
+#align dfinsupp.subtype_domain_smul DFinsupp.subtypeDomain_smul
 
 variable (γ β)
 
@@ -527,10 +527,10 @@ def subtypeDomainAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [De
   toFun := subtypeDomain p
   map_zero' := subtypeDomain_zero
   map_add' := subtypeDomain_add
-#align dfinsupp.subtype_domain_add_monoid_hom Dfinsupp.subtypeDomainAddMonoidHom
-#align dfinsupp.subtype_domain_add_monoid_hom_apply Dfinsupp.subtypeDomainAddMonoidHom_apply
+#align dfinsupp.subtype_domain_add_monoid_hom DFinsupp.subtypeDomainAddMonoidHom
+#align dfinsupp.subtype_domain_add_monoid_hom_apply DFinsupp.subtypeDomainAddMonoidHom_apply
 
-/-- `Dfinsupp.subtypeDomain` as a `LinearMap`. -/
+/-- `DFinsupp.subtypeDomain` as a `LinearMap`. -/
 @[simps]
 def subtypeDomainLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (β i)]
     (p : ι → Prop) [DecidablePred p] : (Π₀ i, β i) →ₗ[γ] Π₀ i : Subtype p, β i
@@ -538,8 +538,8 @@ def subtypeDomainLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, M
   toFun := subtypeDomain p
   map_add' := subtypeDomain_add
   map_smul' := subtypeDomain_smul
-#align dfinsupp.subtype_domain_linear_map Dfinsupp.subtypeDomainLinearMap
-#align dfinsupp.subtype_domain_linear_map_apply Dfinsupp.subtypeDomainLinearMap_apply
+#align dfinsupp.subtype_domain_linear_map DFinsupp.subtypeDomainLinearMap
+#align dfinsupp.subtype_domain_linear_map_apply DFinsupp.subtypeDomainLinearMap_apply
 
 variable {γ β}
 
@@ -547,13 +547,13 @@ variable {γ β}
 theorem subtypeDomain_neg [∀ i, AddGroup (β i)] {p : ι → Prop} [DecidablePred p] {v : Π₀ i, β i} :
     (-v).subtypeDomain p = -v.subtypeDomain p :=
   FunLike.coe_injective rfl
-#align dfinsupp.subtype_domain_neg Dfinsupp.subtypeDomain_neg
+#align dfinsupp.subtype_domain_neg DFinsupp.subtypeDomain_neg
 
 @[simp]
 theorem subtypeDomain_sub [∀ i, AddGroup (β i)] {p : ι → Prop} [DecidablePred p]
     {v v' : Π₀ i, β i} : (v - v').subtypeDomain p = v.subtypeDomain p - v'.subtypeDomain p :=
   FunLike.coe_injective rfl
-#align dfinsupp.subtype_domain_sub Dfinsupp.subtypeDomain_sub
+#align dfinsupp.subtype_domain_sub DFinsupp.subtypeDomain_sub
 
 end FilterAndSubtypeDomain
 
@@ -568,29 +568,29 @@ theorem finite_support (f : Π₀ i, β i) : Set.Finite { i | f i ≠ 0 } := by
   exact Trunc.induction_on f.support' fun xs =>
         (Multiset.toFinset xs.1).finite_toSet.subset fun i H =>
           Multiset.mem_toFinset.2 ((xs.prop i).resolve_right H)
-#align dfinsupp.finite_support Dfinsupp.finite_support
+#align dfinsupp.finite_support DFinsupp.finite_support
 
 /-- Create an element of `Π₀ i, β i` from a finset `s` and a function `x`
 defined on this `Finset`. -/
 def mk (s : Finset ι) (x : ∀ i : (↑s : Set ι), β (i : ι)) : Π₀ i, β i :=
   ⟨fun i => if H : i ∈ s then x ⟨i, H⟩ else 0,
     Trunc.mk ⟨s.1, fun i => if H : i ∈ s then Or.inl H else Or.inr <| dif_neg H⟩⟩
-#align dfinsupp.mk Dfinsupp.mk
+#align dfinsupp.mk DFinsupp.mk
 
 variable {s : Finset ι} {x : ∀ i : (↑s : Set ι), β i} {i : ι}
 
 @[simp]
 theorem mk_apply : (mk s x : ∀ i, β i) i = if H : i ∈ s then x ⟨i, H⟩ else 0 :=
   rfl
-#align dfinsupp.mk_apply Dfinsupp.mk_apply
+#align dfinsupp.mk_apply DFinsupp.mk_apply
 
 theorem mk_of_mem (hi : i ∈ s) : (mk s x : ∀ i, β i) i = x ⟨i, hi⟩ :=
   dif_pos hi
-#align dfinsupp.mk_of_mem Dfinsupp.mk_of_mem
+#align dfinsupp.mk_of_mem DFinsupp.mk_of_mem
 
 theorem mk_of_not_mem (hi : i ∉ s) : (mk s x : ∀ i, β i) i = 0 :=
   dif_neg hi
-#align dfinsupp.mk_of_not_mem Dfinsupp.mk_of_not_mem
+#align dfinsupp.mk_of_not_mem DFinsupp.mk_of_not_mem
 
 theorem mk_injective (s : Finset ι) : Function.Injective (@mk ι β _ _ s) := by
   intro x y H
@@ -599,15 +599,15 @@ theorem mk_injective (s : Finset ι) : Function.Injective (@mk ι β _ _ s) := b
   obtain ⟨i, hi : i ∈ s⟩ := i
   dsimp only [mk_apply, Subtype.coe_mk] at h1
   simpa only [dif_pos hi] using h1
-#align dfinsupp.mk_injective Dfinsupp.mk_injective
+#align dfinsupp.mk_injective DFinsupp.mk_injective
 
 instance unique [∀ i, Subsingleton (β i)] : Unique (Π₀ i, β i) :=
   FunLike.coe_injective.unique
-#align dfinsupp.unique Dfinsupp.unique
+#align dfinsupp.unique DFinsupp.unique
 
 instance uniqueOfIsEmpty [IsEmpty ι] : Unique (Π₀ i, β i) :=
   FunLike.coe_injective.unique
-#align dfinsupp.unique_of_is_empty Dfinsupp.uniqueOfIsEmpty
+#align dfinsupp.unique_of_is_empty DFinsupp.uniqueOfIsEmpty
 
 /-- Given `Fintype ι`, `equivFunOnFintype` is the `Equiv` between `Π₀ i, β i` and `Π i, β i`.
   (All dependent functions on a finite type are finitely supported.) -/
@@ -618,82 +618,82 @@ def equivFunOnFintype [Fintype ι] : (Π₀ i, β i) ≃ ∀ i, β i
   invFun f := ⟨f, Trunc.mk ⟨Finset.univ.1, fun _ => Or.inl <| Finset.mem_univ_val _⟩⟩
   left_inv _ := FunLike.coe_injective rfl
   right_inv _ := rfl
-#align dfinsupp.equiv_fun_on_fintype Dfinsupp.equivFunOnFintype
-#align dfinsupp.equiv_fun_on_fintype_apply Dfinsupp.equivFunOnFintype_apply
+#align dfinsupp.equiv_fun_on_fintype DFinsupp.equivFunOnFintype
+#align dfinsupp.equiv_fun_on_fintype_apply DFinsupp.equivFunOnFintype_apply
 
 @[simp]
 theorem equivFunOnFintype_symm_coe [Fintype ι] (f : Π₀ i, β i) : equivFunOnFintype.symm f = f :=
   Equiv.symm_apply_apply _ _
-#align dfinsupp.equiv_fun_on_fintype_symm_coe Dfinsupp.equivFunOnFintype_symm_coe
+#align dfinsupp.equiv_fun_on_fintype_symm_coe DFinsupp.equivFunOnFintype_symm_coe
 
 /-- The function `single i b : Π₀ i, β i` sends `i` to `b`
 and all other points to `0`. -/
 def single (i : ι) (b : β i) : Π₀ i, β i :=
   ⟨Pi.single i b,
     Trunc.mk ⟨{i}, fun j => (Decidable.eq_or_ne j i).imp (by simp) fun h => Pi.single_eq_of_ne h _⟩⟩
-#align dfinsupp.single Dfinsupp.single
+#align dfinsupp.single DFinsupp.single
 
 theorem single_eq_pi_single {i b} : ⇑(single i b : Π₀ i, β i) = Pi.single i b :=
   rfl
-#align dfinsupp.single_eq_pi_single Dfinsupp.single_eq_pi_single
+#align dfinsupp.single_eq_pi_single DFinsupp.single_eq_pi_single
 
 @[simp]
 theorem single_apply {i i' b} :
     (single i b : Π₀ i, β i) i' = if h : i = i' then Eq.recOn h b else 0 := by
   rw [single_eq_pi_single, Pi.single, Function.update]
   simp [@eq_comm _ i i']
-#align dfinsupp.single_apply Dfinsupp.single_apply
+#align dfinsupp.single_apply DFinsupp.single_apply
 
 @[simp]
 theorem single_zero (i) : (single i 0 : Π₀ i, β i) = 0 :=
   FunLike.coe_injective <| Pi.single_zero _
-#align dfinsupp.single_zero Dfinsupp.single_zero
+#align dfinsupp.single_zero DFinsupp.single_zero
 
 -- @[simp] -- Porting note: simp can prove this
 theorem single_eq_same {i b} : (single i b : Π₀ i, β i) i = b := by
   simp only [single_apply, dite_eq_ite, ite_true]
-#align dfinsupp.single_eq_same Dfinsupp.single_eq_same
+#align dfinsupp.single_eq_same DFinsupp.single_eq_same
 
 theorem single_eq_of_ne {i i' b} (h : i ≠ i') : (single i b : Π₀ i, β i) i' = 0 := by
   simp only [single_apply, dif_neg h]
-#align dfinsupp.single_eq_of_ne Dfinsupp.single_eq_of_ne
+#align dfinsupp.single_eq_of_ne DFinsupp.single_eq_of_ne
 
 theorem single_injective {i} : Function.Injective (single i : β i → Π₀ i, β i) := fun _ _ H =>
   Pi.single_injective β i <| FunLike.coe_injective.eq_iff.mpr H
-#align dfinsupp.single_injective Dfinsupp.single_injective
+#align dfinsupp.single_injective DFinsupp.single_injective
 
 /-- Like `Finsupp.single_eq_single_iff`, but with a `HEq` due to dependent types -/
 theorem single_eq_single_iff (i j : ι) (xi : β i) (xj : β j) :
-    Dfinsupp.single i xi = Dfinsupp.single j xj ↔ i = j ∧ HEq xi xj ∨ xi = 0 ∧ xj = 0 := by
+    DFinsupp.single i xi = DFinsupp.single j xj ↔ i = j ∧ HEq xi xj ∨ xi = 0 ∧ xj = 0 := by
   constructor
   · intro h
     by_cases hij : i = j
     · subst hij
-      exact Or.inl ⟨rfl, heq_of_eq (Dfinsupp.single_injective h)⟩
-    · have h_coe : ⇑(Dfinsupp.single i xi) = Dfinsupp.single j xj := congr_arg (⇑) h
+      exact Or.inl ⟨rfl, heq_of_eq (DFinsupp.single_injective h)⟩
+    · have h_coe : ⇑(DFinsupp.single i xi) = DFinsupp.single j xj := congr_arg (⇑) h
       have hci := congr_fun h_coe i
       have hcj := congr_fun h_coe j
-      rw [Dfinsupp.single_eq_same] at hci hcj
-      rw [Dfinsupp.single_eq_of_ne (Ne.symm hij)] at hci
-      rw [Dfinsupp.single_eq_of_ne hij] at hcj
+      rw [DFinsupp.single_eq_same] at hci hcj
+      rw [DFinsupp.single_eq_of_ne (Ne.symm hij)] at hci
+      rw [DFinsupp.single_eq_of_ne hij] at hcj
       exact Or.inr ⟨hci, hcj.symm⟩
   · rintro (⟨rfl, hxi⟩ | ⟨hi, hj⟩)
     · rw [eq_of_heq hxi]
-    · rw [hi, hj, Dfinsupp.single_zero, Dfinsupp.single_zero]
-#align dfinsupp.single_eq_single_iff Dfinsupp.single_eq_single_iff
+    · rw [hi, hj, DFinsupp.single_zero, DFinsupp.single_zero]
+#align dfinsupp.single_eq_single_iff DFinsupp.single_eq_single_iff
 
-/-- `Dfinsupp.single a b` is injective in `a`. For the statement that it is injective in `b`, see
-`Dfinsupp.single_injective` -/
+/-- `DFinsupp.single a b` is injective in `a`. For the statement that it is injective in `b`, see
+`DFinsupp.single_injective` -/
 theorem single_left_injective {b : ∀ i : ι, β i} (h : ∀ i, b i ≠ 0) :
     Function.Injective (fun i => single i (b i) : ι → Π₀ i, β i) := fun _ _ H =>
   (((single_eq_single_iff _ _ _ _).mp H).resolve_right fun hb => h _ hb.1).left
-#align dfinsupp.single_left_injective Dfinsupp.single_left_injective
+#align dfinsupp.single_left_injective DFinsupp.single_left_injective
 
 @[simp]
 theorem single_eq_zero {i : ι} {xi : β i} : single i xi = 0 ↔ xi = 0 := by
   rw [← single_zero i, single_eq_single_iff]
   simp
-#align dfinsupp.single_eq_zero Dfinsupp.single_eq_zero
+#align dfinsupp.single_eq_zero DFinsupp.single_eq_zero
 
 theorem filter_single (p : ι → Prop) [DecidablePred p] (i : ι) (x : β i) :
     (single i x).filter p = if p i then single i x else 0 := by
@@ -704,57 +704,57 @@ theorem filter_single (p : ι → Prop) [DecidablePred p] (i : ι) (x : β i) :
   obtain rfl | hij := Decidable.eq_or_ne i j
   · rfl
   · rw [single_eq_of_ne hij, ite_self, ite_self]
-#align dfinsupp.filter_single Dfinsupp.filter_single
+#align dfinsupp.filter_single DFinsupp.filter_single
 
 @[simp]
 theorem filter_single_pos {p : ι → Prop} [DecidablePred p] (i : ι) (x : β i) (h : p i) :
     (single i x).filter p = single i x := by rw [filter_single, if_pos h]
-#align dfinsupp.filter_single_pos Dfinsupp.filter_single_pos
+#align dfinsupp.filter_single_pos DFinsupp.filter_single_pos
 
 @[simp]
 theorem filter_single_neg {p : ι → Prop} [DecidablePred p] (i : ι) (x : β i) (h : ¬p i) :
     (single i x).filter p = 0 := by rw [filter_single, if_neg h]
-#align dfinsupp.filter_single_neg Dfinsupp.filter_single_neg
+#align dfinsupp.filter_single_neg DFinsupp.filter_single_neg
 
-/-- Equality of sigma types is sufficient (but not necessary) to show equality of `Dfinsupp`s. -/
+/-- Equality of sigma types is sufficient (but not necessary) to show equality of `DFinsupp`s. -/
 theorem single_eq_of_sigma_eq {i j} {xi : β i} {xj : β j} (h : (⟨i, xi⟩ : Sigma β) = ⟨j, xj⟩) :
-    Dfinsupp.single i xi = Dfinsupp.single j xj := by
+    DFinsupp.single i xi = DFinsupp.single j xj := by
   cases h
   rfl
-#align dfinsupp.single_eq_of_sigma_eq Dfinsupp.single_eq_of_sigma_eq
+#align dfinsupp.single_eq_of_sigma_eq DFinsupp.single_eq_of_sigma_eq
 
 @[simp]
 theorem equivFunOnFintype_single [Fintype ι] (i : ι) (m : β i) :
-    (@Dfinsupp.equivFunOnFintype ι β _ _) (Dfinsupp.single i m) = Pi.single i m := by
+    (@DFinsupp.equivFunOnFintype ι β _ _) (DFinsupp.single i m) = Pi.single i m := by
   ext x
   dsimp [Pi.single, Function.update]
-  simp [Dfinsupp.single_eq_pi_single, @eq_comm _ i]
-#align dfinsupp.equiv_fun_on_fintype_single Dfinsupp.equivFunOnFintype_single
+  simp [DFinsupp.single_eq_pi_single, @eq_comm _ i]
+#align dfinsupp.equiv_fun_on_fintype_single DFinsupp.equivFunOnFintype_single
 
 @[simp]
 theorem equivFunOnFintype_symm_single [Fintype ι] (i : ι) (m : β i) :
-    (@Dfinsupp.equivFunOnFintype ι β _ _).symm (Pi.single i m) = Dfinsupp.single i m := by
+    (@DFinsupp.equivFunOnFintype ι β _ _).symm (Pi.single i m) = DFinsupp.single i m := by
   ext i'
   simp only [← single_eq_pi_single, equivFunOnFintype_symm_coe]
-#align dfinsupp.equiv_fun_on_fintype_symm_single Dfinsupp.equivFunOnFintype_symm_single
+#align dfinsupp.equiv_fun_on_fintype_symm_single DFinsupp.equivFunOnFintype_symm_single
 
 /-- Redefine `f i` to be `0`. -/
 def erase (i : ι) (x : Π₀ i, β i) : Π₀ i, β i :=
   ⟨fun j ↦ if j = i then 0 else x.1 j,
     x.support'.map fun xs ↦ ⟨xs.1, fun j ↦ (xs.prop j).imp_right (by simp only [·, ite_self])⟩⟩
-#align dfinsupp.erase Dfinsupp.erase
+#align dfinsupp.erase DFinsupp.erase
 
 @[simp]
 theorem erase_apply {i j : ι} {f : Π₀ i, β i} : (f.erase i) j = if j = i then 0 else f j :=
   rfl
-#align dfinsupp.erase_apply Dfinsupp.erase_apply
+#align dfinsupp.erase_apply DFinsupp.erase_apply
 
 -- @[simp] -- Porting note: simp can prove this
 theorem erase_same {i : ι} {f : Π₀ i, β i} : (f.erase i) i = 0 := by simp
-#align dfinsupp.erase_same Dfinsupp.erase_same
+#align dfinsupp.erase_same DFinsupp.erase_same
 
 theorem erase_ne {i i' : ι} {f : Π₀ i, β i} (h : i' ≠ i) : (f.erase i) i' = f i' := by simp [h]
-#align dfinsupp.erase_ne Dfinsupp.erase_ne
+#align dfinsupp.erase_ne DFinsupp.erase_ne
 
 theorem piecewise_single_erase (x : Π₀ i, β i) (i : ι)
     [∀ i' : ι, Decidable <| (i' ∈ ({i} : Set ι))] : -- Porting note: added Decidable hypothesis
@@ -762,7 +762,7 @@ theorem piecewise_single_erase (x : Π₀ i, β i) (i : ι)
   ext j; rw [piecewise_apply]; split_ifs with h
   · rw [(id h : j = i), single_eq_same]
   · exact erase_ne h
-#align dfinsupp.piecewise_single_erase Dfinsupp.piecewise_single_erase
+#align dfinsupp.piecewise_single_erase DFinsupp.piecewise_single_erase
 
 theorem erase_eq_sub_single {β : ι → Type _} [∀ i, AddGroup (β i)] (f : Π₀ i, β i) (i : ι) :
     f.erase i = f - single i (f i) := by
@@ -770,40 +770,40 @@ theorem erase_eq_sub_single {β : ι → Type _} [∀ i, AddGroup (β i)] (f : 
   rcases eq_or_ne i j with (rfl | h)
   · simp
   · simp [erase_ne h.symm, single_eq_of_ne h, @eq_comm _ j, h]
-#align dfinsupp.erase_eq_sub_single Dfinsupp.erase_eq_sub_single
+#align dfinsupp.erase_eq_sub_single DFinsupp.erase_eq_sub_single
 
 @[simp]
 theorem erase_zero (i : ι) : erase i (0 : Π₀ i, β i) = 0 :=
   ext fun _ => ite_self _
-#align dfinsupp.erase_zero Dfinsupp.erase_zero
+#align dfinsupp.erase_zero DFinsupp.erase_zero
 
 @[simp]
 theorem filter_ne_eq_erase (f : Π₀ i, β i) (i : ι) : f.filter (· ≠ i) = f.erase i := by
   ext1 j
-  simp only [Dfinsupp.filter_apply, Dfinsupp.erase_apply, ite_not]
-#align dfinsupp.filter_ne_eq_erase Dfinsupp.filter_ne_eq_erase
+  simp only [DFinsupp.filter_apply, DFinsupp.erase_apply, ite_not]
+#align dfinsupp.filter_ne_eq_erase DFinsupp.filter_ne_eq_erase
 
 @[simp]
 theorem filter_ne_eq_erase' (f : Π₀ i, β i) (i : ι) : f.filter ((· ≠ ·) i) = f.erase i := by
   rw [← filter_ne_eq_erase f i]
   congr with j
   exact ne_comm
-#align dfinsupp.filter_ne_eq_erase' Dfinsupp.filter_ne_eq_erase'
+#align dfinsupp.filter_ne_eq_erase' DFinsupp.filter_ne_eq_erase'
 
 theorem erase_single (j : ι) (i : ι) (x : β i) :
     (single i x).erase j = if i = j then 0 else single i x := by
   rw [← filter_ne_eq_erase, filter_single, ite_not]
-#align dfinsupp.erase_single Dfinsupp.erase_single
+#align dfinsupp.erase_single DFinsupp.erase_single
 
 @[simp]
 theorem erase_single_same (i : ι) (x : β i) : (single i x).erase i = 0 := by
   rw [erase_single, if_pos rfl]
-#align dfinsupp.erase_single_same Dfinsupp.erase_single_same
+#align dfinsupp.erase_single_same DFinsupp.erase_single_same
 
 @[simp]
 theorem erase_single_ne {i j : ι} (x : β i) (h : i ≠ j) : (single i x).erase j = single i x := by
   rw [erase_single, if_neg h]
-#align dfinsupp.erase_single_ne Dfinsupp.erase_single_ne
+#align dfinsupp.erase_single_ne DFinsupp.erase_single_ne
 
 section Update
 
@@ -823,20 +823,20 @@ def update : Π₀ i, β i :=
         · obtain hj | (hj : f j = 0) := s.prop j
           · exact Or.inl (Multiset.mem_cons_of_mem hj)
           · exact Or.inr ((Function.update_noteq hi.symm b _).trans hj)⟩⟩
-#align dfinsupp.update Dfinsupp.update
+#align dfinsupp.update DFinsupp.update
 
 variable (j : ι)
 
 @[simp]
 theorem coe_update : (f.update i b : ∀ i : ι, β i) = Function.update f i b :=
   rfl
-#align dfinsupp.coe_update Dfinsupp.coe_update
+#align dfinsupp.coe_update DFinsupp.coe_update
 
 @[simp]
 theorem update_self : f.update i (f i) = f := by
   ext
   simp
-#align dfinsupp.update_self Dfinsupp.update_self
+#align dfinsupp.update_self DFinsupp.update_self
 
 @[simp]
 theorem update_eq_erase : f.update i 0 = f.erase i := by
@@ -844,7 +844,7 @@ theorem update_eq_erase : f.update i 0 = f.erase i := by
   rcases eq_or_ne i j with (rfl | hi)
   · simp
   · simp [hi.symm]
-#align dfinsupp.update_eq_erase Dfinsupp.update_eq_erase
+#align dfinsupp.update_eq_erase DFinsupp.update_eq_erase
 
 theorem update_eq_single_add_erase {β : ι → Type _} [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i)
     (i : ι) (b : β i) : f.update i b = single i b + f.erase i := by
@@ -852,7 +852,7 @@ theorem update_eq_single_add_erase {β : ι → Type _} [∀ i, AddZeroClass (β
   rcases eq_or_ne i j with (rfl | h)
   · simp
   · simp [Function.update_noteq h.symm, h, erase_ne, h.symm]
-#align dfinsupp.update_eq_single_add_erase Dfinsupp.update_eq_single_add_erase
+#align dfinsupp.update_eq_single_add_erase DFinsupp.update_eq_single_add_erase
 
 theorem update_eq_erase_add_single {β : ι → Type _} [∀ i, AddZeroClass (β i)] (f : Π₀ i, β i)
     (i : ι) (b : β i) : f.update i b = f.erase i + single i b := by
@@ -860,12 +860,12 @@ theorem update_eq_erase_add_single {β : ι → Type _} [∀ i, AddZeroClass (β
   rcases eq_or_ne i j with (rfl | h)
   · simp
   · simp [Function.update_noteq h.symm, h, erase_ne, h.symm]
-#align dfinsupp.update_eq_erase_add_single Dfinsupp.update_eq_erase_add_single
+#align dfinsupp.update_eq_erase_add_single DFinsupp.update_eq_erase_add_single
 
 theorem update_eq_sub_add_single {β : ι → Type _} [∀ i, AddGroup (β i)] (f : Π₀ i, β i) (i : ι)
     (b : β i) : f.update i b = f - single i (f i) + single i b := by
   rw [update_eq_erase_add_single f i b, erase_eq_sub_single f i]
-#align dfinsupp.update_eq_sub_add_single Dfinsupp.update_eq_sub_add_single
+#align dfinsupp.update_eq_sub_add_single DFinsupp.update_eq_sub_add_single
 
 end Update
 
@@ -882,34 +882,34 @@ theorem single_add (i : ι) (b₁ b₂ : β i) : single i (b₁ + b₂) = single
     · subst h
       simp only [add_apply, single_eq_same]
     · simp only [add_apply, single_eq_of_ne h, zero_add]
-#align dfinsupp.single_add Dfinsupp.single_add
+#align dfinsupp.single_add DFinsupp.single_add
 
 @[simp]
 theorem erase_add (i : ι) (f₁ f₂ : Π₀ i, β i) : erase i (f₁ + f₂) = erase i f₁ + erase i f₂ :=
   ext fun _ => by simp [ite_zero_add]
-#align dfinsupp.erase_add Dfinsupp.erase_add
+#align dfinsupp.erase_add DFinsupp.erase_add
 
 variable (β)
 
-/-- `Dfinsupp.single` as an `AddMonoidHom`. -/
+/-- `DFinsupp.single` as an `AddMonoidHom`. -/
 @[simps]
 def singleAddHom (i : ι) : β i →+ Π₀ i, β i
     where
   toFun := single i
   map_zero' := single_zero i
   map_add' := single_add i
-#align dfinsupp.single_add_hom Dfinsupp.singleAddHom
-#align dfinsupp.single_add_hom_apply Dfinsupp.singleAddHom_apply
+#align dfinsupp.single_add_hom DFinsupp.singleAddHom
+#align dfinsupp.single_add_hom_apply DFinsupp.singleAddHom_apply
 
-/-- `Dfinsupp.erase` as an `AddMonoidHom`. -/
+/-- `DFinsupp.erase` as an `AddMonoidHom`. -/
 @[simps]
 def eraseAddHom (i : ι) : (Π₀ i, β i) →+ Π₀ i, β i
     where
   toFun := erase i
   map_zero' := erase_zero i
   map_add' := erase_add i
-#align dfinsupp.erase_add_hom Dfinsupp.eraseAddHom
-#align dfinsupp.erase_add_hom_apply Dfinsupp.eraseAddHom_apply
+#align dfinsupp.erase_add_hom DFinsupp.eraseAddHom
+#align dfinsupp.erase_add_hom_apply DFinsupp.eraseAddHom_apply
 
 variable {β}
 
@@ -917,25 +917,25 @@ variable {β}
 theorem single_neg {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (x : β i) :
     single i (-x) = -single i x :=
   (singleAddHom β i).map_neg x
-#align dfinsupp.single_neg Dfinsupp.single_neg
+#align dfinsupp.single_neg DFinsupp.single_neg
 
 @[simp]
 theorem single_sub {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (x y : β i) :
     single i (x - y) = single i x - single i y :=
   (singleAddHom β i).map_sub x y
-#align dfinsupp.single_sub Dfinsupp.single_sub
+#align dfinsupp.single_sub DFinsupp.single_sub
 
 @[simp]
 theorem erase_neg {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (f : Π₀ i, β i) :
     (-f).erase i = -f.erase i :=
   (eraseAddHom β i).map_neg f
-#align dfinsupp.erase_neg Dfinsupp.erase_neg
+#align dfinsupp.erase_neg DFinsupp.erase_neg
 
 @[simp]
 theorem erase_sub {β : ι → Type v} [∀ i, AddGroup (β i)] (i : ι) (f g : Π₀ i, β i) :
     (f - g).erase i = f.erase i - g.erase i :=
   (eraseAddHom β i).map_sub f g
-#align dfinsupp.erase_sub Dfinsupp.erase_sub
+#align dfinsupp.erase_sub DFinsupp.erase_sub
 
 theorem single_add_erase (i : ι) (f : Π₀ i, β i) : single i (f i) + f.erase i = f :=
   ext fun i' =>
@@ -943,7 +943,7 @@ theorem single_add_erase (i : ι) (f : Π₀ i, β i) : single i (f i) + f.erase
       subst h; simp only [add_apply, single_apply, erase_apply, add_zero, dite_eq_ite, if_true]
     else by
       simp only [add_apply, single_apply, erase_apply, dif_neg h, if_neg (Ne.symm h), zero_add]
-#align dfinsupp.single_add_erase Dfinsupp.single_add_erase
+#align dfinsupp.single_add_erase DFinsupp.single_add_erase
 
 theorem erase_add_single (i : ι) (f : Π₀ i, β i) : f.erase i + single i (f i) = f :=
   ext fun i' =>
@@ -951,7 +951,7 @@ theorem erase_add_single (i : ι) (f : Π₀ i, β i) : f.erase i + single i (f
       subst h; simp only [add_apply, single_apply, erase_apply, zero_add, dite_eq_ite, if_true]
     else by
       simp only [add_apply, single_apply, erase_apply, dif_neg h, if_neg (Ne.symm h), add_zero]
-#align dfinsupp.erase_add_single Dfinsupp.erase_add_single
+#align dfinsupp.erase_add_single DFinsupp.erase_add_single
 
 protected theorem induction {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (h0 : p 0)
     (ha : ∀ (i b) (f : Π₀ i, β i), f i = 0 → b ≠ 0 → p f → p (single i b + f)) : p f := by
@@ -986,29 +986,29 @@ protected theorem induction {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (
     exact H2
   refine' ha _ _ _ _ h H2
   rw [erase_same]
-#align dfinsupp.induction Dfinsupp.induction
+#align dfinsupp.induction DFinsupp.induction
 
 theorem induction₂ {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (h0 : p 0)
     (ha : ∀ (i b) (f : Π₀ i, β i), f i = 0 → b ≠ 0 → p f → p (f + single i b)) : p f :=
-  Dfinsupp.induction f h0 fun i b f h1 h2 h3 =>
+  DFinsupp.induction f h0 fun i b f h1 h2 h3 =>
     have h4 : f + single i b = single i b + f := by
       ext j; by_cases H : i = j
       · subst H
         simp [h1]
       · simp [H]
     Eq.recOn h4 <| ha i b f h1 h2 h3
-#align dfinsupp.induction₂ Dfinsupp.induction₂
+#align dfinsupp.induction₂ DFinsupp.induction₂
 
 @[simp]
 theorem add_closure_iUnion_range_single :
     AddSubmonoid.closure (⋃ i : ι, Set.range (single i : β i → Π₀ i, β i)) = ⊤ :=
   top_unique fun x _ => by
-    apply Dfinsupp.induction x
+    apply DFinsupp.induction x
     exact AddSubmonoid.zero_mem _
     exact fun a b f _ _ hf =>
       AddSubmonoid.add_mem _
         (AddSubmonoid.subset_closure <| Set.mem_iUnion.2 ⟨a, Set.mem_range_self _⟩) hf
-#align dfinsupp.add_closure_Union_range_single Dfinsupp.add_closure_iUnion_range_single
+#align dfinsupp.add_closure_Union_range_single DFinsupp.add_closure_iUnion_range_single
 
 /-- If two additive homomorphisms from `Π₀ i, β i` are equal on each `single a b`, then
 they are equal. -/
@@ -1018,7 +1018,7 @@ theorem addHom_ext {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+
   simp only [Set.mem_iUnion, Set.mem_range] at hf
   rcases hf with ⟨x, y, rfl⟩
   apply H
-#align dfinsupp.add_hom_ext Dfinsupp.addHom_ext
+#align dfinsupp.add_hom_ext DFinsupp.addHom_ext
 
 /-- If two additive homomorphisms from `Π₀ i, β i` are equal on each `single a b`, then
 they are equal.
@@ -1028,7 +1028,7 @@ See note [partially-applied ext lemmas]. -/
 theorem addHom_ext' {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+ γ⦄
     (H : ∀ x, f.comp (singleAddHom β x) = g.comp (singleAddHom β x)) : f = g :=
   addHom_ext fun x => FunLike.congr_fun (H x)
-#align dfinsupp.add_hom_ext' Dfinsupp.addHom_ext'
+#align dfinsupp.add_hom_ext' DFinsupp.addHom_ext'
 
 end AddMonoid
 
@@ -1036,24 +1036,24 @@ end AddMonoid
 theorem mk_add [∀ i, AddZeroClass (β i)] {s : Finset ι} {x y : ∀ i : (↑s : Set ι), β i} :
     mk s (x + y) = mk s x + mk s y :=
   ext fun i => by simp only [add_apply, mk_apply]; split_ifs <;> [rfl; rw [zero_add]]
-#align dfinsupp.mk_add Dfinsupp.mk_add
+#align dfinsupp.mk_add DFinsupp.mk_add
 
 @[simp]
 theorem mk_zero [∀ i, Zero (β i)] {s : Finset ι} : mk s (0 : ∀ i : (↑s : Set ι), β i.1) = 0 :=
   ext fun i => by simp only [mk_apply]; split_ifs <;> rfl
-#align dfinsupp.mk_zero Dfinsupp.mk_zero
+#align dfinsupp.mk_zero DFinsupp.mk_zero
 
 @[simp]
 theorem mk_neg [∀ i, AddGroup (β i)] {s : Finset ι} {x : ∀ i : (↑s : Set ι), β i.1} :
     mk s (-x) = -mk s x :=
   ext fun i => by simp only [neg_apply, mk_apply]; split_ifs <;> [rfl; rw [neg_zero]]
-#align dfinsupp.mk_neg Dfinsupp.mk_neg
+#align dfinsupp.mk_neg DFinsupp.mk_neg
 
 @[simp]
 theorem mk_sub [∀ i, AddGroup (β i)] {s : Finset ι} {x y : ∀ i : (↑s : Set ι), β i.1} :
     mk s (x - y) = mk s x - mk s y :=
   ext fun i => by simp only [sub_apply, mk_apply]; split_ifs <;> [rfl; rw [sub_zero]]
-#align dfinsupp.mk_sub Dfinsupp.mk_sub
+#align dfinsupp.mk_sub DFinsupp.mk_sub
 
 /-- If `s` is a subset of `ι` then `mk_addGroupHom s` is the canonical additive
 group homomorphism from $\prod_{i\in s}\beta_i$ to $\prod_{\mathtt{i : \iota}}\beta_i.$-/
@@ -1062,7 +1062,7 @@ def mkAddGroupHom [∀ i, AddGroup (β i)] (s : Finset ι) : (∀ i : (s : Set 
   toFun := mk s
   map_zero' := mk_zero
   map_add' _ _ := mk_add
-#align dfinsupp.mk_add_group_hom Dfinsupp.mkAddGroupHom
+#align dfinsupp.mk_add_group_hom DFinsupp.mkAddGroupHom
 
 section
 
@@ -1072,7 +1072,7 @@ variable [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i
 theorem mk_smul {s : Finset ι} (c : γ) (x : ∀ i : (↑s : Set ι), β (i : ι)) :
     mk s (c • x) = c • mk s x :=
   ext fun i => by simp only [smul_apply, mk_apply]; split_ifs <;> [rfl; rw [smul_zero]]
-#align dfinsupp.mk_smul Dfinsupp.mk_smul
+#align dfinsupp.mk_smul DFinsupp.mk_smul
 
 @[simp]
 theorem single_smul {i : ι} (c : γ) (x : β i) : single i (c • x) = c • single i x :=
@@ -1081,7 +1081,7 @@ theorem single_smul {i : ι} (c : γ) (x : β i) : single i (c • x) = c • si
     split_ifs with h
     · cases h; rfl
     · rw [smul_zero]
-#align dfinsupp.single_smul Dfinsupp.single_smul
+#align dfinsupp.single_smul DFinsupp.single_smul
 
 end
 
@@ -1101,18 +1101,18 @@ def support (f : Π₀ i, β i) : Finset ι :=
     · intro H
       rcases Finset.mem_filter.1 H with ⟨_, h⟩
       exact Finset.mem_filter.2 ⟨Multiset.mem_toFinset.2 <| (hx i).resolve_right h, h⟩
-#align dfinsupp.support Dfinsupp.support
+#align dfinsupp.support DFinsupp.support
 
 @[simp]
 theorem support_mk_subset {s : Finset ι} {x : ∀ i : (↑s : Set ι), β i.1} : (mk s x).support ⊆ s :=
   fun _ H => Multiset.mem_toFinset.1 (Finset.mem_filter.1 H).1
-#align dfinsupp.support_mk_subset Dfinsupp.support_mk_subset
+#align dfinsupp.support_mk_subset DFinsupp.support_mk_subset
 
 @[simp]
 theorem support_mk'_subset {f : ∀ i, β i} {s : Multiset ι} {h} :
     (mk' f <| Trunc.mk ⟨s, h⟩).support ⊆ s.toFinset := fun i H =>
   Multiset.mem_toFinset.1 <| by simpa using (Finset.mem_filter.1 H).1
-#align dfinsupp.support_mk'_subset Dfinsupp.support_mk'_subset
+#align dfinsupp.support_mk'_subset DFinsupp.support_mk'_subset
 
 @[simp]
 theorem mem_support_toFun (f : Π₀ i, β i) (i) : i ∈ f.support ↔ f i ≠ 0 := by
@@ -1121,53 +1121,53 @@ theorem mem_support_toFun (f : Π₀ i, β i) (i) : i ∈ f.support ↔ f i ≠
   dsimp only [support, Trunc.lift_mk]
   rw [Finset.mem_filter, Multiset.mem_toFinset, coe_mk']
   exact and_iff_right_of_imp (s.prop i).resolve_right
-#align dfinsupp.mem_support_to_fun Dfinsupp.mem_support_toFun
+#align dfinsupp.mem_support_to_fun DFinsupp.mem_support_toFun
 
 theorem eq_mk_support (f : Π₀ i, β i) : f = mk f.support fun i => f i := by
   change f = mk f.support fun i => f i.1
   ext i
   by_cases h : f i ≠ 0 <;> [skip; rw [not_not] at h] <;> simp [h]
-#align dfinsupp.eq_mk_support Dfinsupp.eq_mk_support
+#align dfinsupp.eq_mk_support DFinsupp.eq_mk_support
 
 @[simp]
 theorem support_zero : (0 : Π₀ i, β i).support = ∅ :=
   rfl
-#align dfinsupp.support_zero Dfinsupp.support_zero
+#align dfinsupp.support_zero DFinsupp.support_zero
 
 theorem mem_support_iff {f : Π₀ i, β i} {i : ι} : i ∈ f.support ↔ f i ≠ 0 :=
   f.mem_support_toFun _
-#align dfinsupp.mem_support_iff Dfinsupp.mem_support_iff
+#align dfinsupp.mem_support_iff DFinsupp.mem_support_iff
 
 theorem not_mem_support_iff {f : Π₀ i, β i} {i : ι} : i ∉ f.support ↔ f i = 0 :=
   not_iff_comm.1 mem_support_iff.symm
-#align dfinsupp.not_mem_support_iff Dfinsupp.not_mem_support_iff
+#align dfinsupp.not_mem_support_iff DFinsupp.not_mem_support_iff
 
 @[simp]
 theorem support_eq_empty {f : Π₀ i, β i} : f.support = ∅ ↔ f = 0 :=
   ⟨fun H => ext <| by simpa [Finset.ext_iff] using H, by simp (config := { contextual := true })⟩
-#align dfinsupp.support_eq_empty Dfinsupp.support_eq_empty
+#align dfinsupp.support_eq_empty DFinsupp.support_eq_empty
 
 instance decidableZero : DecidablePred (Eq (0 : Π₀ i, β i)) := fun _ =>
   decidable_of_iff _ <| support_eq_empty.trans eq_comm
-#align dfinsupp.decidable_zero Dfinsupp.decidableZero
+#align dfinsupp.decidable_zero DFinsupp.decidableZero
 
 /- ./././Mathport/Syntax/Translate/Basic.lean:632:2:
   warning: expanding binder collection (i «expr ∉ » s) -/
 theorem support_subset_iff {s : Set ι} {f : Π₀ i, β i} :
     ↑f.support ⊆ s ↔ ∀ (i) (_ : i ∉ s), f i = 0 := by
   simp [Set.subset_def]; exact forall_congr' fun i => not_imp_comm
-#align dfinsupp.support_subset_iff Dfinsupp.support_subset_iff
+#align dfinsupp.support_subset_iff DFinsupp.support_subset_iff
 
 theorem support_single_ne_zero {i : ι} {b : β i} (hb : b ≠ 0) : (single i b).support = {i} := by
   ext j; by_cases h : i = j
   · subst h
     simp [hb]
   simp [Ne.symm h, h]
-#align dfinsupp.support_single_ne_zero Dfinsupp.support_single_ne_zero
+#align dfinsupp.support_single_ne_zero DFinsupp.support_single_ne_zero
 
 theorem support_single_subset {i : ι} {b : β i} : (single i b).support ⊆ {i} :=
   support_mk'_subset
-#align dfinsupp.support_single_subset Dfinsupp.support_single_subset
+#align dfinsupp.support_single_subset DFinsupp.support_single_subset
 
 section MapRangeAndZipWith
 
@@ -1178,23 +1178,23 @@ theorem mapRange_def [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] {f : ∀ i, β
     mapRange f hf g = mk g.support fun i => f i.1 (g i.1) := by
   ext i
   by_cases h : g i ≠ 0 <;> simp at h <;> simp [h, hf]
-#align dfinsupp.map_range_def Dfinsupp.mapRange_def
+#align dfinsupp.map_range_def DFinsupp.mapRange_def
 
 @[simp]
 theorem mapRange_single {f : ∀ i, β₁ i → β₂ i} {hf : ∀ i, f i 0 = 0} {i : ι} {b : β₁ i} :
     mapRange f hf (single i b) = single i (f i b) :=
-  Dfinsupp.ext fun i' => by
+  DFinsupp.ext fun i' => by
     by_cases h : i = i'
     · subst i'
       simp
     · simp [h, hf]
-#align dfinsupp.map_range_single Dfinsupp.mapRange_single
+#align dfinsupp.map_range_single DFinsupp.mapRange_single
 
 variable [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ (i) (x : β₂ i), Decidable (x ≠ 0)]
 
 theorem support_mapRange {f : ∀ i, β₁ i → β₂ i} {hf : ∀ i, f i 0 = 0} {g : Π₀ i, β₁ i} :
     (mapRange f hf g).support ⊆ g.support := by simp [mapRange_def]
-#align dfinsupp.support_map_range Dfinsupp.support_mapRange
+#align dfinsupp.support_map_range DFinsupp.support_mapRange
 
 theorem zipWith_def {ι : Type u} {β : ι → Type v} {β₁ : ι → Type v₁} {β₂ : ι → Type v₂}
     [dec : DecidableEq ι] [∀ i : ι, Zero (β i)] [∀ i : ι, Zero (β₁ i)] [∀ i : ι, Zero (β₂ i)]
@@ -1204,19 +1204,19 @@ theorem zipWith_def {ι : Type u} {β : ι → Type v} {β₁ : ι → Type v₁
   ext i
   by_cases h1 : g₁ i ≠ 0 <;> by_cases h2 : g₂ i ≠ 0 <;> simp only [not_not, Ne.def] at h1 h2 <;>
     simp [h1, h2, hf]
-#align dfinsupp.zip_with_def Dfinsupp.zipWith_def
+#align dfinsupp.zip_with_def DFinsupp.zipWith_def
 
 theorem support_zipWith {f : ∀ i, β₁ i → β₂ i → β i} {hf : ∀ i, f i 0 0 = 0} {g₁ : Π₀ i, β₁ i}
     {g₂ : Π₀ i, β₂ i} : (zipWith f hf g₁ g₂).support ⊆ g₁.support ∪ g₂.support := by
   simp [zipWith_def]
-#align dfinsupp.support_zip_with Dfinsupp.support_zipWith
+#align dfinsupp.support_zip_with DFinsupp.support_zipWith
 
 end MapRangeAndZipWith
 
 theorem erase_def (i : ι) (f : Π₀ i, β i) : f.erase i = mk (f.support.erase i) fun j => f j.1 := by
   ext j
   by_cases h1 : j = i <;> by_cases h2 : f j ≠ 0 <;> simp at h2 <;> simp [h1, h2]
-#align dfinsupp.erase_def Dfinsupp.erase_def
+#align dfinsupp.erase_def DFinsupp.erase_def
 
 @[simp]
 theorem support_erase (i : ι) (f : Π₀ i, β i) : (f.erase i).support = f.support.erase i := by
@@ -1224,7 +1224,7 @@ theorem support_erase (i : ι) (f : Π₀ i, β i) : (f.erase i).support = f.sup
   by_cases h1 : j = i
   simp [h1]
   by_cases h2 : f j ≠ 0 <;> simp at h2 <;> simp [h1, h2]
-#align dfinsupp.support_erase Dfinsupp.support_erase
+#align dfinsupp.support_erase DFinsupp.support_erase
 
 theorem support_update_ne_zero (f : Π₀ i, β i) (i : ι) {b : β i} (h : b ≠ 0) :
     support (f.update i b) = insert i f.support := by
@@ -1232,7 +1232,7 @@ theorem support_update_ne_zero (f : Π₀ i, β i) (i : ι) {b : β i} (h : b 
   rcases eq_or_ne i j with (rfl | hi)
   · simp [h]
   · simp [hi.symm]
-#align dfinsupp.support_update_ne_zero Dfinsupp.support_update_ne_zero
+#align dfinsupp.support_update_ne_zero DFinsupp.support_update_ne_zero
 
 theorem support_update (f : Π₀ i, β i) (i : ι) (b : β i) [Decidable (b = 0)] :
     support (f.update i b) = if b = 0 then support (f.erase i) else insert i f.support := by
@@ -1241,7 +1241,7 @@ theorem support_update (f : Π₀ i, β i) (i : ι) (b : β i) [Decidable (b = 0
   · subst hb
     simp [update_eq_erase, support_erase]
   · rw [support_update_ne_zero f _ hb]
-#align dfinsupp.support_update Dfinsupp.support_update
+#align dfinsupp.support_update DFinsupp.support_update
 
 section FilterAndSubtypeDomain
 
@@ -1249,24 +1249,24 @@ variable {p : ι → Prop} [DecidablePred p]
 
 theorem filter_def (f : Π₀ i, β i) : f.filter p = mk (f.support.filter p) fun i => f i.1 := by
   ext i; by_cases h1 : p i <;> by_cases h2 : f i ≠ 0 <;> simp at h2 <;> simp [h1, h2]
-#align dfinsupp.filter_def Dfinsupp.filter_def
+#align dfinsupp.filter_def DFinsupp.filter_def
 
 @[simp]
 theorem support_filter (f : Π₀ i, β i) : (f.filter p).support = f.support.filter p := by
   ext i; by_cases h : p i <;> simp [h]
-#align dfinsupp.support_filter Dfinsupp.support_filter
+#align dfinsupp.support_filter DFinsupp.support_filter
 
 theorem subtypeDomain_def (f : Π₀ i, β i) :
     f.subtypeDomain p = mk (f.support.subtype p) fun i => f i := by
   ext i; by_cases h2 : f i ≠ 0 <;> try simp at h2; dsimp; simp [h2]
-#align dfinsupp.subtype_domain_def Dfinsupp.subtypeDomain_def
+#align dfinsupp.subtype_domain_def DFinsupp.subtypeDomain_def
 
 @[simp, nolint simpNF] -- Porting note: simpNF claims that LHS does not simplify, but it does
 theorem support_subtypeDomain {f : Π₀ i, β i} :
     (subtypeDomain p f).support = f.support.subtype p := by
   ext i
   simp
-#align dfinsupp.support_subtype_domain Dfinsupp.support_subtypeDomain
+#align dfinsupp.support_subtype_domain DFinsupp.support_subtypeDomain
 
 end FilterAndSubtypeDomain
 
@@ -1275,18 +1275,18 @@ end SupportBasic
 theorem support_add [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     {g₁ g₂ : Π₀ i, β i} : (g₁ + g₂).support ⊆ g₁.support ∪ g₂.support :=
   support_zipWith
-#align dfinsupp.support_add Dfinsupp.support_add
+#align dfinsupp.support_add DFinsupp.support_add
 
 @[simp]
 theorem support_neg [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] {f : Π₀ i, β i} :
     support (-f) = support f := by ext i; simp
-#align dfinsupp.support_neg Dfinsupp.support_neg
+#align dfinsupp.support_neg DFinsupp.support_neg
 
 theorem support_smul {γ : Type w} [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (β i)]
     [∀ (i : ι) (x : β i), Decidable (x ≠ 0)] (b : γ) (v : Π₀ i, β i) :
     (b • v).support ⊆ v.support :=
   support_mapRange
-#align dfinsupp.support_smul Dfinsupp.support_smul
+#align dfinsupp.support_smul DFinsupp.support_smul
 
 instance [∀ i, Zero (β i)] [∀ i, DecidableEq (β i)] : DecidableEq (Π₀ i, β i) := fun f g =>
   decidable_of_iff (f.support = g.support ∧ ∀ i ∈ f.support, f i = g i)
@@ -1310,27 +1310,27 @@ noncomputable def comapDomain [∀ i, Zero (β i)] (h : κ → ι) (hh : Functio
     f.support'.map fun s =>
       ⟨((Multiset.toFinset s.1).preimage h (hh.injOn _)).val, fun x =>
         (s.prop (h x)).imp_left fun hx => mem_preimage.mpr <| Multiset.mem_toFinset.mpr hx⟩
-#align dfinsupp.comap_domain Dfinsupp.comapDomain
+#align dfinsupp.comap_domain DFinsupp.comapDomain
 
 @[simp]
 theorem comapDomain_apply [∀ i, Zero (β i)] (h : κ → ι) (hh : Function.Injective h) (f : Π₀ i, β i)
     (k : κ) : comapDomain h hh f k = f (h k) :=
   rfl
-#align dfinsupp.comap_domain_apply Dfinsupp.comapDomain_apply
+#align dfinsupp.comap_domain_apply DFinsupp.comapDomain_apply
 
 @[simp]
 theorem comapDomain_zero [∀ i, Zero (β i)] (h : κ → ι) (hh : Function.Injective h) :
     comapDomain h hh (0 : Π₀ i, β i) = 0 := by
   ext
   rw [zero_apply, comapDomain_apply, zero_apply]
-#align dfinsupp.comap_domain_zero Dfinsupp.comapDomain_zero
+#align dfinsupp.comap_domain_zero DFinsupp.comapDomain_zero
 
 @[simp]
 theorem comapDomain_add [∀ i, AddZeroClass (β i)] (h : κ → ι) (hh : Function.Injective h)
     (f g : Π₀ i, β i) : comapDomain h hh (f + g) = comapDomain h hh f + comapDomain h hh g := by
   ext
   rw [add_apply, comapDomain_apply, comapDomain_apply, comapDomain_apply, add_apply]
-#align dfinsupp.comap_domain_add Dfinsupp.comapDomain_add
+#align dfinsupp.comap_domain_add DFinsupp.comapDomain_add
 
 @[simp]
 theorem comapDomain_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
@@ -1338,7 +1338,7 @@ theorem comapDomain_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMu
     comapDomain h hh (r • f) = r • comapDomain h hh f := by
   ext
   rw [smul_apply, comapDomain_apply, smul_apply, comapDomain_apply]
-#align dfinsupp.comap_domain_smul Dfinsupp.comapDomain_smul
+#align dfinsupp.comap_domain_smul DFinsupp.comapDomain_smul
 
 @[simp]
 theorem comapDomain_single [DecidableEq κ] [∀ i, Zero (β i)] (h : κ → ι) (hh : Function.Injective h)
@@ -1348,7 +1348,7 @@ theorem comapDomain_single [DecidableEq κ] [∀ i, Zero (β i)] (h : κ → ι)
   obtain rfl | hik := Decidable.eq_or_ne i k
   · rw [single_eq_same, single_eq_same]
   · rw [single_eq_of_ne hik.symm, single_eq_of_ne (hh.ne hik.symm)]
-#align dfinsupp.comap_domain_single Dfinsupp.comapDomain_single
+#align dfinsupp.comap_domain_single DFinsupp.comapDomain_single
 
 /-- A computable version of comap_domain when an explicit left inverse is provided.-/
 def comapDomain' [∀ i, Zero (β i)] (h : κ → ι) {h' : ι → κ} (hh' : Function.LeftInverse h' h)
@@ -1358,20 +1358,20 @@ def comapDomain' [∀ i, Zero (β i)] (h : κ → ι) {h' : ι → κ} (hh' : Fu
     f.support'.map fun s =>
       ⟨Multiset.map h' s.1, fun x =>
         (s.prop (h x)).imp_left fun hx => Multiset.mem_map.mpr ⟨_, hx, hh' _⟩⟩
-#align dfinsupp.comap_domain' Dfinsupp.comapDomain'
+#align dfinsupp.comap_domain' DFinsupp.comapDomain'
 
 @[simp]
 theorem comapDomain'_apply [∀ i, Zero (β i)] (h : κ → ι) {h' : ι → κ}
     (hh' : Function.LeftInverse h' h) (f : Π₀ i, β i) (k : κ) : comapDomain' h hh' f k = f (h k) :=
   rfl
-#align dfinsupp.comap_domain'_apply Dfinsupp.comapDomain'_apply
+#align dfinsupp.comap_domain'_apply DFinsupp.comapDomain'_apply
 
 @[simp]
 theorem comapDomain'_zero [∀ i, Zero (β i)] (h : κ → ι) {h' : ι → κ}
     (hh' : Function.LeftInverse h' h) : comapDomain' h hh' (0 : Π₀ i, β i) = 0 := by
   ext
   rw [zero_apply, comapDomain'_apply, zero_apply]
-#align dfinsupp.comap_domain'_zero Dfinsupp.comapDomain'_zero
+#align dfinsupp.comap_domain'_zero DFinsupp.comapDomain'_zero
 
 @[simp]
 theorem comapDomain'_add [∀ i, AddZeroClass (β i)] (h : κ → ι) {h' : ι → κ}
@@ -1379,7 +1379,7 @@ theorem comapDomain'_add [∀ i, AddZeroClass (β i)] (h : κ → ι) {h' : ι 
     comapDomain' h hh' (f + g) = comapDomain' h hh' f + comapDomain' h hh' g := by
   ext
   rw [add_apply, comapDomain'_apply, comapDomain'_apply, comapDomain'_apply, add_apply]
-#align dfinsupp.comap_domain'_add Dfinsupp.comapDomain'_add
+#align dfinsupp.comap_domain'_add DFinsupp.comapDomain'_add
 
 @[simp]
 theorem comapDomain'_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
@@ -1387,7 +1387,7 @@ theorem comapDomain'_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribM
     comapDomain' h hh' (r • f) = r • comapDomain' h hh' f := by
   ext
   rw [smul_apply, comapDomain'_apply, smul_apply, comapDomain'_apply]
-#align dfinsupp.comap_domain'_smul Dfinsupp.comapDomain'_smul
+#align dfinsupp.comap_domain'_smul DFinsupp.comapDomain'_smul
 
 @[simp]
 theorem comapDomain'_single [DecidableEq ι] [DecidableEq κ] [∀ i, Zero (β i)] (h : κ → ι)
@@ -1398,7 +1398,7 @@ theorem comapDomain'_single [DecidableEq ι] [DecidableEq κ] [∀ i, Zero (β i
   obtain rfl | hik := Decidable.eq_or_ne i k
   · rw [single_eq_same, single_eq_same]
   · rw [single_eq_of_ne hik.symm, single_eq_of_ne (hh'.injective.ne hik.symm)]
-#align dfinsupp.comap_domain'_single Dfinsupp.comapDomain'_single
+#align dfinsupp.comap_domain'_single DFinsupp.comapDomain'_single
 
 /-- Reindexing terms of a dfinsupp.
 
@@ -1419,8 +1419,8 @@ def equivCongrLeft [∀ i, Zero (β i)] (h : ι ≃ κ) : (Π₀ i, β i) ≃ Π
     ext k
     rw [comapDomain'_apply, mapRange_apply, comapDomain'_apply, Equiv.cast_eq_iff_heq,
       h.apply_symm_apply]
-#align dfinsupp.equiv_congr_left Dfinsupp.equivCongrLeft
-#align dfinsupp.equiv_congr_left_apply Dfinsupp.equivCongrLeft_apply
+#align dfinsupp.equiv_congr_left DFinsupp.equivCongrLeft
+#align dfinsupp.equiv_congr_left_apply DFinsupp.equivCongrLeft_apply
 
 section Curry
 
@@ -1429,23 +1429,23 @@ variable {α : ι → Type _} {δ : ∀ i, α i → Type v}
 -- lean can't find these instances -- Porting note: but Lean 4 can!!!
 instance hasAdd₂ [∀ i j, AddZeroClass (δ i j)] : Add (Π₀ (i : ι) (j : α i), δ i j) :=
   inferInstance
-  -- @Dfinsupp.hasAdd ι (fun i => Π₀ j, δ i j) _
-#align dfinsupp.has_add₂ Dfinsupp.hasAdd₂
+  -- @DFinsupp.hasAdd ι (fun i => Π₀ j, δ i j) _
+#align dfinsupp.has_add₂ DFinsupp.hasAdd₂
 
 instance addZeroClass₂ [∀ i j, AddZeroClass (δ i j)] : AddZeroClass (Π₀ (i : ι) (j : α i), δ i j) :=
   inferInstance
-  -- @Dfinsupp.addZeroClass ι (fun i => Π₀ j, δ i j) _
-#align dfinsupp.add_zero_class₂ Dfinsupp.addZeroClass₂
+  -- @DFinsupp.addZeroClass ι (fun i => Π₀ j, δ i j) _
+#align dfinsupp.add_zero_class₂ DFinsupp.addZeroClass₂
 
 instance addMonoid₂ [∀ i j, AddMonoid (δ i j)] : AddMonoid (Π₀ (i : ι) (j : α i), δ i j) :=
   inferInstance
-  -- @Dfinsupp.addMonoid ι (fun i => Π₀ j, δ i j) _
-#align dfinsupp.add_monoid₂ Dfinsupp.addMonoid₂
+  -- @DFinsupp.addMonoid ι (fun i => Π₀ j, δ i j) _
+#align dfinsupp.add_monoid₂ DFinsupp.addMonoid₂
 
 instance distribMulAction₂ [Monoid γ] [∀ i j, AddMonoid (δ i j)]
     [∀ i j, DistribMulAction γ (δ i j)] : DistribMulAction γ (Π₀ (i : ι) (j : α i), δ i j) :=
-  @Dfinsupp.distribMulAction ι _ (fun i => Π₀ j, δ i j) _ _ _
-#align dfinsupp.distrib_mul_action₂ Dfinsupp.distribMulAction₂
+  @DFinsupp.distribMulAction ι _ (fun i => Π₀ j, δ i j) _ _ _
+#align dfinsupp.distrib_mul_action₂ DFinsupp.distribMulAction₂
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /-- The natural map between `Π₀ (i : Σ i, α i), δ i.1 i.2` and `Π₀ i (j : α i), δ i j`.  -/
@@ -1454,7 +1454,7 @@ noncomputable def sigmaCurry [∀ i j, Zero (δ i j)] (f : Π₀ i : Σi, _, δ
   classical!
   exact mk (f.support.image fun i => i.1) fun i =>
     mk (f.support.preimage (⟨i, ·⟩) $ sigma_mk_injective.injOn _) fun j => f ⟨i, j⟩
-#align dfinsupp.sigma_curry Dfinsupp.sigmaCurry
+#align dfinsupp.sigma_curry DFinsupp.sigmaCurry
 
 @[simp]
 theorem sigmaCurry_apply [∀ i j, Zero (δ i j)] (f : Π₀ i : Σi, _, δ i.1 i.2) (i : ι) (j : α i) :
@@ -1477,14 +1477,14 @@ theorem sigmaCurry_apply [∀ i j, Zero (δ i j)] (f : Π₀ i : Σi, _, δ i.1
       convert (mem_support_toFun f _).2 h
     · rw [mem_preimage]
       convert (mem_support_toFun f _).2 h
-#align dfinsupp.sigma_curry_apply Dfinsupp.sigmaCurry_apply
+#align dfinsupp.sigma_curry_apply DFinsupp.sigmaCurry_apply
 
 @[simp]
 theorem sigmaCurry_zero [∀ i j, Zero (δ i j)] : sigmaCurry (0 : Π₀ i : Σi, _, δ i.1 i.2) = 0 := by
   ext i j
   rw [sigmaCurry_apply]
   rfl
-#align dfinsupp.sigma_curry_zero Dfinsupp.sigmaCurry_zero
+#align dfinsupp.sigma_curry_zero DFinsupp.sigmaCurry_zero
 
 @[simp]
 theorem sigmaCurry_add [∀ i j, AddZeroClass (δ i j)] (f g : Π₀ i : Σi, α i, δ i.1 i.2) :
@@ -1492,7 +1492,7 @@ theorem sigmaCurry_add [∀ i j, AddZeroClass (δ i j)] (f g : Π₀ i : Σi, α
   ext i j
   rw [@add_apply _ (fun i => Π₀ j, δ i j) _ (sigmaCurry _), add_apply, sigmaCurry_apply,
     sigmaCurry_apply, sigmaCurry_apply, add_apply]
-#align dfinsupp.sigma_curry_add Dfinsupp.sigmaCurry_add
+#align dfinsupp.sigma_curry_add DFinsupp.sigmaCurry_add
 
 @[simp]
 theorem sigmaCurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)] [∀ i j, DistribMulAction γ (δ i j)]
@@ -1501,7 +1501,7 @@ theorem sigmaCurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)] [∀ i j, Dist
   ext i j
   rw [@smul_apply _ _ (fun i => Π₀ j, δ i j) _ _ _ _ (sigmaCurry _), smul_apply, sigmaCurry_apply,
     sigmaCurry_apply, smul_apply]
-#align dfinsupp.sigma_curry_smul Dfinsupp.sigmaCurry_smul
+#align dfinsupp.sigma_curry_smul DFinsupp.sigmaCurry_smul
 
 @[simp]
 theorem sigmaCurry_single [∀ i, DecidableEq (α i)] [∀ i j, Zero (δ i j)]
@@ -1519,7 +1519,7 @@ theorem sigmaCurry_single [∀ i, DecidableEq (α i)] [∀ i j, Zero (δ i j)]
       simpa using hj
   · rw [single_eq_of_ne, single_eq_of_ne hi, zero_apply]
     simp [hi]
-#align dfinsupp.sigma_curry_single Dfinsupp.sigmaCurry_single
+#align dfinsupp.sigma_curry_single DFinsupp.sigmaCurry_single
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /-- The natural map between `Π₀ i (j : α i), δ i j` and `Π₀ (i : Σ i, α i), δ i.1 i.2`, inverse of
@@ -1539,7 +1539,7 @@ def sigmaUncurry [∀ i j, Zero (δ i j)]
         · exact Or.inl ⟨_, hi, i.2, hi', Sigma.eta _⟩
       · right
         rw [hi, zero_apply]⟩
-#align dfinsupp.sigma_uncurry Dfinsupp.sigmaUncurry
+#align dfinsupp.sigma_uncurry DFinsupp.sigmaUncurry
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
@@ -1548,7 +1548,7 @@ theorem sigmaUncurry_apply [∀ i j, Zero (δ i j)]
     (f : Π₀ (i) (j), δ i j) (i : ι) (j : α i) :
     sigmaUncurry f ⟨i, j⟩ = f i j :=
   rfl
-#align dfinsupp.sigma_uncurry_apply Dfinsupp.sigmaUncurry_apply
+#align dfinsupp.sigma_uncurry_apply DFinsupp.sigmaUncurry_apply
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
@@ -1556,7 +1556,7 @@ theorem sigmaUncurry_zero [∀ i j, Zero (δ i j)]
     [∀ i, DecidableEq (α i)] [∀ i j (x : δ i j), Decidable (x ≠ 0)] :
     sigmaUncurry (0 : Π₀ (i) (j), δ i j) = 0 :=
   rfl
-#align dfinsupp.sigma_uncurry_zero Dfinsupp.sigmaUncurry_zero
+#align dfinsupp.sigma_uncurry_zero DFinsupp.sigmaUncurry_zero
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
@@ -1565,7 +1565,7 @@ theorem sigmaUncurry_add [∀ i j, AddZeroClass (δ i j)]
     (f g : Π₀ (i) (j), δ i j) :
     sigmaUncurry (f + g) = sigmaUncurry f + sigmaUncurry g :=
   FunLike.coe_injective rfl
-#align dfinsupp.sigma_uncurry_add Dfinsupp.sigmaUncurry_add
+#align dfinsupp.sigma_uncurry_add DFinsupp.sigmaUncurry_add
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 @[simp]
@@ -1574,7 +1574,7 @@ theorem sigmaUncurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)]
     [∀ i j, DistribMulAction γ (δ i j)]
     (r : γ) (f : Π₀ (i) (j), δ i j) : sigmaUncurry (r • f) = r • sigmaUncurry f :=
   FunLike.coe_injective rfl
-#align dfinsupp.sigma_uncurry_smul Dfinsupp.sigmaUncurry_smul
+#align dfinsupp.sigma_uncurry_smul DFinsupp.sigmaUncurry_smul
 
 @[simp]
 theorem sigmaUncurry_single [∀ i j, Zero (δ i j)]
@@ -1592,7 +1592,7 @@ theorem sigmaUncurry_single [∀ i j, Zero (δ i j)]
       simpa using hj
   · rw [single_eq_of_ne hi, single_eq_of_ne, zero_apply]
     simp [hi]
-#align dfinsupp.sigma_uncurry_single Dfinsupp.sigmaUncurry_single
+#align dfinsupp.sigma_uncurry_single DFinsupp.sigmaUncurry_single
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /-- The natural bijection between `Π₀ (i : Σ i, α i), δ i.1 i.2` and `Π₀ i (j : α i), δ i j`.
@@ -1610,7 +1610,7 @@ noncomputable def sigmaCurryEquiv [∀ i j, Zero (δ i j)]
   right_inv f := by
     ext i j
     rw [sigmaCurry_apply, sigmaUncurry_apply]
-#align dfinsupp.sigma_curry_equiv Dfinsupp.sigmaCurryEquiv
+#align dfinsupp.sigma_curry_equiv DFinsupp.sigmaCurryEquiv
 
 end Curry
 
@@ -1628,19 +1628,19 @@ def extendWith [∀ i, Zero (α i)] (a : α none) (f : Π₀ i, α (some i)) : 
           (fun i =>
             (s.prop i).imp_left fun h => Multiset.mem_cons_of_mem <| Multiset.mem_map_of_mem _ h)
           i⟩
-#align dfinsupp.extend_with Dfinsupp.extendWith
+#align dfinsupp.extend_with DFinsupp.extendWith
 
 @[simp]
 theorem extendWith_none [∀ i, Zero (α i)] (f : Π₀ i, α (some i)) (a : α none) :
     f.extendWith a none = a :=
   rfl
-#align dfinsupp.extend_with_none Dfinsupp.extendWith_none
+#align dfinsupp.extend_with_none DFinsupp.extendWith_none
 
 @[simp]
 theorem extendWith_some [∀ i, Zero (α i)] (f : Π₀ i, α (some i)) (a : α none) (i : ι) :
     f.extendWith a (some i) = f i :=
   rfl
-#align dfinsupp.extend_with_some Dfinsupp.extendWith_some
+#align dfinsupp.extend_with_some DFinsupp.extendWith_some
 
 @[simp]
 theorem extendWith_single_zero [DecidableEq ι] [∀ i, Zero (α i)] (i : ι) (x : α (some i)) :
@@ -1651,7 +1651,7 @@ theorem extendWith_single_zero [DecidableEq ι] [∀ i, Zero (α i)] (i : ι) (x
     obtain rfl | hij := Decidable.eq_or_ne i j
     · rw [single_eq_same, single_eq_same]
     · rw [single_eq_of_ne hij, single_eq_of_ne ((Option.some_injective _).ne hij)]
-#align dfinsupp.extend_with_single_zero Dfinsupp.extendWith_single_zero
+#align dfinsupp.extend_with_single_zero DFinsupp.extendWith_single_zero
 
 @[simp]
 theorem extendWith_zero [DecidableEq ι] [∀ i, Zero (α i)] (x : α none) :
@@ -1659,13 +1659,13 @@ theorem extendWith_zero [DecidableEq ι] [∀ i, Zero (α i)] (x : α none) :
   ext (_ | j)
   · rw [extendWith_none, single_eq_same]
   · rw [extendWith_some, single_eq_of_ne (Option.some_ne_none _).symm, zero_apply]
-#align dfinsupp.extend_with_zero Dfinsupp.extendWith_zero
+#align dfinsupp.extend_with_zero DFinsupp.extendWith_zero
 
 /-- Bijection obtained by separating the term of index `none` of a dfinsupp over `Option ι`.
 
 This is the dfinsupp version of `Equiv.piOptionEquivProd`. -/
 @[simps]
-noncomputable def equivProdDfinsupp [∀ i, Zero (α i)] : (Π₀ i, α i) ≃ α none × Π₀ i, α (some i)
+noncomputable def equivProdDFinsupp [∀ i, Zero (α i)] : (Π₀ i, α i) ≃ α none × Π₀ i, α (some i)
     where
   toFun f := (f none, comapDomain some (Option.some_injective _) f)
   invFun f := f.2.extendWith f.1
@@ -1678,31 +1678,31 @@ noncomputable def equivProdDfinsupp [∀ i, Zero (α i)] : (Π₀ i, α i) ≃ 
     ext
     · exact extendWith_none x.snd _
     · rw [comapDomain_apply, extendWith_some]
-#align dfinsupp.equiv_prod_dfinsupp Dfinsupp.equivProdDfinsupp
-#align dfinsupp.equiv_prod_dfinsupp_apply Dfinsupp.equivProdDfinsupp_apply
-#align dfinsupp.equiv_prod_dfinsupp_symm_apply Dfinsupp.equivProdDfinsupp_symm_apply
+#align dfinsupp.equiv_prod_dfinsupp DFinsupp.equivProdDFinsupp
+#align dfinsupp.equiv_prod_dfinsupp_apply DFinsupp.equivProdDFinsupp_apply
+#align dfinsupp.equiv_prod_dfinsupp_symm_apply DFinsupp.equivProdDFinsupp_symm_apply
 
-theorem equivProdDfinsupp_add [∀ i, AddZeroClass (α i)] (f g : Π₀ i, α i) :
-    equivProdDfinsupp (f + g) = equivProdDfinsupp f + equivProdDfinsupp g :=
+theorem equivProdDFinsupp_add [∀ i, AddZeroClass (α i)] (f g : Π₀ i, α i) :
+    equivProdDFinsupp (f + g) = equivProdDFinsupp f + equivProdDFinsupp g :=
   Prod.ext (add_apply _ _ _) (comapDomain_add _ (Option.some_injective _) _ _)
-#align dfinsupp.equiv_prod_dfinsupp_add Dfinsupp.equivProdDfinsupp_add
+#align dfinsupp.equiv_prod_dfinsupp_add DFinsupp.equivProdDFinsupp_add
 
-theorem equivProdDfinsupp_smul [Monoid γ] [∀ i, AddMonoid (α i)] [∀ i, DistribMulAction γ (α i)]
-    (r : γ) (f : Π₀ i, α i) : equivProdDfinsupp (r • f) = r • equivProdDfinsupp f :=
+theorem equivProdDFinsupp_smul [Monoid γ] [∀ i, AddMonoid (α i)] [∀ i, DistribMulAction γ (α i)]
+    (r : γ) (f : Π₀ i, α i) : equivProdDFinsupp (r • f) = r • equivProdDFinsupp f :=
   Prod.ext (smul_apply _ _ _) (comapDomain_smul _ (Option.some_injective _) _ _)
-#align dfinsupp.equiv_prod_dfinsupp_smul Dfinsupp.equivProdDfinsupp_smul
+#align dfinsupp.equiv_prod_dfinsupp_smul DFinsupp.equivProdDFinsupp_smul
 
 end Equiv
 
 section ProdAndSum
 
-/-- `Dfinsupp.prod f g` is the product of `g i (f i)` over the support of `f`. -/
+/-- `DFinsupp.prod f g` is the product of `g i (f i)` over the support of `f`. -/
 @[to_additive "`sum f g` is the sum of `g i (f i)` over the support of `f`."]
 def prod [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ] (f : Π₀ i, β i)
     (g : ∀ i, β i → γ) : γ :=
   ∏ i in f.support, g i (f i)
-#align dfinsupp.prod Dfinsupp.prod
-#align dfinsupp.sum Dfinsupp.sum
+#align dfinsupp.prod DFinsupp.prod
+#align dfinsupp.sum DFinsupp.sum
 
 @[to_additive]
 theorem prod_mapRange_index {β₁ : ι → Type v₁} {β₂ : ι → Type v₂} [∀ i, Zero (β₁ i)]
@@ -1720,34 +1720,34 @@ theorem prod_mapRange_index {β₁ : ι → Type v₁} {β₂ : ι → Type v₂
     intro i h1
     simp only [mem_support_toFun, ne_eq] at h1
     simp [h1]
-#align dfinsupp.prod_map_range_index Dfinsupp.prod_mapRange_index
-#align dfinsupp.sum_map_range_index Dfinsupp.sum_mapRange_index
+#align dfinsupp.prod_map_range_index DFinsupp.prod_mapRange_index
+#align dfinsupp.sum_map_range_index DFinsupp.sum_mapRange_index
 
 @[to_additive]
 theorem prod_zero_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     [CommMonoid γ] {h : ∀ i, β i → γ} : (0 : Π₀ i, β i).prod h = 1 :=
   rfl
-#align dfinsupp.prod_zero_index Dfinsupp.prod_zero_index
-#align dfinsupp.sum_zero_index Dfinsupp.sum_zero_index
+#align dfinsupp.prod_zero_index DFinsupp.prod_zero_index
+#align dfinsupp.sum_zero_index DFinsupp.sum_zero_index
 
 @[to_additive]
 theorem prod_single_index [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {i : ι} {b : β i} {h : ∀ i, β i → γ} (h_zero : h i 0 = 1) : (single i b).prod h = h i b := by
   by_cases h : b ≠ 0
-  · simp [Dfinsupp.prod, support_single_ne_zero h]
+  · simp [DFinsupp.prod, support_single_ne_zero h]
   · rw [not_not] at h
     simp [h, prod_zero_index, h_zero]
     rfl
-#align dfinsupp.prod_single_index Dfinsupp.prod_single_index
-#align dfinsupp.sum_single_index Dfinsupp.sum_single_index
+#align dfinsupp.prod_single_index DFinsupp.prod_single_index
+#align dfinsupp.sum_single_index DFinsupp.sum_single_index
 
 @[to_additive]
 theorem prod_neg_index [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {g : Π₀ i, β i} {h : ∀ i, β i → γ} (h0 : ∀ i, h i 0 = 1) :
     (-g).prod h = g.prod fun i b => h i (-b) :=
   prod_mapRange_index h0
-#align dfinsupp.prod_neg_index Dfinsupp.prod_neg_index
-#align dfinsupp.sum_neg_index Dfinsupp.sum_neg_index
+#align dfinsupp.prod_neg_index DFinsupp.prod_neg_index
+#align dfinsupp.sum_neg_index DFinsupp.sum_neg_index
 
 @[to_additive]
 theorem prod_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂ : ι₂ → Type _} [DecidableEq ι₁]
@@ -1757,15 +1757,15 @@ theorem prod_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂ : ι
     (f₁.prod fun i₁ x₁ => f₂.prod fun i₂ x₂ => h i₁ x₁ i₂ x₂) =
       f₂.prod fun i₂ x₂ => f₁.prod fun i₁ x₁ => h i₁ x₁ i₂ x₂ :=
   Finset.prod_comm
-#align dfinsupp.prod_comm Dfinsupp.prod_comm
-#align dfinsupp.sum_comm Dfinsupp.sum_comm
+#align dfinsupp.prod_comm DFinsupp.prod_comm
+#align dfinsupp.sum_comm DFinsupp.sum_comm
 
 @[simp]
 theorem sum_apply {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
     [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)] {f : Π₀ i₁, β₁ i₁}
     {g : ∀ i₁, β₁ i₁ → Π₀ i, β i} {i₂ : ι} : (f.sum g) i₂ = f.sum fun i₁ b => g i₁ b i₂ :=
   (evalAddMonoidHom i₂ : (Π₀ i, β i) →+ β i₂).map_sum _ f.support
-#align dfinsupp.sum_apply Dfinsupp.sum_apply
+#align dfinsupp.sum_apply DFinsupp.sum_apply
 
 theorem support_sum {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
     [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)]
@@ -1778,42 +1778,42 @@ theorem support_sum {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → T
     let ⟨i, hi, Ne⟩ := Finset.exists_ne_zero_of_sum_ne_zero h
     ⟨i, mem_support_iff.1 hi, Ne⟩
   simpa [Finset.subset_iff, mem_support_iff, Finset.mem_biUnion, sum_apply] using this
-#align dfinsupp.support_sum Dfinsupp.support_sum
+#align dfinsupp.support_sum DFinsupp.support_sum
 
 @[to_additive (attr := simp)]
 theorem prod_one [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {f : Π₀ i, β i} : (f.prod fun _ _ => (1 : γ)) = 1 :=
   Finset.prod_const_one
-#align dfinsupp.prod_one Dfinsupp.prod_one
-#align dfinsupp.sum_zero Dfinsupp.sum_zero
+#align dfinsupp.prod_one DFinsupp.prod_one
+#align dfinsupp.sum_zero DFinsupp.sum_zero
 
 @[to_additive (attr := simp)]
 theorem prod_mul [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {f : Π₀ i, β i} {h₁ h₂ : ∀ i, β i → γ} :
     (f.prod fun i b => h₁ i b * h₂ i b) = f.prod h₁ * f.prod h₂ :=
   Finset.prod_mul_distrib
-#align dfinsupp.prod_mul Dfinsupp.prod_mul
-#align dfinsupp.sum_add Dfinsupp.sum_add
+#align dfinsupp.prod_mul DFinsupp.prod_mul
+#align dfinsupp.sum_add DFinsupp.sum_add
 
 @[to_additive (attr := simp)]
 theorem prod_inv [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommGroup γ]
     {f : Π₀ i, β i} {h : ∀ i, β i → γ} : (f.prod fun i b => (h i b)⁻¹) = (f.prod h)⁻¹ :=
   ((invMonoidHom : γ →* γ).map_prod _ f.support).symm
-#align dfinsupp.prod_inv Dfinsupp.prod_inv
-#align dfinsupp.sum_neg Dfinsupp.sum_neg
+#align dfinsupp.prod_inv DFinsupp.prod_inv
+#align dfinsupp.sum_neg DFinsupp.sum_neg
 
 @[to_additive]
 theorem prod_eq_one [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [CommMonoid γ]
     {f : Π₀ i, β i} {h : ∀ i, β i → γ} (hyp : ∀ i, h i (f i) = 1) : f.prod h = 1 :=
   Finset.prod_eq_one fun i _ => hyp i
-#align dfinsupp.prod_eq_one Dfinsupp.prod_eq_one
-#align dfinsupp.sum_eq_zero Dfinsupp.sum_eq_zero
+#align dfinsupp.prod_eq_one DFinsupp.prod_eq_one
+#align dfinsupp.sum_eq_zero DFinsupp.sum_eq_zero
 
 theorem smul_sum {α : Type _} [Monoid α] [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
     [AddCommMonoid γ] [DistribMulAction α γ] {f : Π₀ i, β i} {h : ∀ i, β i → γ} {c : α} :
     c • f.sum h = f.sum fun a b => c • h a b :=
   Finset.smul_sum
-#align dfinsupp.smul_sum Dfinsupp.smul_sum
+#align dfinsupp.smul_sum DFinsupp.smul_sum
 
 @[to_additive]
 theorem prod_add_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
@@ -1832,8 +1832,8 @@ theorem prod_add_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decida
     _ = (∏ i in f.support ∪ g.support, h i (f i)) * ∏ i in f.support ∪ g.support, h i (g i) := by
       { simp [h_add, Finset.prod_mul_distrib] }
     _ = _ := by rw [f_eq, g_eq]
-#align dfinsupp.prod_add_index Dfinsupp.prod_add_index
-#align dfinsupp.sum_add_index Dfinsupp.sum_add_index
+#align dfinsupp.prod_add_index DFinsupp.prod_add_index
+#align dfinsupp.sum_add_index DFinsupp.sum_add_index
 
 @[to_additive]
 theorem _root_.dfinsupp_prod_mem [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
@@ -1848,14 +1848,14 @@ theorem _root_.dfinsupp_prod_mem [∀ i, Zero (β i)] [∀ (i) (x : β i), Decid
 theorem prod_eq_prod_fintype [Fintype ι] [∀ i, Zero (β i)] [∀ (i : ι) (x : β i), Decidable (x ≠ 0)]
     -- Porting note: `f` was a typeclass argument
     [CommMonoid γ] (v : Π₀ i, β i) {f : ∀ i, β i → γ} (hf : ∀ i, f i 0 = 1) :
-    v.prod f = ∏ i, f i (Dfinsupp.equivFunOnFintype v i) := by
-  suffices (∏ i in v.support, f i (v i)) = ∏ i, f i (v i) by simp [Dfinsupp.prod, this]
+    v.prod f = ∏ i, f i (DFinsupp.equivFunOnFintype v i) := by
+  suffices (∏ i in v.support, f i (v i)) = ∏ i, f i (v i) by simp [DFinsupp.prod, this]
   apply Finset.prod_subset v.support.subset_univ
   intro i _ hi
   rw [mem_support_iff, not_not] at hi
   rw [hi, hf]
-#align dfinsupp.prod_eq_prod_fintype Dfinsupp.prod_eq_prod_fintype
-#align dfinsupp.sum_eq_sum_fintype Dfinsupp.sum_eq_sum_fintype
+#align dfinsupp.prod_eq_prod_fintype DFinsupp.prod_eq_prod_fintype
+#align dfinsupp.sum_eq_sum_fintype DFinsupp.sum_eq_sum_fintype
 
 /--
 When summing over an `AddMonoidHom`, the decidability assumption is not needed, and the result is
@@ -1905,20 +1905,20 @@ def sumAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i
         rw [(hg i).resolve_left H2, AddMonoidHom.map_zero]
   map_zero' := by
     simp only [toFun_eq_coe, coe_zero, Pi.zero_apply, map_zero, Finset.sum_const_zero]; rfl
-#align dfinsupp.sum_add_hom Dfinsupp.sumAddHom
+#align dfinsupp.sum_add_hom DFinsupp.sumAddHom
 
 @[simp]
 theorem sumAddHom_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (φ : ∀ i, β i →+ γ) (i)
     (x : β i) : sumAddHom φ (single i x) = φ i x := by
   dsimp [sumAddHom, single, Trunc.lift_mk]
   rw [Multiset.toFinset_singleton, Finset.sum_singleton, Pi.single_eq_same]
-#align dfinsupp.sum_add_hom_single Dfinsupp.sumAddHom_single
+#align dfinsupp.sum_add_hom_single DFinsupp.sumAddHom_single
 
 @[simp]
 theorem sumAddHom_comp_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f : ∀ i, β i →+ γ)
     (i : ι) : (sumAddHom f).comp (singleAddHom β i) = f i :=
   AddMonoidHom.ext fun x => sumAddHom_single f i x
-#align dfinsupp.sum_add_hom_comp_single Dfinsupp.sumAddHom_comp_single
+#align dfinsupp.sum_add_hom_comp_single DFinsupp.sumAddHom_comp_single
 
 /-- While we didn't need decidable instances to define it, we do to reduce it to a sum -/
 theorem sumAddHom_apply [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
@@ -1931,32 +1931,32 @@ theorem sumAddHom_apply [∀ i, AddZeroClass (β i)] [∀ (i) (x : β i), Decida
   split_ifs with h
   rfl
   rw [not_not.mp h, AddMonoidHom.map_zero]
-#align dfinsupp.sum_add_hom_apply Dfinsupp.sumAddHom_apply
+#align dfinsupp.sum_add_hom_apply DFinsupp.sumAddHom_apply
 
 theorem _root_.dfinsupp_sumAddHom_mem [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] {S : Type _}
     [SetLike S γ] [AddSubmonoidClass S γ] (s : S) (f : Π₀ i, β i) (g : ∀ i, β i →+ γ)
-    (h : ∀ c, f c ≠ 0 → g c (f c) ∈ s) : Dfinsupp.sumAddHom g f ∈ s := by
+    (h : ∀ c, f c ≠ 0 → g c (f c) ∈ s) : DFinsupp.sumAddHom g f ∈ s := by
   classical
-    rw [Dfinsupp.sumAddHom_apply]
+    rw [DFinsupp.sumAddHom_apply]
     exact dfinsupp_sum_mem s f (g ·) h
 #align dfinsupp_sum_add_hom_mem dfinsupp_sumAddHom_mem
 
 /-- The supremum of a family of commutative additive submonoids is equal to the range of
-`Dfinsupp.sumAddHom`; that is, every element in the `iSup` can be produced from taking a finite
+`DFinsupp.sumAddHom`; that is, every element in the `iSup` can be produced from taking a finite
 number of non-zero elements of `S i`, coercing them to `γ`, and summing them. -/
 theorem _root_.AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom
     [AddCommMonoid γ] (S : ι → AddSubmonoid γ) :
-    iSup S = AddMonoidHom.mrange (Dfinsupp.sumAddHom fun i => (S i).subtype) := by
+    iSup S = AddMonoidHom.mrange (DFinsupp.sumAddHom fun i => (S i).subtype) := by
   apply le_antisymm
   · apply iSup_le _
     intro i y hy
-    exact ⟨Dfinsupp.single i ⟨y, hy⟩, Dfinsupp.sumAddHom_single _ _ _⟩
+    exact ⟨DFinsupp.single i ⟨y, hy⟩, DFinsupp.sumAddHom_single _ _ _⟩
   · rintro x ⟨v, rfl⟩
     exact dfinsupp_sumAddHom_mem _ v _ fun i _ => (le_iSup S i : S i ≤ _) (v i).prop
 #align add_submonoid.supr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom
 
 /-- The bounded supremum of a family of commutative additive submonoids is equal to the range of
-`Dfinsupp.sumAddHom` composed with `Dfinsupp.filterAddMonoidHom`; that is, every element in the
+`DFinsupp.sumAddHom` composed with `DFinsupp.filterAddMonoidHom`; that is, every element in the
 bounded `iSup` can be produced from taking a finite number of non-zero elements from the `S i` that
 satisfy `p i`, coercing them to `γ`, and summing them. -/
 theorem _root_.AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom (p : ι → Prop) [DecidablePred p]
@@ -1964,7 +1964,7 @@ theorem _root_.AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom (p : ι → Prop)
     ⨆ (i) (_ : p i), S i = -- Porting note: Removing `h` results in a timeout
       AddMonoidHom.mrange ((sumAddHom fun i => (S i).subtype).comp (filterAddMonoidHom _ p)) := by
   apply le_antisymm
-  · refine' iSup₂_le fun i hi y hy => ⟨Dfinsupp.single i ⟨y, hy⟩, _⟩
+  · refine' iSup₂_le fun i hi y hy => ⟨DFinsupp.single i ⟨y, hy⟩, _⟩
     rw [AddMonoidHom.comp_apply, filterAddMonoidHom_apply, filter_single_pos _ _ hi]
     exact sumAddHom_single _ _ _
   · rintro x ⟨v, rfl⟩
@@ -1976,7 +1976,7 @@ theorem _root_.AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom (p : ι → Prop)
 #align add_submonoid.bsupr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom
 
 theorem _root_.AddSubmonoid.mem_iSup_iff_exists_dfinsupp [AddCommMonoid γ] (S : ι → AddSubmonoid γ)
-    (x : γ) : x ∈ iSup S ↔ ∃ f : Π₀ i, S i, Dfinsupp.sumAddHom (fun i => (S i).subtype) f = x :=
+    (x : γ) : x ∈ iSup S ↔ ∃ f : Π₀ i, S i, DFinsupp.sumAddHom (fun i => (S i).subtype) f = x :=
   SetLike.ext_iff.mp (AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom S) x
 #align add_submonoid.mem_supr_iff_exists_dfinsupp AddSubmonoid.mem_iSup_iff_exists_dfinsupp
 
@@ -1992,7 +1992,7 @@ theorem _root_.AddSubmonoid.mem_iSup_iff_exists_dfinsupp' [AddCommMonoid γ] (S
 theorem _root_.AddSubmonoid.mem_bsupr_iff_exists_dfinsupp (p : ι → Prop) [DecidablePred p]
     [AddCommMonoid γ] (S : ι → AddSubmonoid γ) (x : γ) :
     (x ∈ ⨆ (i) (_ : p i), S i) ↔
-      ∃ f : Π₀ i, S i, Dfinsupp.sumAddHom (fun i => (S i).subtype) (f.filter p) = x :=
+      ∃ f : Π₀ i, S i, DFinsupp.sumAddHom (fun i => (S i).subtype) (f.filter p) = x :=
   SetLike.ext_iff.mp (AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom p S) x
 #align add_submonoid.mem_bsupr_iff_exists_dfinsupp AddSubmonoid.mem_bsupr_iff_exists_dfinsupp
 
@@ -2005,9 +2005,9 @@ theorem sumAddHom_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂
   simp only [sumAddHom, AddMonoidHom.finset_sum_apply, Quotient.liftOn_mk, AddMonoidHom.coe_mk,
     AddMonoidHom.flip_apply, Trunc.lift, toFun_eq_coe, ZeroHom.coe_mk, coe_mk']
   exact Finset.sum_comm
-#align dfinsupp.sum_add_hom_comm Dfinsupp.sumAddHom_comm
+#align dfinsupp.sum_add_hom_comm DFinsupp.sumAddHom_comm
 
-/-- The `Dfinsupp` version of `Finsupp.liftAddHom`,-/
+/-- The `DFinsupp` version of `Finsupp.liftAddHom`,-/
 @[simps apply symm_apply]
 def liftAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] : (∀ i, β i →+ γ) ≃+ ((Π₀ i, β i) →+ γ)
     where
@@ -2016,61 +2016,61 @@ def liftAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] : (∀ i, β i 
   left_inv x := by ext; simp
   right_inv ψ := by ext; simp
   map_add' F G := by ext; simp
-#align dfinsupp.lift_add_hom Dfinsupp.liftAddHom
-#align dfinsupp.lift_add_hom_apply Dfinsupp.liftAddHom_apply
-#align dfinsupp.lift_add_hom_symm_apply Dfinsupp.liftAddHom_symm_apply
+#align dfinsupp.lift_add_hom DFinsupp.liftAddHom
+#align dfinsupp.lift_add_hom_apply DFinsupp.liftAddHom_apply
+#align dfinsupp.lift_add_hom_symm_apply DFinsupp.liftAddHom_symm_apply
 
 -- Porting note: The elaborator is struggling with `liftAddHom`. Passing it `β` explicitly helps.
 -- This applies to roughly the remainder of the file.
 
-/-- The `Dfinsupp` version of `Finsupp.liftAddHom_singleAddHom`,-/
+/-- The `DFinsupp` version of `Finsupp.liftAddHom_singleAddHom`,-/
 @[simp, nolint simpNF] -- Porting note: linter claims that simp can prove this, but it can not
 theorem liftAddHom_singleAddHom [∀ i, AddCommMonoid (β i)] :
     liftAddHom (β := β) (singleAddHom β) = AddMonoidHom.id (Π₀ i, β i) :=
   (liftAddHom (β := β)).toEquiv.apply_eq_iff_eq_symm_apply.2 rfl
-#align dfinsupp.lift_add_hom_single_add_hom Dfinsupp.liftAddHom_singleAddHom
+#align dfinsupp.lift_add_hom_single_add_hom DFinsupp.liftAddHom_singleAddHom
 
-/-- The `Dfinsupp` version of `Finsupp.liftAddHom_apply_single`,-/
+/-- The `DFinsupp` version of `Finsupp.liftAddHom_apply_single`,-/
 theorem liftAddHom_apply_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f : ∀ i, β i →+ γ)
     (i : ι) (x : β i) : liftAddHom (β := β) f (single i x) = f i x := by simp
-#align dfinsupp.lift_add_hom_apply_single Dfinsupp.liftAddHom_apply_single
+#align dfinsupp.lift_add_hom_apply_single DFinsupp.liftAddHom_apply_single
 
-/-- The `Dfinsupp` version of `Finsupp.liftAddHom_comp_single`,-/
+/-- The `DFinsupp` version of `Finsupp.liftAddHom_comp_single`,-/
 theorem liftAddHom_comp_single [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (f : ∀ i, β i →+ γ)
     (i : ι) : (liftAddHom (β := β) f).comp (singleAddHom β i) = f i := by simp
-#align dfinsupp.lift_add_hom_comp_single Dfinsupp.liftAddHom_comp_single
+#align dfinsupp.lift_add_hom_comp_single DFinsupp.liftAddHom_comp_single
 
-/-- The `Dfinsupp` version of `Finsupp.comp_liftAddHom`,-/
+/-- The `DFinsupp` version of `Finsupp.comp_liftAddHom`,-/
 theorem comp_liftAddHom {δ : Type _} [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] [AddCommMonoid δ]
     (g : γ →+ δ) (f : ∀ i, β i →+ γ) :
     g.comp (liftAddHom (β := β) f) = liftAddHom (β := β) fun a => g.comp (f a) :=
   (liftAddHom (β := β)).symm_apply_eq.1 <|
     funext fun a => by
       rw [liftAddHom_symm_apply, AddMonoidHom.comp_assoc, liftAddHom_comp_single]
-#align dfinsupp.comp_lift_add_hom Dfinsupp.comp_liftAddHom
+#align dfinsupp.comp_lift_add_hom DFinsupp.comp_liftAddHom
 
 @[simp]
 theorem sumAddHom_zero [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] :
     (sumAddHom fun i => (0 : β i →+ γ)) = 0 :=
   (liftAddHom (β := β) : (∀ i, β i →+ γ) ≃+ _).map_zero
-#align dfinsupp.sum_add_hom_zero Dfinsupp.sumAddHom_zero
+#align dfinsupp.sum_add_hom_zero DFinsupp.sumAddHom_zero
 
 @[simp]
 theorem sumAddHom_add [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] (g : ∀ i, β i →+ γ)
     (h : ∀ i, β i →+ γ) : (sumAddHom fun i => g i + h i) = sumAddHom g + sumAddHom h :=
   (liftAddHom (β := β)).map_add _ _
-#align dfinsupp.sum_add_hom_add Dfinsupp.sumAddHom_add
+#align dfinsupp.sum_add_hom_add DFinsupp.sumAddHom_add
 
 @[simp]
 theorem sumAddHom_singleAddHom [∀ i, AddCommMonoid (β i)] :
     sumAddHom (singleAddHom β) = AddMonoidHom.id _ :=
   liftAddHom_singleAddHom
-#align dfinsupp.sum_add_hom_single_add_hom Dfinsupp.sumAddHom_singleAddHom
+#align dfinsupp.sum_add_hom_single_add_hom DFinsupp.sumAddHom_singleAddHom
 
 theorem comp_sumAddHom {δ : Type _} [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] [AddCommMonoid δ]
     (g : γ →+ δ) (f : ∀ i, β i →+ γ) : g.comp (sumAddHom f) = sumAddHom fun a => g.comp (f a) :=
   comp_liftAddHom _ _
-#align dfinsupp.comp_sum_add_hom Dfinsupp.comp_sumAddHom
+#align dfinsupp.comp_sum_add_hom DFinsupp.comp_sumAddHom
 
 theorem sum_sub_index [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] [AddCommGroup γ]
     {f g : Π₀ i, β i} {h : ∀ i, β i → γ} (h_sub : ∀ i b₁ b₂, h i (b₁ - b₂) = h i b₁ - h i b₂) :
@@ -2078,7 +2078,7 @@ theorem sum_sub_index [∀ i, AddGroup (β i)] [∀ (i) (x : β i), Decidable (x
   have := (liftAddHom (β := β) fun a => AddMonoidHom.ofMapSub (h a) (h_sub a)).map_sub f g
   rw [liftAddHom_apply, sumAddHom_apply, sumAddHom_apply, sumAddHom_apply] at this
   exact this
-#align dfinsupp.sum_sub_index Dfinsupp.sum_sub_index
+#align dfinsupp.sum_sub_index DFinsupp.sum_sub_index
 
 @[to_additive]
 theorem prod_finset_sum_index {γ : Type w} {α : Type x} [∀ i, AddCommMonoid (β i)]
@@ -2089,8 +2089,8 @@ theorem prod_finset_sum_index {γ : Type w} {α : Type x} [∀ i, AddCommMonoid
   classical
   exact Finset.induction_on s (by simp [prod_zero_index])
         (by simp (config := { contextual := true }) [prod_add_index, h_zero, h_add])
-#align dfinsupp.prod_finset_sum_index Dfinsupp.prod_finset_sum_index
-#align dfinsupp.sum_finset_sum_index Dfinsupp.sum_finset_sum_index
+#align dfinsupp.prod_finset_sum_index DFinsupp.prod_finset_sum_index
+#align dfinsupp.sum_finset_sum_index DFinsupp.sum_finset_sum_index
 
 @[to_additive]
 theorem prod_sum_index {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
@@ -2100,8 +2100,8 @@ theorem prod_sum_index {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ 
     (h_add : ∀ i b₁ b₂, h i (b₁ + b₂) = h i b₁ * h i b₂) :
     (f.sum g).prod h = f.prod fun i b => (g i b).prod h :=
   (prod_finset_sum_index h_zero h_add).symm
-#align dfinsupp.prod_sum_index Dfinsupp.prod_sum_index
-#align dfinsupp.sum_sum_index Dfinsupp.sum_sum_index
+#align dfinsupp.prod_sum_index DFinsupp.prod_sum_index
+#align dfinsupp.sum_sum_index DFinsupp.sum_sum_index
 
 @[simp]
 theorem sum_single [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)] {f : Π₀ i, β i} :
@@ -2109,7 +2109,7 @@ theorem sum_single [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decidable
   have := FunLike.congr_fun (liftAddHom_singleAddHom (β := β)) f
   rw [liftAddHom_apply, sumAddHom_apply] at this
   exact this
-#align dfinsupp.sum_single Dfinsupp.sum_single
+#align dfinsupp.sum_single DFinsupp.sum_single
 
 @[to_additive]
 theorem prod_subtypeDomain_index [∀ i, Zero (β i)] [∀ (i) (x : β i), Decidable (x ≠ 0)]
@@ -2117,25 +2117,25 @@ theorem prod_subtypeDomain_index [∀ i, Zero (β i)] [∀ (i) (x : β i), Decid
     (hp : ∀ x ∈ v.support, p x) : ((v.subtypeDomain p).prod fun i b => h i b) = v.prod h :=
   Finset.prod_bij (fun p _ => p) (by simp) (by simp) (fun ⟨a₀, ha₀⟩ ⟨a₁, ha₁⟩ => by simp)
     fun i hi => ⟨⟨i, hp i hi⟩, by simpa using hi, rfl⟩
-#align dfinsupp.prod_subtype_domain_index Dfinsupp.prod_subtypeDomain_index
-#align dfinsupp.sum_subtype_domain_index Dfinsupp.sum_subtypeDomain_index
+#align dfinsupp.prod_subtype_domain_index DFinsupp.prod_subtypeDomain_index
+#align dfinsupp.sum_subtype_domain_index DFinsupp.sum_subtypeDomain_index
 
 theorem subtypeDomain_sum [∀ i, AddCommMonoid (β i)] {s : Finset γ} {h : γ → Π₀ i, β i}
     {p : ι → Prop} [DecidablePred p] :
     (∑ c in s, h c).subtypeDomain p = ∑ c in s, (h c).subtypeDomain p :=
   (subtypeDomainAddMonoidHom β p).map_sum _ s
-#align dfinsupp.subtype_domain_sum Dfinsupp.subtypeDomain_sum
+#align dfinsupp.subtype_domain_sum DFinsupp.subtypeDomain_sum
 
 theorem subtypeDomain_finsupp_sum {δ : γ → Type x} [DecidableEq γ] [∀ c, Zero (δ c)]
     [∀ (c) (x : δ c), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)] {p : ι → Prop} [DecidablePred p]
     {s : Π₀ c, δ c} {h : ∀ c, δ c → Π₀ i, β i} :
     (s.sum h).subtypeDomain p = s.sum fun c d => (h c d).subtypeDomain p :=
   subtypeDomain_sum
-#align dfinsupp.subtype_domain_finsupp_sum Dfinsupp.subtypeDomain_finsupp_sum
+#align dfinsupp.subtype_domain_finsupp_sum DFinsupp.subtypeDomain_finsupp_sum
 
 end ProdAndSum
 
-/-! ### Bundled versions of `Dfinsupp.mapRange`
+/-! ### Bundled versions of `DFinsupp.mapRange`
 
 The names should match the equivalent bundled `Finsupp.mapRange` definitions.
 -/
@@ -2150,23 +2150,23 @@ theorem mapRange_add (f : ∀ i, β₁ i → β₂ i) (hf : ∀ i, f i 0 = 0)
     mapRange f hf (g₁ + g₂) = mapRange f hf g₁ + mapRange f hf g₂ := by
   ext
   simp only [mapRange_apply f, coe_add, Pi.add_apply, hf']
-#align dfinsupp.map_range_add Dfinsupp.mapRange_add
+#align dfinsupp.map_range_add DFinsupp.mapRange_add
 
-/-- `Dfinsupp.mapRange` as an `AddMonoidHom`. -/
+/-- `DFinsupp.mapRange` as an `AddMonoidHom`. -/
 @[simps apply]
 def mapRange.addMonoidHom (f : ∀ i, β₁ i →+ β₂ i) : (Π₀ i, β₁ i) →+ Π₀ i, β₂ i
     where
   toFun := mapRange (fun i x => f i x) fun i => (f i).map_zero
   map_zero' := mapRange_zero _ _
   map_add' := mapRange_add _ (fun i => (f i).map_zero) fun i => (f i).map_add
-#align dfinsupp.map_range.add_monoid_hom Dfinsupp.mapRange.addMonoidHom
-#align dfinsupp.map_range.add_monoid_hom_apply Dfinsupp.mapRange.addMonoidHom_apply
+#align dfinsupp.map_range.add_monoid_hom DFinsupp.mapRange.addMonoidHom
+#align dfinsupp.map_range.add_monoid_hom_apply DFinsupp.mapRange.addMonoidHom_apply
 
 @[simp]
 theorem mapRange.addMonoidHom_id :
     (mapRange.addMonoidHom fun i => AddMonoidHom.id (β₂ i)) = AddMonoidHom.id _ :=
   AddMonoidHom.ext mapRange_id
-#align dfinsupp.map_range.add_monoid_hom_id Dfinsupp.mapRange.addMonoidHom_id
+#align dfinsupp.map_range.add_monoid_hom_id DFinsupp.mapRange.addMonoidHom_id
 
 theorem mapRange.addMonoidHom_comp (f : ∀ i, β₁ i →+ β₂ i) (f₂ : ∀ i, β i →+ β₁ i) :
     (mapRange.addMonoidHom fun i => (f i).comp (f₂ i)) =
@@ -2175,9 +2175,9 @@ theorem mapRange.addMonoidHom_comp (f : ∀ i, β₁ i →+ β₂ i) (f₂ : ∀
   · intros; apply map_zero
   · intros; apply map_zero
   · intros; dsimp; simp only [map_zero]
-#align dfinsupp.map_range.add_monoid_hom_comp Dfinsupp.mapRange.addMonoidHom_comp
+#align dfinsupp.map_range.add_monoid_hom_comp DFinsupp.mapRange.addMonoidHom_comp
 
-/-- `Dfinsupp.mapRange.addMonoidHom` as an `AddEquiv`. -/
+/-- `DFinsupp.mapRange.addMonoidHom` as an `AddEquiv`. -/
 @[simps apply]
 def mapRange.addEquiv (e : ∀ i, β₁ i ≃+ β₂ i) : (Π₀ i, β₁ i) ≃+ Π₀ i, β₂ i :=
   { mapRange.addMonoidHom fun i =>
@@ -2192,14 +2192,14 @@ def mapRange.addEquiv (e : ∀ i, β₁ i ≃+ β₂ i) : (Π₀ i, β₁ i) ≃
       rw [← mapRange_comp] <;>
         · simp_rw [AddEquiv.self_comp_symm]
           simp }
-#align dfinsupp.map_range.add_equiv Dfinsupp.mapRange.addEquiv
-#align dfinsupp.map_range.add_equiv_apply Dfinsupp.mapRange.addEquiv_apply
+#align dfinsupp.map_range.add_equiv DFinsupp.mapRange.addEquiv
+#align dfinsupp.map_range.add_equiv_apply DFinsupp.mapRange.addEquiv_apply
 
 @[simp]
 theorem mapRange.addEquiv_refl :
     (mapRange.addEquiv fun i => AddEquiv.refl (β₁ i)) = AddEquiv.refl _ :=
   AddEquiv.ext mapRange_id
-#align dfinsupp.map_range.add_equiv_refl Dfinsupp.mapRange.addEquiv_refl
+#align dfinsupp.map_range.add_equiv_refl DFinsupp.mapRange.addEquiv_refl
 
 theorem mapRange.addEquiv_trans (f : ∀ i, β i ≃+ β₁ i) (f₂ : ∀ i, β₁ i ≃+ β₂ i) :
     (mapRange.addEquiv fun i => (f i).trans (f₂ i)) =
@@ -2208,22 +2208,22 @@ theorem mapRange.addEquiv_trans (f : ∀ i, β i ≃+ β₁ i) (f₂ : ∀ i, β
   · intros; apply map_zero
   · intros; apply map_zero
   · intros; dsimp; simp only [map_zero]
-#align dfinsupp.map_range.add_equiv_trans Dfinsupp.mapRange.addEquiv_trans
+#align dfinsupp.map_range.add_equiv_trans DFinsupp.mapRange.addEquiv_trans
 
 @[simp]
 theorem mapRange.addEquiv_symm (e : ∀ i, β₁ i ≃+ β₂ i) :
     (mapRange.addEquiv e).symm = mapRange.addEquiv fun i => (e i).symm :=
   rfl
-#align dfinsupp.map_range.add_equiv_symm Dfinsupp.mapRange.addEquiv_symm
+#align dfinsupp.map_range.add_equiv_symm DFinsupp.mapRange.addEquiv_symm
 
 end MapRange
 
-end Dfinsupp
+end DFinsupp
 
 /-! ### Product and sum lemmas for bundled morphisms.
 
 In this section, we provide analogues of `AddMonoidHom.map_sum`, `AddMonoidHom.coe_finset_sum`,
-and `AddMonoidHom.finset_sum_apply` for `Dfinsupp.sum` and `Dfinsupp.sumAddHom` instead of
+and `AddMonoidHom.finset_sum_apply` for `DFinsupp.sum` and `DFinsupp.sumAddHom` instead of
 `Finset.sum`.
 
 We provide these for `AddMonoidHom`, `MonoidHom`, `RingHom`, `AddEquiv`, and `MulEquiv`.
@@ -2300,14 +2300,14 @@ theorem map_dfinsupp_prod [CommMonoid R] [CommMonoid S] (h : R ≃* S) (f : Π
 
 end MulEquiv
 
-/-! The above lemmas, repeated for `Dfinsupp.sumAddHom`. -/
+/-! The above lemmas, repeated for `DFinsupp.sumAddHom`. -/
 
 
 namespace AddMonoidHom
 
 variable {R S : Type _}
 
-open Dfinsupp
+open DFinsupp
 
 @[simp]
 theorem map_dfinsupp_sumAddHom [AddCommMonoid R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
@@ -2335,7 +2335,7 @@ namespace RingHom
 
 variable {R S : Type _}
 
-open Dfinsupp
+open DFinsupp
 
 @[simp]
 theorem map_dfinsupp_sumAddHom [NonAssocSemiring R] [NonAssocSemiring S] [∀ i, AddZeroClass (β i)]
@@ -2350,7 +2350,7 @@ namespace AddEquiv
 
 variable {R S : Type _}
 
-open Dfinsupp
+open DFinsupp
 
 @[simp]
 theorem map_dfinsupp_sumAddHom [AddCommMonoid R] [AddCommMonoid S] [∀ i, AddZeroClass (β i)]
@@ -2365,29 +2365,29 @@ end
 
 section FiniteInfinite
 
-instance Dfinsupp.fintype {ι : Sort _} {π : ι → Sort _} [DecidableEq ι] [∀ i, Zero (π i)]
+instance DFinsupp.fintype {ι : Sort _} {π : ι → Sort _} [DecidableEq ι] [∀ i, Zero (π i)]
     [Fintype ι] [∀ i, Fintype (π i)] : Fintype (Π₀ i, π i) :=
-  Fintype.ofEquiv (∀ i, π i) Dfinsupp.equivFunOnFintype.symm
-#align dfinsupp.fintype Dfinsupp.fintype
+  Fintype.ofEquiv (∀ i, π i) DFinsupp.equivFunOnFintype.symm
+#align dfinsupp.fintype DFinsupp.fintype
 
-instance Dfinsupp.infinite_of_left {ι : Sort _} {π : ι → Sort _} [∀ i, Nontrivial (π i)]
+instance DFinsupp.infinite_of_left {ι : Sort _} {π : ι → Sort _} [∀ i, Nontrivial (π i)]
     [∀ i, Zero (π i)] [Infinite ι] : Infinite (Π₀ i, π i) := by
   letI := Classical.decEq ι; choose m hm using fun i => exists_ne (0 : π i);
-    exact Infinite.of_injective _ (Dfinsupp.single_left_injective hm)
-#align dfinsupp.infinite_of_left Dfinsupp.infinite_of_left
+    exact Infinite.of_injective _ (DFinsupp.single_left_injective hm)
+#align dfinsupp.infinite_of_left DFinsupp.infinite_of_left
 
-/-- See `Dfinsupp.infinite_of_right` for this in instance form, with the drawback that
+/-- See `DFinsupp.infinite_of_right` for this in instance form, with the drawback that
 it needs all `π i` to be infinite. -/
-theorem Dfinsupp.infinite_of_exists_right {ι : Sort _} {π : ι → Sort _} (i : ι) [Infinite (π i)]
+theorem DFinsupp.infinite_of_exists_right {ι : Sort _} {π : ι → Sort _} (i : ι) [Infinite (π i)]
     [∀ i, Zero (π i)] : Infinite (Π₀ i, π i) :=
   letI := Classical.decEq ι
-  Infinite.of_injective (fun j => Dfinsupp.single i j) Dfinsupp.single_injective
-#align dfinsupp.infinite_of_exists_right Dfinsupp.infinite_of_exists_right
+  Infinite.of_injective (fun j => DFinsupp.single i j) DFinsupp.single_injective
+#align dfinsupp.infinite_of_exists_right DFinsupp.infinite_of_exists_right
 
-/-- See `Dfinsupp.infinite_of_exists_right` for the case that only one `π ι` is infinite. -/
-instance Dfinsupp.infinite_of_right {ι : Sort _} {π : ι → Sort _} [∀ i, Infinite (π i)]
+/-- See `DFinsupp.infinite_of_exists_right` for the case that only one `π ι` is infinite. -/
+instance DFinsupp.infinite_of_right {ι : Sort _} {π : ι → Sort _} [∀ i, Infinite (π i)]
     [∀ i, Zero (π i)] [Nonempty ι] : Infinite (Π₀ i, π i) :=
-  Dfinsupp.infinite_of_exists_right (Classical.arbitrary ι)
-#align dfinsupp.infinite_of_right Dfinsupp.infinite_of_right
+  DFinsupp.infinite_of_exists_right (Classical.arbitrary ι)
+#align dfinsupp.infinite_of_right DFinsupp.infinite_of_right
 
 end FiniteInfinite
fix: precedences of ⨆⋃⋂⨅ (#5614)
Diff
@@ -1961,7 +1961,7 @@ bounded `iSup` can be produced from taking a finite number of non-zero elements
 satisfy `p i`, coercing them to `γ`, and summing them. -/
 theorem _root_.AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom (p : ι → Prop) [DecidablePred p]
     [AddCommMonoid γ] (S : ι → AddSubmonoid γ) :
-    (⨆ (i) (_ : p i), S i) = -- Porting note: Removing `h` results in a timeout
+    ⨆ (i) (_ : p i), S i = -- Porting note: Removing `h` results in a timeout
       AddMonoidHom.mrange ((sumAddHom fun i => (S i).subtype).comp (filterAddMonoidHom _ p)) := by
   apply le_antisymm
   · refine' iSup₂_le fun i hi y hy => ⟨Dfinsupp.single i ⟨y, hy⟩, _⟩
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
@@ -1481,7 +1481,7 @@ theorem sigmaCurry_apply [∀ i j, Zero (δ i j)] (f : Π₀ i : Σi, _, δ i.1
 
 @[simp]
 theorem sigmaCurry_zero [∀ i j, Zero (δ i j)] : sigmaCurry (0 : Π₀ i : Σi, _, δ i.1 i.2) = 0 := by
-  ext (i j)
+  ext i j
   rw [sigmaCurry_apply]
   rfl
 #align dfinsupp.sigma_curry_zero Dfinsupp.sigmaCurry_zero
@@ -1489,7 +1489,7 @@ theorem sigmaCurry_zero [∀ i j, Zero (δ i j)] : sigmaCurry (0 : Π₀ i : Σi
 @[simp]
 theorem sigmaCurry_add [∀ i j, AddZeroClass (δ i j)] (f g : Π₀ i : Σi, α i, δ i.1 i.2) :
     @sigmaCurry _ _ δ _ (f + g) = @sigmaCurry _ _ δ _ f + @sigmaCurry ι α δ _ g := by
-  ext (i j)
+  ext i j
   rw [@add_apply _ (fun i => Π₀ j, δ i j) _ (sigmaCurry _), add_apply, sigmaCurry_apply,
     sigmaCurry_apply, sigmaCurry_apply, add_apply]
 #align dfinsupp.sigma_curry_add Dfinsupp.sigmaCurry_add
@@ -1498,7 +1498,7 @@ theorem sigmaCurry_add [∀ i j, AddZeroClass (δ i j)] (f g : Π₀ i : Σi, α
 theorem sigmaCurry_smul [Monoid γ] [∀ i j, AddMonoid (δ i j)] [∀ i j, DistribMulAction γ (δ i j)]
     (r : γ) (f : Π₀ i : Σi, α i, δ i.1 i.2) :
     @sigmaCurry _ _ δ _ (r • f) = r • @sigmaCurry _ _ δ _ f := by
-  ext (i j)
+  ext i j
   rw [@smul_apply _ _ (fun i => Π₀ j, δ i j) _ _ _ _ (sigmaCurry _), smul_apply, sigmaCurry_apply,
     sigmaCurry_apply, smul_apply]
 #align dfinsupp.sigma_curry_smul Dfinsupp.sigmaCurry_smul
@@ -1508,7 +1508,7 @@ theorem sigmaCurry_single [∀ i, DecidableEq (α i)] [∀ i j, Zero (δ i j)]
     (ij : Σi, α i) (x : δ ij.1 ij.2) :
     @sigmaCurry _ _ _ _ (single ij x) = single ij.1 (single ij.2 x : Π₀ j, δ ij.1 j) := by
   obtain ⟨i, j⟩ := ij
-  ext (i' j')
+  ext i' j'
   dsimp only
   rw [sigmaCurry_apply]
   obtain rfl | hi := eq_or_ne i i'
@@ -1608,7 +1608,7 @@ noncomputable def sigmaCurryEquiv [∀ i j, Zero (δ i j)]
     ext ⟨i, j⟩
     rw [sigmaUncurry_apply, sigmaCurry_apply]
   right_inv f := by
-    ext (i j)
+    ext i j
     rw [sigmaCurry_apply, sigmaUncurry_apply]
 #align dfinsupp.sigma_curry_equiv Dfinsupp.sigmaCurryEquiv
 
@@ -1619,8 +1619,7 @@ variable {α : Option ι → Type v}
 /-- Adds a term to a dfinsupp, making a dfinsupp indexed by an `Option`.
 
 This is the dfinsupp version of `Option.rec`. -/
-def extendWith [∀ i, Zero (α i)] (a : α none) (f : Π₀ i, α (some i)) : Π₀ i, α i
-    where
+def extendWith [∀ i, Zero (α i)] (a : α none) (f : Π₀ i, α (some i)) : Π₀ i, α i where
   toFun := fun i ↦ match i with | none => a | some _ => f _
   support' :=
     f.support'.map fun s =>
chore: convert lambda in docs to fun (#5045)

Found with git grep -n "λ [a-zA-Z_ ]*,"

Diff
@@ -24,7 +24,7 @@ For a non-dependent version see `data/finsupp.lean`.
 
 This file introduces the notation `Π₀ a, β a` as notation for `Dfinsupp β`, mirroring the `α →₀ β`
 notation used for `Finsupp`. This works for nested binders too, with `Π₀ a b, γ a b` as notation
-for `Dfinsupp (λ a, Dfinsupp (γ a))`.
+for `Dfinsupp (fun a ↦ Dfinsupp (γ a))`.
 
 ## Implementation notes
 
chore: fix grammar 2/3 (#5002)

Part 2 of #5001

Diff
@@ -60,7 +60,7 @@ variable (β)
 /-- A dependent function `Π i, β i` with finite support, with notation `Π₀ i, β i`.
 
 Note that `Dfinsupp.support` is the preferred API for accessing the support of the function,
-`Dfinsupp.support'` is a implementation detail that aids computability; see the implementation
+`Dfinsupp.support'` is an implementation detail that aids computability; see the implementation
 notes in this file for more information. -/
 structure Dfinsupp [∀ i, Zero (β i)] : Type max u v where mk' ::
   /-- The underlying function of a dependent function with finite support (aka `Dfinsupp`). -/
feat: port LinearAlgebra.Eigenspace.Basic (#4842)

Two instances defined in Data.Dfinsupp.Basic are used in this file (with explicit arguments) so I gave them names.

Diff
@@ -282,7 +282,7 @@ def evalAddMonoidHom [∀ i, AddZeroClass (β i)] (i : ι) : (Π₀ i, β i) →
   (Pi.evalAddMonoidHom β i).comp coeFnAddMonoidHom
 #align dfinsupp.eval_add_monoid_hom Dfinsupp.evalAddMonoidHom
 
-instance [∀ i, AddCommMonoid (β i)] : AddCommMonoid (Π₀ i, β i) :=
+instance addCommMonoid [∀ i, AddCommMonoid (β i)] : AddCommMonoid (Π₀ i, β i) :=
   FunLike.coe_injective.addCommMonoid _ coe_zero coe_add fun _ _ => coe_nsmul _ _
 
 @[simp]
@@ -340,7 +340,7 @@ instance [∀ i, AddGroup (β i)] : AddGroup (Π₀ i, β i) :=
   FunLike.coe_injective.addGroup _ coe_zero coe_add coe_neg coe_sub (fun _ _ => coe_nsmul _ _)
     fun _ _ => coe_zsmul _ _
 
-instance [∀ i, AddCommGroup (β i)] : AddCommGroup (Π₀ i, β i) :=
+instance addCommGroup [∀ i, AddCommGroup (β i)] : AddCommGroup (Π₀ i, β i) :=
   FunLike.coe_injective.addCommGroup _ coe_zero coe_add coe_neg coe_sub (fun _ _ => coe_nsmul _ _)
     fun _ _ => coe_zsmul _ _
 
style: allow _ for an argument in notation3 & replace _foo with _ in notation3 (#4652)
Diff
@@ -1962,7 +1962,7 @@ bounded `iSup` can be produced from taking a finite number of non-zero elements
 satisfy `p i`, coercing them to `γ`, and summing them. -/
 theorem _root_.AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom (p : ι → Prop) [DecidablePred p]
     [AddCommMonoid γ] (S : ι → AddSubmonoid γ) :
-    (⨆ (i) (_h : p i), S i) = -- Porting note: Removing `h` results in a timeout
+    (⨆ (i) (_ : p i), S i) = -- Porting note: Removing `h` results in a timeout
       AddMonoidHom.mrange ((sumAddHom fun i => (S i).subtype).comp (filterAddMonoidHom _ p)) := by
   apply le_antisymm
   · refine' iSup₂_le fun i hi y hy => ⟨Dfinsupp.single i ⟨y, hy⟩, _⟩
@@ -1992,7 +1992,7 @@ theorem _root_.AddSubmonoid.mem_iSup_iff_exists_dfinsupp' [AddCommMonoid γ] (S
 
 theorem _root_.AddSubmonoid.mem_bsupr_iff_exists_dfinsupp (p : ι → Prop) [DecidablePred p]
     [AddCommMonoid γ] (S : ι → AddSubmonoid γ) (x : γ) :
-    (x ∈ ⨆ (i) (_h : p i), S i) ↔ -- Porting note: Removing `h` gives an error.
+    (x ∈ ⨆ (i) (_ : p i), S i) ↔
       ∃ f : Π₀ i, S i, Dfinsupp.sumAddHom (fun i => (S i).subtype) (f.filter p) = x :=
   SetLike.ext_iff.mp (AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom p S) x
 #align add_submonoid.mem_bsupr_iff_exists_dfinsupp AddSubmonoid.mem_bsupr_iff_exists_dfinsupp
fix: spacing and indentation in tactic formatters (#4519)

This fixes a bunch of spacing bugs in tactics. Mathlib counterpart of:

Diff
@@ -73,7 +73,7 @@ variable {β}
 
 -- mathport name: «exprΠ₀ , »
 /-- `Π₀ i, β i` denotes the type of dependent functions with finite support `Dfinsupp β`. -/
-notation3"Π₀ "(...)", "r:(scoped f => Dfinsupp f) => r
+notation3 "Π₀ "(...)", "r:(scoped f => Dfinsupp f) => r
 
 -- mathport name: «expr →ₚ »
 @[inherit_doc]
chore: bump to nightly-2023-05-31 (#4530)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com> Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Alex J Best <alex.j.best@gmail.com>

Diff
@@ -2014,20 +2014,9 @@ def liftAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] : (∀ i, β i 
     where
   toFun := sumAddHom
   invFun F i := F.comp (singleAddHom β i)
-  left_inv x := by
-    ext
-    simp
-  right_inv ψ := by
-    classical
-    ext x
-    apply Dfinsupp.induction x
-    · simp
-    intros i b f _ _ IH
-    simp [IH]
-  map_add' F G := by
-    classical
-    ext
-    simp [sumAddHom_apply, sum, Finset.sum_add_distrib]
+  left_inv x := by ext; simp
+  right_inv ψ := by ext; simp
+  map_add' F G := by ext; simp
 #align dfinsupp.lift_add_hom Dfinsupp.liftAddHom
 #align dfinsupp.lift_add_hom_apply Dfinsupp.liftAddHom_apply
 #align dfinsupp.lift_add_hom_symm_apply Dfinsupp.liftAddHom_symm_apply
feat: add compile_inductive% and compile_def% commands (#4097)

Add a #compile inductive command to compile the recursors of an inductive type, which works by creating a recursive definition and using @[csimp].

Co-authored-by: Parth Shastri <31370288+cppio@users.noreply.github.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -1524,7 +1524,7 @@ theorem sigmaCurry_single [∀ i, DecidableEq (α i)] [∀ i j, Zero (δ i j)]
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
 /-- The natural map between `Π₀ i (j : α i), δ i j` and `Π₀ (i : Σ i, α i), δ i.1 i.2`, inverse of
 `curry`.-/
-noncomputable def sigmaUncurry [∀ i j, Zero (δ i j)]
+def sigmaUncurry [∀ i j, Zero (δ i j)]
     [∀ i, DecidableEq (α i)] [∀ i j (x : δ i j), Decidable (x ≠ 0)]
     (f : Π₀ (i) (j), δ i j) :
     Π₀ i : Σi, _, δ i.1 i.2 where
chore: fix upper/lowercase in comments (#4360)
  • Run a non-interactive version of fix-comments.py on all files.
  • Go through the diff and manually add/discard/edit chunks.
Diff
@@ -609,7 +609,7 @@ instance uniqueOfIsEmpty [IsEmpty ι] : Unique (Π₀ i, β i) :=
   FunLike.coe_injective.unique
 #align dfinsupp.unique_of_is_empty Dfinsupp.uniqueOfIsEmpty
 
-/-- Given `Fintype ι`, `equivFunOnFintype` is the `equiv` between `Π₀ i, β i` and `Π i, β i`.
+/-- Given `Fintype ι`, `equivFunOnFintype` is the `Equiv` between `Π₀ i, β i` and `Π i, β i`.
   (All dependent functions on a finite type are finitely supported.) -/
 @[simps apply]
 def equivFunOnFintype [Fintype ι] : (Π₀ i, β i) ≃ ∀ i, β i
chore: update std 05-22 (#4248)

The main breaking change is that tac <;> [t1, t2] is now written tac <;> [t1; t2], to avoid clashing with tactics like cases and use that take comma-separated lists.

Diff
@@ -972,7 +972,7 @@ protected theorem induction {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (
         · right; exact if_pos H3
         · left; exact H3
       right
-      split_ifs <;> [rfl, exact H2]
+      split_ifs <;> [rfl; exact H2]
     have H3 : ∀ aux, (⟨fun j : ι => ite (j = i) 0 (f j), Trunc.mk ⟨i ::ₘ s, aux⟩⟩ : Π₀ i, β i) =
         ⟨fun j : ι => ite (j = i) 0 (f j), Trunc.mk ⟨s, H2⟩⟩ :=
       fun _ ↦ ext fun _ => rfl
@@ -1035,7 +1035,7 @@ end AddMonoid
 @[simp]
 theorem mk_add [∀ i, AddZeroClass (β i)] {s : Finset ι} {x y : ∀ i : (↑s : Set ι), β i} :
     mk s (x + y) = mk s x + mk s y :=
-  ext fun i => by simp only [add_apply, mk_apply]; split_ifs <;> [rfl, rw [zero_add]]
+  ext fun i => by simp only [add_apply, mk_apply]; split_ifs <;> [rfl; rw [zero_add]]
 #align dfinsupp.mk_add Dfinsupp.mk_add
 
 @[simp]
@@ -1046,13 +1046,13 @@ theorem mk_zero [∀ i, Zero (β i)] {s : Finset ι} : mk s (0 : ∀ i : (↑s :
 @[simp]
 theorem mk_neg [∀ i, AddGroup (β i)] {s : Finset ι} {x : ∀ i : (↑s : Set ι), β i.1} :
     mk s (-x) = -mk s x :=
-  ext fun i => by simp only [neg_apply, mk_apply]; split_ifs <;> [rfl, rw [neg_zero]]
+  ext fun i => by simp only [neg_apply, mk_apply]; split_ifs <;> [rfl; rw [neg_zero]]
 #align dfinsupp.mk_neg Dfinsupp.mk_neg
 
 @[simp]
 theorem mk_sub [∀ i, AddGroup (β i)] {s : Finset ι} {x y : ∀ i : (↑s : Set ι), β i.1} :
     mk s (x - y) = mk s x - mk s y :=
-  ext fun i => by simp only [sub_apply, mk_apply]; split_ifs <;> [rfl, rw [sub_zero]]
+  ext fun i => by simp only [sub_apply, mk_apply]; split_ifs <;> [rfl; rw [sub_zero]]
 #align dfinsupp.mk_sub Dfinsupp.mk_sub
 
 /-- If `s` is a subset of `ι` then `mk_addGroupHom s` is the canonical additive
@@ -1071,7 +1071,7 @@ variable [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i
 @[simp]
 theorem mk_smul {s : Finset ι} (c : γ) (x : ∀ i : (↑s : Set ι), β (i : ι)) :
     mk s (c • x) = c • mk s x :=
-  ext fun i => by simp only [smul_apply, mk_apply]; split_ifs <;> [rfl, rw [smul_zero]]
+  ext fun i => by simp only [smul_apply, mk_apply]; split_ifs <;> [rfl; rw [smul_zero]]
 #align dfinsupp.mk_smul Dfinsupp.mk_smul
 
 @[simp]
@@ -1126,7 +1126,7 @@ theorem mem_support_toFun (f : Π₀ i, β i) (i) : i ∈ f.support ↔ f i ≠
 theorem eq_mk_support (f : Π₀ i, β i) : f = mk f.support fun i => f i := by
   change f = mk f.support fun i => f i.1
   ext i
-  by_cases h : f i ≠ 0 <;> [skip, rw [not_not] at h] <;> simp [h]
+  by_cases h : f i ≠ 0 <;> [skip; rw [not_not] at h] <;> simp [h]
 #align dfinsupp.eq_mk_support Dfinsupp.eq_mk_support
 
 @[simp]
chore: Rename to sSup/iSup (#3938)

As discussed on Zulip

Renames

  • supₛsSup
  • infₛsInf
  • supᵢiSup
  • infᵢiInf
  • bsupₛbsSup
  • binfₛbsInf
  • bsupᵢbiSup
  • binfᵢbiInf
  • csupₛcsSup
  • cinfₛcsInf
  • csupᵢciSup
  • cinfᵢciInf
  • unionₛsUnion
  • interₛsInter
  • unionᵢiUnion
  • interᵢiInter
  • bunionₛbsUnion
  • binterₛbsInter
  • bunionᵢbiUnion
  • binterᵢbiInter

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -1000,22 +1000,22 @@ theorem induction₂ {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (h0 : p
 #align dfinsupp.induction₂ Dfinsupp.induction₂
 
 @[simp]
-theorem add_closure_unionᵢ_range_single :
+theorem add_closure_iUnion_range_single :
     AddSubmonoid.closure (⋃ i : ι, Set.range (single i : β i → Π₀ i, β i)) = ⊤ :=
   top_unique fun x _ => by
     apply Dfinsupp.induction x
     exact AddSubmonoid.zero_mem _
     exact fun a b f _ _ hf =>
       AddSubmonoid.add_mem _
-        (AddSubmonoid.subset_closure <| Set.mem_unionᵢ.2 ⟨a, Set.mem_range_self _⟩) hf
-#align dfinsupp.add_closure_Union_range_single Dfinsupp.add_closure_unionᵢ_range_single
+        (AddSubmonoid.subset_closure <| Set.mem_iUnion.2 ⟨a, Set.mem_range_self _⟩) hf
+#align dfinsupp.add_closure_Union_range_single Dfinsupp.add_closure_iUnion_range_single
 
 /-- If two additive homomorphisms from `Π₀ i, β i` are equal on each `single a b`, then
 they are equal. -/
 theorem addHom_ext {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+ γ⦄
     (H : ∀ (i : ι) (y : β i), f (single i y) = g (single i y)) : f = g := by
-  refine' AddMonoidHom.eq_of_eqOn_denseM add_closure_unionᵢ_range_single fun f hf => _
-  simp only [Set.mem_unionᵢ, Set.mem_range] at hf
+  refine' AddMonoidHom.eq_of_eqOn_denseM add_closure_iUnion_range_single fun f hf => _
+  simp only [Set.mem_iUnion, Set.mem_range] at hf
   rcases hf with ⟨x, y, rfl⟩
   apply H
 #align dfinsupp.add_hom_ext Dfinsupp.addHom_ext
@@ -1771,14 +1771,14 @@ theorem sum_apply {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Typ
 theorem support_sum {ι₁ : Type u₁} [DecidableEq ι₁] {β₁ : ι₁ → Type v₁} [∀ i₁, Zero (β₁ i₁)]
     [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ i, AddCommMonoid (β i)]
     [∀ (i) (x : β i), Decidable (x ≠ 0)] {f : Π₀ i₁, β₁ i₁} {g : ∀ i₁, β₁ i₁ → Π₀ i, β i} :
-    (f.sum g).support ⊆ f.support.bunionᵢ fun i => (g i (f i)).support := by
+    (f.sum g).support ⊆ f.support.biUnion fun i => (g i (f i)).support := by
   have :
     ∀ i₁ : ι,
       (f.sum fun (i : ι₁) (b : β₁ i) => (g i b) i₁) ≠ 0 → ∃ i : ι₁, f i ≠ 0 ∧ ¬(g i (f i)) i₁ = 0 :=
     fun i₁ h =>
     let ⟨i, hi, Ne⟩ := Finset.exists_ne_zero_of_sum_ne_zero h
     ⟨i, mem_support_iff.1 hi, Ne⟩
-  simpa [Finset.subset_iff, mem_support_iff, Finset.mem_bunionᵢ, sum_apply] using this
+  simpa [Finset.subset_iff, mem_support_iff, Finset.mem_biUnion, sum_apply] using this
 #align dfinsupp.support_sum Dfinsupp.support_sum
 
 @[to_additive (attr := simp)]
@@ -1943,52 +1943,52 @@ theorem _root_.dfinsupp_sumAddHom_mem [∀ i, AddZeroClass (β i)] [AddCommMonoi
 #align dfinsupp_sum_add_hom_mem dfinsupp_sumAddHom_mem
 
 /-- The supremum of a family of commutative additive submonoids is equal to the range of
-`Dfinsupp.sumAddHom`; that is, every element in the `supᵢ` can be produced from taking a finite
+`Dfinsupp.sumAddHom`; that is, every element in the `iSup` can be produced from taking a finite
 number of non-zero elements of `S i`, coercing them to `γ`, and summing them. -/
-theorem _root_.AddSubmonoid.supᵢ_eq_mrange_dfinsupp_sumAddHom
+theorem _root_.AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom
     [AddCommMonoid γ] (S : ι → AddSubmonoid γ) :
-    supᵢ S = AddMonoidHom.mrange (Dfinsupp.sumAddHom fun i => (S i).subtype) := by
+    iSup S = AddMonoidHom.mrange (Dfinsupp.sumAddHom fun i => (S i).subtype) := by
   apply le_antisymm
-  · apply supᵢ_le _
+  · apply iSup_le _
     intro i y hy
     exact ⟨Dfinsupp.single i ⟨y, hy⟩, Dfinsupp.sumAddHom_single _ _ _⟩
   · rintro x ⟨v, rfl⟩
-    exact dfinsupp_sumAddHom_mem _ v _ fun i _ => (le_supᵢ S i : S i ≤ _) (v i).prop
-#align add_submonoid.supr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.supᵢ_eq_mrange_dfinsupp_sumAddHom
+    exact dfinsupp_sumAddHom_mem _ v _ fun i _ => (le_iSup S i : S i ≤ _) (v i).prop
+#align add_submonoid.supr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom
 
 /-- The bounded supremum of a family of commutative additive submonoids is equal to the range of
 `Dfinsupp.sumAddHom` composed with `Dfinsupp.filterAddMonoidHom`; that is, every element in the
-bounded `supᵢ` can be produced from taking a finite number of non-zero elements from the `S i` that
+bounded `iSup` can be produced from taking a finite number of non-zero elements from the `S i` that
 satisfy `p i`, coercing them to `γ`, and summing them. -/
 theorem _root_.AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom (p : ι → Prop) [DecidablePred p]
     [AddCommMonoid γ] (S : ι → AddSubmonoid γ) :
     (⨆ (i) (_h : p i), S i) = -- Porting note: Removing `h` results in a timeout
       AddMonoidHom.mrange ((sumAddHom fun i => (S i).subtype).comp (filterAddMonoidHom _ p)) := by
   apply le_antisymm
-  · refine' supᵢ₂_le fun i hi y hy => ⟨Dfinsupp.single i ⟨y, hy⟩, _⟩
+  · refine' iSup₂_le fun i hi y hy => ⟨Dfinsupp.single i ⟨y, hy⟩, _⟩
     rw [AddMonoidHom.comp_apply, filterAddMonoidHom_apply, filter_single_pos _ _ hi]
     exact sumAddHom_single _ _ _
   · rintro x ⟨v, rfl⟩
     refine' dfinsupp_sumAddHom_mem _ _ _ fun i _ => _
-    refine' AddSubmonoid.mem_supᵢ_of_mem i _
+    refine' AddSubmonoid.mem_iSup_of_mem i _
     by_cases hp : p i
     · simp [hp]
     · simp [hp]
 #align add_submonoid.bsupr_eq_mrange_dfinsupp_sum_add_hom AddSubmonoid.bsupr_eq_mrange_dfinsupp_sumAddHom
 
-theorem _root_.AddSubmonoid.mem_supᵢ_iff_exists_dfinsupp [AddCommMonoid γ] (S : ι → AddSubmonoid γ)
-    (x : γ) : x ∈ supᵢ S ↔ ∃ f : Π₀ i, S i, Dfinsupp.sumAddHom (fun i => (S i).subtype) f = x :=
-  SetLike.ext_iff.mp (AddSubmonoid.supᵢ_eq_mrange_dfinsupp_sumAddHom S) x
-#align add_submonoid.mem_supr_iff_exists_dfinsupp AddSubmonoid.mem_supᵢ_iff_exists_dfinsupp
+theorem _root_.AddSubmonoid.mem_iSup_iff_exists_dfinsupp [AddCommMonoid γ] (S : ι → AddSubmonoid γ)
+    (x : γ) : x ∈ iSup S ↔ ∃ f : Π₀ i, S i, Dfinsupp.sumAddHom (fun i => (S i).subtype) f = x :=
+  SetLike.ext_iff.mp (AddSubmonoid.iSup_eq_mrange_dfinsupp_sumAddHom S) x
+#align add_submonoid.mem_supr_iff_exists_dfinsupp AddSubmonoid.mem_iSup_iff_exists_dfinsupp
 
-/-- A variant of `AddSubmonoid.mem_supᵢ_iff_exists_dfinsupp` with the RHS fully unfolded. -/
-theorem _root_.AddSubmonoid.mem_supᵢ_iff_exists_dfinsupp' [AddCommMonoid γ] (S : ι → AddSubmonoid γ)
+/-- A variant of `AddSubmonoid.mem_iSup_iff_exists_dfinsupp` with the RHS fully unfolded. -/
+theorem _root_.AddSubmonoid.mem_iSup_iff_exists_dfinsupp' [AddCommMonoid γ] (S : ι → AddSubmonoid γ)
     [∀ (i) (x : S i), Decidable (x ≠ 0)] (x : γ) :
-    x ∈ supᵢ S ↔ ∃ f : Π₀ i, S i, (f.sum fun i xi => ↑xi) = x := by
-  rw [AddSubmonoid.mem_supᵢ_iff_exists_dfinsupp]
+    x ∈ iSup S ↔ ∃ f : Π₀ i, S i, (f.sum fun i xi => ↑xi) = x := by
+  rw [AddSubmonoid.mem_iSup_iff_exists_dfinsupp]
   simp_rw [sumAddHom_apply]
   rfl
-#align add_submonoid.mem_supr_iff_exists_dfinsupp' AddSubmonoid.mem_supᵢ_iff_exists_dfinsupp'
+#align add_submonoid.mem_supr_iff_exists_dfinsupp' AddSubmonoid.mem_iSup_iff_exists_dfinsupp'
 
 theorem _root_.AddSubmonoid.mem_bsupr_iff_exists_dfinsupp (p : ι → Prop) [DecidablePred p]
     [AddCommMonoid γ] (S : ι → AddSubmonoid γ) (x : γ) :
chore: bye-bye, solo bys! (#3825)

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

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

Diff
@@ -991,8 +991,7 @@ protected theorem induction {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (
 theorem induction₂ {p : (Π₀ i, β i) → Prop} (f : Π₀ i, β i) (h0 : p 0)
     (ha : ∀ (i b) (f : Π₀ i, β i), f i = 0 → b ≠ 0 → p f → p (f + single i b)) : p f :=
   Dfinsupp.induction f h0 fun i b f h1 h2 h3 =>
-    have h4 : f + single i b = single i b + f :=
-      by
+    have h4 : f + single i b = single i b + f := by
       ext j; by_cases H : i = j
       · subst H
         simp [h1]
@@ -1291,16 +1290,11 @@ theorem support_smul {γ : Type w} [Semiring γ] [∀ i, AddCommMonoid (β i)] [
 
 instance [∀ i, Zero (β i)] [∀ i, DecidableEq (β i)] : DecidableEq (Π₀ i, β i) := fun f g =>
   decidable_of_iff (f.support = g.support ∧ ∀ i ∈ f.support, f i = g i)
-    ⟨fun ⟨h₁, h₂⟩ =>
-      ext fun i =>
-        if h : i ∈ f.support then h₂ i h
-        else by
-          have hf : f i = 0 := by rwa [mem_support_iff, not_not] at h
-          have hg : g i = 0 := by rwa [h₁, mem_support_iff, not_not] at h
-          rw [hf, hg],
-      by
-      rintro rfl
-      simp⟩
+    ⟨fun ⟨h₁, h₂⟩ => ext fun i => if h : i ∈ f.support then h₂ i h else by
+      have hf : f i = 0 := by rwa [mem_support_iff, not_not] at h
+      have hg : g i = 0 := by rwa [h₁, mem_support_iff, not_not] at h
+      rw [hf, hg],
+     by rintro rfl; simp⟩
 
 section Equiv
 
@@ -1535,18 +1529,16 @@ noncomputable def sigmaUncurry [∀ i j, Zero (δ i j)]
     (f : Π₀ (i) (j), δ i j) :
     Π₀ i : Σi, _, δ i.1 i.2 where
   toFun i := f i.1 i.2
-  support' :=
-    f.support'.map fun s =>
-      ⟨Multiset.bind s.1 fun i => ((f i).support.map ⟨Sigma.mk i, sigma_mk_injective⟩).val, fun i =>
-        by
-        simp_rw [Multiset.mem_bind, map_val, Multiset.mem_map, Function.Embedding.coeFn_mk, ←
-          Finset.mem_def, mem_support_toFun]
-        obtain hi | (hi : f i.1 = 0) := s.prop i.1
-        · by_cases hi' : f i.1 i.2 = 0
-          · exact Or.inr hi'
-          · exact Or.inl ⟨_, hi, i.2, hi', Sigma.eta _⟩
-        · right
-          rw [hi, zero_apply]⟩
+  support' := f.support'.map fun s => ⟨Multiset.bind s.1 fun i =>
+    ((f i).support.map ⟨Sigma.mk i, sigma_mk_injective⟩).val, fun i => by
+      simp_rw [Multiset.mem_bind, map_val, Multiset.mem_map, Function.Embedding.coeFn_mk, ←
+        Finset.mem_def, mem_support_toFun]
+      obtain hi | (hi : f i.1 = 0) := s.prop i.1
+      · by_cases hi' : f i.1 i.2 = 0
+        · exact Or.inr hi'
+        · exact Or.inl ⟨_, hi, i.2, hi', Sigma.eta _⟩
+      · right
+        rw [hi, zero_apply]⟩
 #align dfinsupp.sigma_uncurry Dfinsupp.sigmaUncurry
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
chore: fix #align lines (#3640)

This PR fixes two things:

  • Most align statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align). This is often seen in the mathport output after ending calc blocks.
  • All remaining more-than-one-line #align statements. (This was needed for a script I wrote for #3630.)
Diff
@@ -1841,7 +1841,6 @@ theorem prod_add_index [∀ i, AddCommMonoid (β i)] [∀ (i) (x : β i), Decida
     _ = (∏ i in f.support ∪ g.support, h i (f i)) * ∏ i in f.support ∪ g.support, h i (g i) := by
       { simp [h_add, Finset.prod_mul_distrib] }
     _ = _ := by rw [f_eq, g_eq]
-
 #align dfinsupp.prod_add_index Dfinsupp.prod_add_index
 #align dfinsupp.sum_add_index Dfinsupp.sum_add_index
 
feat: port Algebra.DirectSum.Module (#2596)

Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com>

Diff
@@ -360,16 +360,17 @@ theorem coe_smul [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction
   rfl
 #align dfinsupp.coe_smul Dfinsupp.coe_smul
 
-instance {δ : Type _} [Monoid γ] [Monoid δ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
-    [∀ i, DistribMulAction δ (β i)] [∀ i, SMulCommClass γ δ (β i)] : SMulCommClass γ δ (Π₀ i, β i)
+instance smulCommClass {δ : Type _} [Monoid γ] [Monoid δ] [∀ i, AddMonoid (β i)]
+    [∀ i, DistribMulAction γ (β i)] [∀ i, DistribMulAction δ (β i)] [∀ i, SMulCommClass γ δ (β i)] :
+    SMulCommClass γ δ (Π₀ i, β i)
     where smul_comm r s m := ext fun i => by simp only [smul_apply, smul_comm r s (m i)]
 
-instance {δ : Type _} [Monoid γ] [Monoid δ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
-    [∀ i, DistribMulAction δ (β i)] [SMul γ δ] [∀ i, IsScalarTower γ δ (β i)] :
-    IsScalarTower γ δ (Π₀ i, β i)
+instance isScalarTower {δ : Type _} [Monoid γ] [Monoid δ] [∀ i, AddMonoid (β i)]
+    [∀ i, DistribMulAction γ (β i)] [∀ i, DistribMulAction δ (β i)] [SMul γ δ]
+    [∀ i, IsScalarTower γ δ (β i)] : IsScalarTower γ δ (Π₀ i, β i)
     where smul_assoc r s m := ext fun i => by simp only [smul_apply, smul_assoc r s (m i)]
 
-instance [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
+instance isCentralScalar [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribMulAction γ (β i)]
     [∀ i, DistribMulAction γᵐᵒᵖ (β i)] [∀ i, IsCentralScalar γ (β i)] :
     IsCentralScalar γ (Π₀ i, β i)
     where op_smul_eq_smul r m := ext fun i => by simp only [smul_apply, op_smul_eq_smul r (m i)]
chore: add missing hypothesis names to by_cases (#2679)
Diff
@@ -1184,10 +1184,10 @@ theorem mapRange_def [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] {f : ∀ i, β
 theorem mapRange_single {f : ∀ i, β₁ i → β₂ i} {hf : ∀ i, f i 0 = 0} {i : ι} {b : β₁ i} :
     mapRange f hf (single i b) = single i (f i b) :=
   Dfinsupp.ext fun i' => by
-    by_cases i = i' <;>
-      [·
-        subst i'
-        simp, simp [h, hf]]
+    by_cases h : i = i'
+    · subst i'
+      simp
+    · simp [h, hf]
 #align dfinsupp.map_range_single Dfinsupp.mapRange_single
 
 variable [∀ (i) (x : β₁ i), Decidable (x ≠ 0)] [∀ (i) (x : β₂ i), Decidable (x ≠ 0)]
feat: update SHA from #18277 (#2653)

leanprover-community/mathlib#18277 backported a bug about classical which is already fixed in mathlib4, so these diffs simpy need a SHA update.

(Comment: This might not be the full PR #18277 yet, as I worked on a file-by-file base)

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Kenny Lau
 
 ! This file was ported from Lean 3 source module data.dfinsupp.basic
-! leanprover-community/mathlib commit e3d9ab8faa9dea8f78155c6c27d62a621f4c152d
+! leanprover-community/mathlib commit 6623e6af705e97002a9054c1c05a980180276fc1
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
feat: tactic congr! and improvement to convert (#2566)

This introduces a tactic congr! that is an analogue to mathlib 3's congr'. It is a more insistent version of congr that makes use of more congruence lemmas (including user congruence lemmas), propext, funext, and Subsingleton instances. It also has a feature to lift reflexive relations to equalities. Along with funext, the tactic does intros, allowing congr! to get access to function bodies; the introduced variables can be named using rename_i if needed.

This also modifies convert to use congr! rather than congr, which makes it work more like the mathlib3 version of the tactic.

Diff
@@ -1479,9 +1479,9 @@ theorem sigmaCurry_apply [∀ i j, Zero (δ i j)] (f : Π₀ i : Σi, _, δ i.1
     case h₁ =>
       rw [@mem_image _ _ (fun a b ↦ Classical.propDecidable (a = b))]
       refine' ⟨⟨i, j⟩, _, rfl⟩
-      convert (mem_support_toFun f _).2 h <;> apply Subsingleton.elim
+      convert (mem_support_toFun f _).2 h
     · rw [mem_preimage]
-      convert (mem_support_toFun f _).2 h <;> apply Subsingleton.elim
+      convert (mem_support_toFun f _).2 h
 #align dfinsupp.sigma_curry_apply Dfinsupp.sigmaCurry_apply
 
 @[simp]
feat: port LinearAlgebra.Dfinsupp (#2550)
Diff
@@ -382,10 +382,13 @@ instance distribMulAction [Monoid γ] [∀ i, AddMonoid (β i)] [∀ i, DistribM
 
 /-- Dependent functions with finite support inherit a module structure from such a structure on
 each coordinate. -/
-instance [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (β i)] : Module γ (Π₀ i, β i) :=
+instance module [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module γ (β i)] :
+    Module γ (Π₀ i, β i) :=
   { inferInstanceAs (DistribMulAction γ (Π₀ i, β i)) with
     zero_smul := fun c => ext fun i => by simp only [smul_apply, zero_smul, zero_apply]
     add_smul := fun c x y => ext fun i => by simp only [add_apply, smul_apply, add_smul] }
+#align dfinsupp.module Dfinsupp.module
+
 
 end Algebra
 
fix: replace symmApply by symm_apply (#2560)
Diff
@@ -2014,7 +2014,7 @@ theorem sumAddHom_comm {ι₁ ι₂ : Sort _} {β₁ : ι₁ → Type _} {β₂
 #align dfinsupp.sum_add_hom_comm Dfinsupp.sumAddHom_comm
 
 /-- The `Dfinsupp` version of `Finsupp.liftAddHom`,-/
-@[simps apply symmApply]
+@[simps apply symm_apply]
 def liftAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] : (∀ i, β i →+ γ) ≃+ ((Π₀ i, β i) →+ γ)
     where
   toFun := sumAddHom
@@ -2035,7 +2035,7 @@ def liftAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] : (∀ i, β i 
     simp [sumAddHom_apply, sum, Finset.sum_add_distrib]
 #align dfinsupp.lift_add_hom Dfinsupp.liftAddHom
 #align dfinsupp.lift_add_hom_apply Dfinsupp.liftAddHom_apply
-#align dfinsupp.lift_add_hom_symm_apply Dfinsupp.liftAddHom_symmApply
+#align dfinsupp.lift_add_hom_symm_apply Dfinsupp.liftAddHom_symm_apply
 
 -- Porting note: The elaborator is struggling with `liftAddHom`. Passing it `β` explicitly helps.
 -- This applies to roughly the remainder of the file.
@@ -2063,7 +2063,7 @@ theorem comp_liftAddHom {δ : Type _} [∀ i, AddZeroClass (β i)] [AddCommMonoi
     g.comp (liftAddHom (β := β) f) = liftAddHom (β := β) fun a => g.comp (f a) :=
   (liftAddHom (β := β)).symm_apply_eq.1 <|
     funext fun a => by
-      rw [liftAddHom_symmApply, AddMonoidHom.comp_assoc, liftAddHom_comp_single]
+      rw [liftAddHom_symm_apply, AddMonoidHom.comp_assoc, liftAddHom_comp_single]
 #align dfinsupp.comp_lift_add_hom Dfinsupp.comp_liftAddHom
 
 @[simp]
feat: port Data.Dfinsupp.Multiset (#2345)

Co-authored-by: Lukas Miaskiwskyi <lukas.mias@gmail.com>

Diff
@@ -247,7 +247,7 @@ theorem coe_add [∀ i, AddZeroClass (β i)] (g₁ g₂ : Π₀ i, β i) : ⇑(g
   rfl
 #align dfinsupp.coe_add Dfinsupp.coe_add
 
-instance [∀ i, AddZeroClass (β i)] : AddZeroClass (Π₀ i, β i) :=
+instance addZeroClass [∀ i, AddZeroClass (β i)] : AddZeroClass (Π₀ i, β i) :=
   FunLike.coe_injective.addZeroClass _ coe_zero coe_add
 
 /-- Note the general `SMul` instance doesn't apply as `ℕ` is not distributive
@@ -1009,23 +1009,23 @@ theorem add_closure_unionᵢ_range_single :
 
 /-- If two additive homomorphisms from `Π₀ i, β i` are equal on each `single a b`, then
 they are equal. -/
-theorem add_hom_ext {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+ γ⦄
+theorem addHom_ext {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+ γ⦄
     (H : ∀ (i : ι) (y : β i), f (single i y) = g (single i y)) : f = g := by
   refine' AddMonoidHom.eq_of_eqOn_denseM add_closure_unionᵢ_range_single fun f hf => _
   simp only [Set.mem_unionᵢ, Set.mem_range] at hf
   rcases hf with ⟨x, y, rfl⟩
   apply H
-#align dfinsupp.add_hom_ext Dfinsupp.add_hom_ext
+#align dfinsupp.add_hom_ext Dfinsupp.addHom_ext
 
 /-- If two additive homomorphisms from `Π₀ i, β i` are equal on each `single a b`, then
 they are equal.
 
 See note [partially-applied ext lemmas]. -/
 @[ext]
-theorem add_hom_ext' {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+ γ⦄
+theorem addHom_ext' {γ : Type w} [AddZeroClass γ] ⦃f g : (Π₀ i, β i) →+ γ⦄
     (H : ∀ x, f.comp (singleAddHom β x) = g.comp (singleAddHom β x)) : f = g :=
-  add_hom_ext fun x => FunLike.congr_fun (H x)
-#align dfinsupp.add_hom_ext' Dfinsupp.add_hom_ext'
+  addHom_ext fun x => FunLike.congr_fun (H x)
+#align dfinsupp.add_hom_ext' Dfinsupp.addHom_ext'
 
 end AddMonoid
 
chore: scoped BigOperators notation (#1952)
Diff
@@ -51,7 +51,7 @@ definitions, or introduce two more definitions for the other combinations of dec
 
 universe u u₁ u₂ v v₁ v₂ v₃ w x y l
 
--- open BigOperators -- Porting note: notation is global for now
+open BigOperators
 
 variable {ι : Type u} {γ : Type w} {β : ι → Type v} {β₁ : ι → Type v₁} {β₂ : ι → Type v₂}
 
chore: add missing #align statements (#1902)

This PR is the result of a slight variant on the following "algorithm"

  • take all mathlib 3 names, remove _ and make all uppercase letters into lowercase
  • take all mathlib 4 names, remove _ and make all uppercase letters into lowercase
  • look for matches, and create pairs (original_lean3_name, OriginalLean4Name)
  • for pairs that do not have an align statement:
    • use Lean 4 to lookup the file + position of the Lean 4 name
    • add an #align statement just before the next empty line
  • manually fix some tiny mistakes (e.g., empty lines in proofs might cause the #align statement to have been inserted too early)
Diff
@@ -449,6 +449,7 @@ def filterAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [Decidable
   map_zero' := filter_zero p
   map_add' := filter_add p
 #align dfinsupp.filter_add_monoid_hom Dfinsupp.filterAddMonoidHom
+#align dfinsupp.filter_add_monoid_hom_apply Dfinsupp.filterAddMonoidHom_apply
 
 /-- `Dfinsupp.filter` as a `LinearMap`. -/
 @[simps]
@@ -459,6 +460,7 @@ def filterLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, Module 
   map_add' := filter_add p
   map_smul' := filter_smul p
 #align dfinsupp.filter_linear_map Dfinsupp.filterLinearMap
+#align dfinsupp.filter_linear_map_apply Dfinsupp.filterLinearMap_apply
 
 variable {γ β}
 
@@ -522,6 +524,7 @@ def subtypeDomainAddMonoidHom [∀ i, AddZeroClass (β i)] (p : ι → Prop) [De
   map_zero' := subtypeDomain_zero
   map_add' := subtypeDomain_add
 #align dfinsupp.subtype_domain_add_monoid_hom Dfinsupp.subtypeDomainAddMonoidHom
+#align dfinsupp.subtype_domain_add_monoid_hom_apply Dfinsupp.subtypeDomainAddMonoidHom_apply
 
 /-- `Dfinsupp.subtypeDomain` as a `LinearMap`. -/
 @[simps]
@@ -532,6 +535,7 @@ def subtypeDomainLinearMap [Semiring γ] [∀ i, AddCommMonoid (β i)] [∀ i, M
   map_add' := subtypeDomain_add
   map_smul' := subtypeDomain_smul
 #align dfinsupp.subtype_domain_linear_map Dfinsupp.subtypeDomainLinearMap
+#align dfinsupp.subtype_domain_linear_map_apply Dfinsupp.subtypeDomainLinearMap_apply
 
 variable {γ β}
 
@@ -611,6 +615,7 @@ def equivFunOnFintype [Fintype ι] : (Π₀ i, β i) ≃ ∀ i, β i
   left_inv _ := FunLike.coe_injective rfl
   right_inv _ := rfl
 #align dfinsupp.equiv_fun_on_fintype Dfinsupp.equivFunOnFintype
+#align dfinsupp.equiv_fun_on_fintype_apply Dfinsupp.equivFunOnFintype_apply
 
 @[simp]
 theorem equivFunOnFintype_symm_coe [Fintype ι] (f : Π₀ i, β i) : equivFunOnFintype.symm f = f :=
@@ -890,6 +895,7 @@ def singleAddHom (i : ι) : β i →+ Π₀ i, β i
   map_zero' := single_zero i
   map_add' := single_add i
 #align dfinsupp.single_add_hom Dfinsupp.singleAddHom
+#align dfinsupp.single_add_hom_apply Dfinsupp.singleAddHom_apply
 
 /-- `Dfinsupp.erase` as an `AddMonoidHom`. -/
 @[simps]
@@ -899,6 +905,7 @@ def eraseAddHom (i : ι) : (Π₀ i, β i) →+ Π₀ i, β i
   map_zero' := erase_zero i
   map_add' := erase_add i
 #align dfinsupp.erase_add_hom Dfinsupp.eraseAddHom
+#align dfinsupp.erase_add_hom_apply Dfinsupp.eraseAddHom_apply
 
 variable {β}
 
@@ -1415,6 +1422,7 @@ def equivCongrLeft [∀ i, Zero (β i)] (h : ι ≃ κ) : (Π₀ i, β i) ≃ Π
     rw [comapDomain'_apply, mapRange_apply, comapDomain'_apply, Equiv.cast_eq_iff_heq,
       h.apply_symm_apply]
 #align dfinsupp.equiv_congr_left Dfinsupp.equivCongrLeft
+#align dfinsupp.equiv_congr_left_apply Dfinsupp.equivCongrLeft_apply
 
 section Curry
 
@@ -1676,6 +1684,8 @@ noncomputable def equivProdDfinsupp [∀ i, Zero (α i)] : (Π₀ i, α i) ≃ 
     · exact extendWith_none x.snd _
     · rw [comapDomain_apply, extendWith_some]
 #align dfinsupp.equiv_prod_dfinsupp Dfinsupp.equivProdDfinsupp
+#align dfinsupp.equiv_prod_dfinsupp_apply Dfinsupp.equivProdDfinsupp_apply
+#align dfinsupp.equiv_prod_dfinsupp_symm_apply Dfinsupp.equivProdDfinsupp_symm_apply
 
 theorem equivProdDfinsupp_add [∀ i, AddZeroClass (α i)] (f g : Π₀ i, α i) :
     equivProdDfinsupp (f + g) = equivProdDfinsupp f + equivProdDfinsupp g :=
@@ -2024,6 +2034,8 @@ def liftAddHom [∀ i, AddZeroClass (β i)] [AddCommMonoid γ] : (∀ i, β i 
     ext
     simp [sumAddHom_apply, sum, Finset.sum_add_distrib]
 #align dfinsupp.lift_add_hom Dfinsupp.liftAddHom
+#align dfinsupp.lift_add_hom_apply Dfinsupp.liftAddHom_apply
+#align dfinsupp.lift_add_hom_symm_apply Dfinsupp.liftAddHom_symmApply
 
 -- Porting note: The elaborator is struggling with `liftAddHom`. Passing it `β` explicitly helps.
 -- This applies to roughly the remainder of the file.
@@ -2165,6 +2177,7 @@ def mapRange.addMonoidHom (f : ∀ i, β₁ i →+ β₂ i) : (Π₀ i, β₁ i)
   map_zero' := mapRange_zero _ _
   map_add' := mapRange_add _ (fun i => (f i).map_zero) fun i => (f i).map_add
 #align dfinsupp.map_range.add_monoid_hom Dfinsupp.mapRange.addMonoidHom
+#align dfinsupp.map_range.add_monoid_hom_apply Dfinsupp.mapRange.addMonoidHom_apply
 
 @[simp]
 theorem mapRange.addMonoidHom_id :
@@ -2197,6 +2210,7 @@ def mapRange.addEquiv (e : ∀ i, β₁ i ≃+ β₂ i) : (Π₀ i, β₁ i) ≃
         · simp_rw [AddEquiv.self_comp_symm]
           simp }
 #align dfinsupp.map_range.add_equiv Dfinsupp.mapRange.addEquiv
+#align dfinsupp.map_range.add_equiv_apply Dfinsupp.mapRange.addEquiv_apply
 
 @[simp]
 theorem mapRange.addEquiv_refl :
feat: port Data.Dfinsupp.Basic (#1829)

Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: qawbecrdtey <qawbecrdtey@naver.com> Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com> Co-authored-by: Vierkantor <vierkantor@vierkantor.com>

Dependencies 8 + 282

283 files ported (97.3%)
118120 lines ported (97.4%)
Show graph

The unported dependencies are