algebra.hom.centroidMathlib.Algebra.Ring.CentroidHom

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -432,17 +432,17 @@ instance : AddCommMonoid (CentroidHom α) :=
 
 instance : NatCast (CentroidHom α) where natCast n := n • 1
 
-#print CentroidHom.coe_nat_cast /-
+#print CentroidHom.coe_natCast /-
 @[simp, norm_cast]
-theorem coe_nat_cast (n : ℕ) : ⇑(n : CentroidHom α) = n • id :=
+theorem coe_natCast (n : ℕ) : ⇑(n : CentroidHom α) = n • id :=
   rfl
-#align centroid_hom.coe_nat_cast CentroidHom.coe_nat_cast
+#align centroid_hom.coe_nat_cast CentroidHom.coe_natCast
 -/
 
-#print CentroidHom.nat_cast_apply /-
-theorem nat_cast_apply (n : ℕ) (m : α) : (n : CentroidHom α) m = n • m :=
+#print CentroidHom.natCast_apply /-
+theorem natCast_apply (n : ℕ) (m : α) : (n : CentroidHom α) m = n • m :=
   rfl
-#align centroid_hom.nat_cast_apply CentroidHom.nat_cast_apply
+#align centroid_hom.nat_cast_apply CentroidHom.natCast_apply
 -/
 
 #print CentroidHom.toEnd_one /-
@@ -465,17 +465,17 @@ theorem toEnd_pow (x : CentroidHom α) (n : ℕ) : (x ^ n).toEnd = x.toEnd ^ n :
 #align centroid_hom.to_End_pow CentroidHom.toEnd_pow
 -/
 
-#print CentroidHom.toEnd_nat_cast /-
+#print CentroidHom.toEnd_natCast /-
 @[simp, norm_cast]
-theorem toEnd_nat_cast (n : ℕ) : (n : CentroidHom α).toEnd = ↑n :=
+theorem toEnd_natCast (n : ℕ) : (n : CentroidHom α).toEnd = ↑n :=
   rfl
-#align centroid_hom.to_End_nat_cast CentroidHom.toEnd_nat_cast
+#align centroid_hom.to_End_nat_cast CentroidHom.toEnd_natCast
 -/
 
 -- cf `add_monoid.End.semiring`
 instance : Semiring (CentroidHom α) :=
   toEnd_injective.Semiring _ toEnd_zero toEnd_one toEnd_add toEnd_mul toEnd_smul toEnd_pow
-    toEnd_nat_cast
+    toEnd_natCast
 
 #print CentroidHom.comp_mul_comm /-
 theorem comp_mul_comm (T S : CentroidHom α) (a b : α) : (T ∘ S) (a * b) = (S ∘ T) (a * b) := by
@@ -518,17 +518,17 @@ instance hasZsmul : SMul ℤ (CentroidHom α) :=
 
 instance : IntCast (CentroidHom α) where intCast z := z • 1
 
-#print CentroidHom.coe_int_cast /-
+#print CentroidHom.coe_intCast /-
 @[simp, norm_cast]
-theorem coe_int_cast (z : ℤ) : ⇑(z : CentroidHom α) = z • id :=
+theorem coe_intCast (z : ℤ) : ⇑(z : CentroidHom α) = z • id :=
   rfl
-#align centroid_hom.coe_int_cast CentroidHom.coe_int_cast
+#align centroid_hom.coe_int_cast CentroidHom.coe_intCast
 -/
 
-#print CentroidHom.int_cast_apply /-
-theorem int_cast_apply (z : ℤ) (m : α) : (z : CentroidHom α) m = z • m :=
+#print CentroidHom.intCast_apply /-
+theorem intCast_apply (z : ℤ) (m : α) : (z : CentroidHom α) m = z • m :=
   rfl
-#align centroid_hom.int_cast_apply CentroidHom.int_cast_apply
+#align centroid_hom.int_cast_apply CentroidHom.intCast_apply
 -/
 
 #print CentroidHom.toEnd_neg /-
@@ -584,16 +584,16 @@ theorem sub_apply (f g : CentroidHom α) (a : α) : (f - g) a = f a - g a :=
 #align centroid_hom.sub_apply CentroidHom.sub_apply
 -/
 
-#print CentroidHom.toEnd_int_cast /-
+#print CentroidHom.toEnd_intCast /-
 @[simp, norm_cast]
-theorem toEnd_int_cast (z : ℤ) : (z : CentroidHom α).toEnd = ↑z :=
+theorem toEnd_intCast (z : ℤ) : (z : CentroidHom α).toEnd = ↑z :=
   rfl
-#align centroid_hom.to_End_int_cast CentroidHom.toEnd_int_cast
+#align centroid_hom.to_End_int_cast CentroidHom.toEnd_intCast
 -/
 
 instance : Ring (CentroidHom α) :=
   toEnd_injective.Ring _ toEnd_zero toEnd_one toEnd_add toEnd_mul toEnd_neg toEnd_sub toEnd_smul
-    toEnd_smul toEnd_pow toEnd_nat_cast toEnd_int_cast
+    toEnd_smul toEnd_pow toEnd_natCast toEnd_intCast
 
 end NonUnitalNonAssocRing
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies, Christopher Hoskin
 -/
 import Algebra.GroupPower.Lemmas
-import Algebra.Hom.GroupInstances
+import Algebra.Group.Hom.Instances
 
 #align_import algebra.hom.centroid from "leanprover-community/mathlib"@"cc70d9141824ea8982d1562ce009952f2c3ece30"
 
@@ -324,12 +324,12 @@ instance hasNPowNat : Pow (CentroidHom α) ℕ :=
       map_hMul_left' := fun a b => by
         induction' n with n ih
         · simp
-        · rw [pow_succ]
+        · rw [pow_succ']
           exact (congr_arg f.to_End ih).trans (f.map_mul_left' _ _)
       map_hMul_right' := fun a b => by
         induction' n with n ih
         · simp
-        · rw [pow_succ]
+        · rw [pow_succ']
           exact (congr_arg f.to_End ih).trans (f.map_mul_right' _ _) }⟩
 #align centroid_hom.has_npow_nat CentroidHom.hasNPowNat
 -/
Diff
@@ -103,7 +103,7 @@ instance : CentroidHomClass (CentroidHom α) α
 /-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`
 directly. -/
 instance : CoeFun (CentroidHom α) fun _ => α → α :=
-  FunLike.hasCoeToFun
+  DFunLike.hasCoeToFun
 
 #print CentroidHom.toFun_eq_coe /-
 @[simp]
@@ -115,7 +115,7 @@ theorem toFun_eq_coe {f : CentroidHom α} : f.toFun = (f : α → α) :=
 #print CentroidHom.ext /-
 @[ext]
 theorem ext {f g : CentroidHom α} (h : ∀ a, f a = g a) : f = g :=
-  FunLike.ext f g h
+  DFunLike.ext f g h
 #align centroid_hom.ext CentroidHom.ext
 -/
 
@@ -136,7 +136,7 @@ theorem toAddMonoidHom_eq_coe (f : CentroidHom α) : f.toAddMonoidHom = f :=
 #print CentroidHom.coe_toAddMonoidHom_injective /-
 theorem coe_toAddMonoidHom_injective : Injective (coe : CentroidHom α → α →+ α) := fun f g h =>
   ext fun a =>
-    haveI := FunLike.congr_fun h a
+    haveI := DFunLike.congr_fun h a
     this
 #align centroid_hom.coe_to_add_monoid_hom_injective CentroidHom.coe_toAddMonoidHom_injective
 -/
@@ -174,7 +174,7 @@ theorem coe_copy (f : CentroidHom α) (f' : α → α) (h : f' = f) : ⇑(f.copy
 
 #print CentroidHom.copy_eq /-
 theorem copy_eq (f : CentroidHom α) (f' : α → α) (h : f' = f) : f.copy f' h = f :=
-  FunLike.ext' h
+  DFunLike.ext' h
 #align centroid_hom.copy_eq CentroidHom.copy_eq
 -/
 
@@ -272,7 +272,7 @@ theorem id_comp (f : CentroidHom α) : (CentroidHom.id α).comp f = f :=
 #print CentroidHom.cancel_right /-
 theorem cancel_right {g₁ g₂ f : CentroidHom α} (hf : Surjective f) :
     g₁.comp f = g₂.comp f ↔ g₁ = g₂ :=
-  ⟨fun h => ext <| hf.forall.2 <| FunLike.ext_iff.1 h, congr_arg _⟩
+  ⟨fun h => ext <| hf.forall.2 <| DFunLike.ext_iff.1 h, congr_arg _⟩
 #align centroid_hom.cancel_right CentroidHom.cancel_right
 -/
 
Diff
@@ -314,8 +314,8 @@ instance hasNsmul : SMul ℕ (CentroidHom α) :=
         rw [map_mul_right f, ← smul_mul_assoc] }⟩
 #align centroid_hom.has_nsmul CentroidHom.hasNsmul
 
-#print CentroidHom.hasNpowNat /-
-instance hasNpowNat : Pow (CentroidHom α) ℕ :=
+#print CentroidHom.hasNPowNat /-
+instance hasNPowNat : Pow (CentroidHom α) ℕ :=
   ⟨fun f n =>
     {
       (f.toEnd ^ n :
@@ -331,7 +331,7 @@ instance hasNpowNat : Pow (CentroidHom α) ℕ :=
         · simp
         · rw [pow_succ]
           exact (congr_arg f.to_End ih).trans (f.map_mul_right' _ _) }⟩
-#align centroid_hom.has_npow_nat CentroidHom.hasNpowNat
+#align centroid_hom.has_npow_nat CentroidHom.hasNPowNat
 -/
 
 #print CentroidHom.coe_zero /-
Diff
@@ -302,7 +302,6 @@ instance : Add (CentroidHom α) :=
 instance : Mul (CentroidHom α) :=
   ⟨comp⟩
 
-#print CentroidHom.hasNsmul /-
 instance hasNsmul : SMul ℕ (CentroidHom α) :=
   ⟨fun n f =>
     {
@@ -314,7 +313,6 @@ instance hasNsmul : SMul ℕ (CentroidHom α) :=
       map_hMul_right' := fun a b => by change n • f (a * b) = n • f a * b;
         rw [map_mul_right f, ← smul_mul_assoc] }⟩
 #align centroid_hom.has_nsmul CentroidHom.hasNsmul
--/
 
 #print CentroidHom.hasNpowNat /-
 instance hasNpowNat : Pow (CentroidHom α) ℕ :=
@@ -364,12 +362,12 @@ theorem coe_mul (f g : CentroidHom α) : ⇑(f * g) = f ∘ g :=
 #align centroid_hom.coe_mul CentroidHom.coe_mul
 -/
 
-#print CentroidHom.coe_nsmul /-
+#print CentroidHom.coe_smul /-
 -- Eligible for `dsimp`
 @[simp, norm_cast, nolint simp_nf]
-theorem coe_nsmul (f : CentroidHom α) (n : ℕ) : ⇑(n • f) = n • f :=
+theorem coe_smul (f : CentroidHom α) (n : ℕ) : ⇑(n • f) = n • f :=
   rfl
-#align centroid_hom.coe_nsmul CentroidHom.coe_nsmul
+#align centroid_hom.coe_nsmul CentroidHom.coe_smul
 -/
 
 #print CentroidHom.zero_apply /-
@@ -400,12 +398,12 @@ theorem mul_apply (f g : CentroidHom α) (a : α) : (f * g) a = f (g a) :=
 #align centroid_hom.mul_apply CentroidHom.mul_apply
 -/
 
-#print CentroidHom.nsmul_apply /-
+#print CentroidHom.smul_apply /-
 -- Eligible for `dsimp`
 @[simp, nolint simp_nf]
-theorem nsmul_apply (f : CentroidHom α) (n : ℕ) (a : α) : (n • f) a = n • f a :=
+theorem smul_apply (f : CentroidHom α) (n : ℕ) (a : α) : (n • f) a = n • f a :=
   rfl
-#align centroid_hom.nsmul_apply CentroidHom.nsmul_apply
+#align centroid_hom.nsmul_apply CentroidHom.smul_apply
 -/
 
 #print CentroidHom.toEnd_zero /-
@@ -422,15 +420,15 @@ theorem toEnd_add (x y : CentroidHom α) : (x + y).toEnd = x.toEnd + y.toEnd :=
 #align centroid_hom.to_End_add CentroidHom.toEnd_add
 -/
 
-#print CentroidHom.toEnd_nsmul /-
-theorem toEnd_nsmul (x : CentroidHom α) (n : ℕ) : (n • x).toEnd = n • x.toEnd :=
+#print CentroidHom.toEnd_smul /-
+theorem toEnd_smul (x : CentroidHom α) (n : ℕ) : (n • x).toEnd = n • x.toEnd :=
   rfl
-#align centroid_hom.to_End_nsmul CentroidHom.toEnd_nsmul
+#align centroid_hom.to_End_nsmul CentroidHom.toEnd_smul
 -/
 
 -- cf.`add_monoid_hom.add_comm_monoid`
 instance : AddCommMonoid (CentroidHom α) :=
-  coe_toAddMonoidHom_injective.AddCommMonoid _ toEnd_zero toEnd_add toEnd_nsmul
+  coe_toAddMonoidHom_injective.AddCommMonoid _ toEnd_zero toEnd_add toEnd_smul
 
 instance : NatCast (CentroidHom α) where natCast n := n • 1
 
@@ -476,7 +474,7 @@ theorem toEnd_nat_cast (n : ℕ) : (n : CentroidHom α).toEnd = ↑n :=
 
 -- cf `add_monoid.End.semiring`
 instance : Semiring (CentroidHom α) :=
-  toEnd_injective.Semiring _ toEnd_zero toEnd_one toEnd_add toEnd_mul toEnd_nsmul toEnd_pow
+  toEnd_injective.Semiring _ toEnd_zero toEnd_one toEnd_add toEnd_mul toEnd_smul toEnd_pow
     toEnd_nat_cast
 
 #print CentroidHom.comp_mul_comm /-
@@ -506,7 +504,6 @@ instance : Sub (CentroidHom α) :=
       map_hMul_left' := fun a b => by simp [map_mul_left, mul_sub]
       map_hMul_right' := fun a b => by simp [map_mul_right, sub_mul] }⟩
 
-#print CentroidHom.hasZsmul /-
 instance hasZsmul : SMul ℤ (CentroidHom α) :=
   ⟨fun n f =>
     {
@@ -518,7 +515,6 @@ instance hasZsmul : SMul ℤ (CentroidHom α) :=
       map_hMul_right' := fun a b => by change n • f (a * b) = n • f a * b;
         rw [map_mul_right f, ← smul_mul_assoc] }⟩
 #align centroid_hom.has_zsmul CentroidHom.hasZsmul
--/
 
 instance : IntCast (CentroidHom α) where intCast z := z • 1
 
@@ -549,14 +545,16 @@ theorem toEnd_sub (x y : CentroidHom α) : (x - y).toEnd = x.toEnd - y.toEnd :=
 #align centroid_hom.to_End_sub CentroidHom.toEnd_sub
 -/
 
-#print CentroidHom.toEnd_zsmul /-
-theorem toEnd_zsmul (x : CentroidHom α) (n : ℤ) : (n • x).toEnd = n • x.toEnd :=
+/- warning: centroid_hom.to_End_zsmul clashes with centroid_hom.to_End_nsmul -> CentroidHom.toEnd_smul
+Case conversion may be inaccurate. Consider using '#align centroid_hom.to_End_zsmul CentroidHom.toEnd_smulₓ'. -/
+#print CentroidHom.toEnd_smul /-
+theorem toEnd_smul (x : CentroidHom α) (n : ℤ) : (n • x).toEnd = n • x.toEnd :=
   rfl
-#align centroid_hom.to_End_zsmul CentroidHom.toEnd_zsmul
+#align centroid_hom.to_End_zsmul CentroidHom.toEnd_smul
 -/
 
 instance : AddCommGroup (CentroidHom α) :=
-  toEnd_injective.AddCommGroup _ toEnd_zero toEnd_add toEnd_neg toEnd_sub toEnd_nsmul toEnd_zsmul
+  toEnd_injective.AddCommGroup _ toEnd_zero toEnd_add toEnd_neg toEnd_sub toEnd_smul toEnd_smul
 
 #print CentroidHom.coe_neg /-
 @[simp, norm_cast]
@@ -594,8 +592,8 @@ theorem toEnd_int_cast (z : ℤ) : (z : CentroidHom α).toEnd = ↑z :=
 -/
 
 instance : Ring (CentroidHom α) :=
-  toEnd_injective.Ring _ toEnd_zero toEnd_one toEnd_add toEnd_mul toEnd_neg toEnd_sub toEnd_nsmul
-    toEnd_zsmul toEnd_pow toEnd_nat_cast toEnd_int_cast
+  toEnd_injective.Ring _ toEnd_zero toEnd_one toEnd_add toEnd_mul toEnd_neg toEnd_sub toEnd_smul
+    toEnd_smul toEnd_pow toEnd_nat_cast toEnd_int_cast
 
 end NonUnitalNonAssocRing
 
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2022 Yaël Dillies. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies, Christopher Hoskin
 -/
-import Mathbin.Algebra.GroupPower.Lemmas
-import Mathbin.Algebra.Hom.GroupInstances
+import Algebra.GroupPower.Lemmas
+import Algebra.Hom.GroupInstances
 
 #align_import algebra.hom.centroid from "leanprover-community/mathlib"@"cc70d9141824ea8982d1562ce009952f2c3ece30"
 
Diff
@@ -55,8 +55,8 @@ variable {F α : Type _}
 -- because eta for structures should provide the same result.
 /-- The type of centroid homomorphisms from `α` to `α`. -/
 structure CentroidHom (α : Type _) [NonUnitalNonAssocSemiring α] extends α →+ α where
-  map_mul_left' (a b : α) : to_fun (a * b) = a * to_fun b
-  map_mul_right' (a b : α) : to_fun (a * b) = to_fun a * b
+  map_hMul_left' (a b : α) : to_fun (a * b) = a * to_fun b
+  map_hMul_right' (a b : α) : to_fun (a * b) = to_fun a * b
 #align centroid_hom CentroidHom
 -/
 
@@ -68,19 +68,19 @@ attribute [nolint doc_blame] CentroidHom.toAddMonoidHom
 You should extend this class when you extend `centroid_hom`. -/
 class CentroidHomClass (F : Type _) (α : outParam <| Type _) [NonUnitalNonAssocSemiring α] extends
     AddMonoidHomClass F α α where
-  map_mul_left (f : F) (a b : α) : f (a * b) = a * f b
-  map_mul_right (f : F) (a b : α) : f (a * b) = f a * b
+  map_hMul_left (f : F) (a b : α) : f (a * b) = a * f b
+  map_hMul_right (f : F) (a b : α) : f (a * b) = f a * b
 #align centroid_hom_class CentroidHomClass
 -/
 
-export CentroidHomClass (map_mul_left map_mul_right)
+export CentroidHomClass (map_hMul_left map_hMul_right)
 
 instance [NonUnitalNonAssocSemiring α] [CentroidHomClass F α] : CoeTC F (CentroidHom α) :=
   ⟨fun f =>
     { (f : α →+ α) with
       toFun := f
-      map_mul_left' := map_mul_left f
-      map_mul_right' := map_mul_right f }⟩
+      map_hMul_left' := map_hMul_left f
+      map_hMul_right' := map_hMul_right f }⟩
 
 /-! ### Centroid homomorphisms -/
 
@@ -97,8 +97,8 @@ instance : CentroidHomClass (CentroidHom α) α
   coe_injective' f g h := by cases f; cases g; congr
   map_zero f := f.map_zero'
   map_add f := f.map_add'
-  map_mul_left f := f.map_mul_left'
-  map_mul_right f := f.map_mul_right'
+  map_hMul_left f := f.map_hMul_left'
+  map_hMul_right f := f.map_hMul_right'
 
 /-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`
 directly. -/
@@ -160,8 +160,8 @@ definitional equalities. -/
 protected def copy (f : CentroidHom α) (f' : α → α) (h : f' = f) : CentroidHom α :=
   { f.toAddMonoidHom.copy f' <| h with
     toFun := f'
-    map_mul_left' := fun a b => by simp_rw [h, map_mul_left]
-    map_mul_right' := fun a b => by simp_rw [h, map_mul_right] }
+    map_hMul_left' := fun a b => by simp_rw [h, map_mul_left]
+    map_hMul_right' := fun a b => by simp_rw [h, map_mul_right] }
 #align centroid_hom.copy CentroidHom.copy
 -/
 
@@ -184,8 +184,8 @@ variable (α)
 /-- `id` as a `centroid_hom`. -/
 protected def id : CentroidHom α :=
   { AddMonoidHom.id α with
-    map_mul_left' := fun _ _ => rfl
-    map_mul_right' := fun _ _ => rfl }
+    map_hMul_left' := fun _ _ => rfl
+    map_hMul_right' := fun _ _ => rfl }
 #align centroid_hom.id CentroidHom.id
 -/
 
@@ -221,9 +221,9 @@ def comp (g f : CentroidHom α) : CentroidHom α :=
   {
     g.toAddMonoidHom.comp
       f.toAddMonoidHom with
-    map_mul_left' := fun a b => (congr_arg g <| f.map_mul_left' _ _).trans <| g.map_mul_left' _ _
-    map_mul_right' := fun a b =>
-      (congr_arg g <| f.map_mul_right' _ _).trans <| g.map_mul_right' _ _ }
+    map_hMul_left' := fun a b => (congr_arg g <| f.map_hMul_left' _ _).trans <| g.map_hMul_left' _ _
+    map_hMul_right' := fun a b =>
+      (congr_arg g <| f.map_hMul_right' _ _).trans <| g.map_hMul_right' _ _ }
 #align centroid_hom.comp CentroidHom.comp
 -/
 
@@ -285,8 +285,8 @@ theorem cancel_left {g f₁ f₂ : CentroidHom α} (hg : Injective g) :
 
 instance : Zero (CentroidHom α) :=
   ⟨{ (0 : α →+ α) with
-      map_mul_left' := fun a b => (MulZeroClass.mul_zero _).symm
-      map_mul_right' := fun a b => (MulZeroClass.zero_mul _).symm }⟩
+      map_hMul_left' := fun a b => (MulZeroClass.mul_zero _).symm
+      map_hMul_right' := fun a b => (MulZeroClass.zero_mul _).symm }⟩
 
 instance : One (CentroidHom α) :=
   ⟨CentroidHom.id α⟩
@@ -296,8 +296,8 @@ instance : Add (CentroidHom α) :=
     {
       (f + g : α →+
           α) with
-      map_mul_left' := fun a b => by simp [map_mul_left, mul_add]
-      map_mul_right' := fun a b => by simp [map_mul_right, add_mul] }⟩
+      map_hMul_left' := fun a b => by simp [map_mul_left, mul_add]
+      map_hMul_right' := fun a b => by simp [map_mul_right, add_mul] }⟩
 
 instance : Mul (CentroidHom α) :=
   ⟨comp⟩
@@ -309,9 +309,9 @@ instance hasNsmul : SMul ℕ (CentroidHom α) :=
       (n • f :
         α →+
           α) with
-      map_mul_left' := fun a b => by change n • f (a * b) = a * n • f b;
+      map_hMul_left' := fun a b => by change n • f (a * b) = a * n • f b;
         rw [map_mul_left f, ← mul_smul_comm]
-      map_mul_right' := fun a b => by change n • f (a * b) = n • f a * b;
+      map_hMul_right' := fun a b => by change n • f (a * b) = n • f a * b;
         rw [map_mul_right f, ← smul_mul_assoc] }⟩
 #align centroid_hom.has_nsmul CentroidHom.hasNsmul
 -/
@@ -323,12 +323,12 @@ instance hasNpowNat : Pow (CentroidHom α) ℕ :=
       (f.toEnd ^ n :
         AddMonoid.End
           α) with
-      map_mul_left' := fun a b => by
+      map_hMul_left' := fun a b => by
         induction' n with n ih
         · simp
         · rw [pow_succ]
           exact (congr_arg f.to_End ih).trans (f.map_mul_left' _ _)
-      map_mul_right' := fun a b => by
+      map_hMul_right' := fun a b => by
         induction' n with n ih
         · simp
         · rw [pow_succ]
@@ -495,16 +495,16 @@ variable [NonUnitalNonAssocRing α]
 instance : Neg (CentroidHom α) :=
   ⟨fun f =>
     { (-f : α →+ α) with
-      map_mul_left' := by simp [map_mul_left]
-      map_mul_right' := by simp [map_mul_right] }⟩
+      map_hMul_left' := by simp [map_mul_left]
+      map_hMul_right' := by simp [map_mul_right] }⟩
 
 instance : Sub (CentroidHom α) :=
   ⟨fun f g =>
     {
       (f - g : α →+
           α) with
-      map_mul_left' := fun a b => by simp [map_mul_left, mul_sub]
-      map_mul_right' := fun a b => by simp [map_mul_right, sub_mul] }⟩
+      map_hMul_left' := fun a b => by simp [map_mul_left, mul_sub]
+      map_hMul_right' := fun a b => by simp [map_mul_right, sub_mul] }⟩
 
 #print CentroidHom.hasZsmul /-
 instance hasZsmul : SMul ℤ (CentroidHom α) :=
@@ -513,9 +513,9 @@ instance hasZsmul : SMul ℤ (CentroidHom α) :=
       (n • f :
         α →+
           α) with
-      map_mul_left' := fun a b => by change n • f (a * b) = a * n • f b;
+      map_hMul_left' := fun a b => by change n • f (a * b) = a * n • f b;
         rw [map_mul_left f, ← mul_smul_comm]
-      map_mul_right' := fun a b => by change n • f (a * b) = n • f a * b;
+      map_hMul_right' := fun a b => by change n • f (a * b) = n • f a * b;
         rw [map_mul_right f, ← smul_mul_assoc] }⟩
 #align centroid_hom.has_zsmul CentroidHom.hasZsmul
 -/
Diff
@@ -105,10 +105,12 @@ directly. -/
 instance : CoeFun (CentroidHom α) fun _ => α → α :=
   FunLike.hasCoeToFun
 
+#print CentroidHom.toFun_eq_coe /-
 @[simp]
 theorem toFun_eq_coe {f : CentroidHom α} : f.toFun = (f : α → α) :=
   rfl
 #align centroid_hom.to_fun_eq_coe CentroidHom.toFun_eq_coe
+-/
 
 #print CentroidHom.ext /-
 @[ext]
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2022 Yaël Dillies. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies, Christopher Hoskin
-
-! This file was ported from Lean 3 source module algebra.hom.centroid
-! leanprover-community/mathlib commit cc70d9141824ea8982d1562ce009952f2c3ece30
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.GroupPower.Lemmas
 import Mathbin.Algebra.Hom.GroupInstances
 
+#align_import algebra.hom.centroid from "leanprover-community/mathlib"@"cc70d9141824ea8982d1562ce009952f2c3ece30"
+
 /-!
 # Centroid homomorphisms
 
Diff
@@ -113,26 +113,34 @@ theorem toFun_eq_coe {f : CentroidHom α} : f.toFun = (f : α → α) :=
   rfl
 #align centroid_hom.to_fun_eq_coe CentroidHom.toFun_eq_coe
 
+#print CentroidHom.ext /-
 @[ext]
 theorem ext {f g : CentroidHom α} (h : ∀ a, f a = g a) : f = g :=
   FunLike.ext f g h
 #align centroid_hom.ext CentroidHom.ext
+-/
 
+#print CentroidHom.coe_toAddMonoidHom /-
 @[simp, norm_cast]
 theorem coe_toAddMonoidHom (f : CentroidHom α) : ⇑(f : α →+ α) = f :=
   rfl
 #align centroid_hom.coe_to_add_monoid_hom CentroidHom.coe_toAddMonoidHom
+-/
 
+#print CentroidHom.toAddMonoidHom_eq_coe /-
 @[simp]
 theorem toAddMonoidHom_eq_coe (f : CentroidHom α) : f.toAddMonoidHom = f :=
   rfl
 #align centroid_hom.to_add_monoid_hom_eq_coe CentroidHom.toAddMonoidHom_eq_coe
+-/
 
+#print CentroidHom.coe_toAddMonoidHom_injective /-
 theorem coe_toAddMonoidHom_injective : Injective (coe : CentroidHom α → α →+ α) := fun f g h =>
   ext fun a =>
     haveI := FunLike.congr_fun h a
     this
 #align centroid_hom.coe_to_add_monoid_hom_injective CentroidHom.coe_toAddMonoidHom_injective
+-/
 
 #print CentroidHom.toEnd /-
 /-- Turn a centroid homomorphism into an additive monoid endomorphism. -/
@@ -147,6 +155,7 @@ theorem toEnd_injective : Injective (CentroidHom.toEnd : CentroidHom α → AddM
 #align centroid_hom.to_End_injective CentroidHom.toEnd_injective
 -/
 
+#print CentroidHom.copy /-
 /-- Copy of a `centroid_hom` with a new `to_fun` equal to the old one. Useful to fix
 definitional equalities. -/
 protected def copy (f : CentroidHom α) (f' : α → α) (h : f' = f) : CentroidHom α :=
@@ -155,15 +164,20 @@ protected def copy (f : CentroidHom α) (f' : α → α) (h : f' = f) : Centroid
     map_mul_left' := fun a b => by simp_rw [h, map_mul_left]
     map_mul_right' := fun a b => by simp_rw [h, map_mul_right] }
 #align centroid_hom.copy CentroidHom.copy
+-/
 
+#print CentroidHom.coe_copy /-
 @[simp]
 theorem coe_copy (f : CentroidHom α) (f' : α → α) (h : f' = f) : ⇑(f.copy f' h) = f' :=
   rfl
 #align centroid_hom.coe_copy CentroidHom.coe_copy
+-/
 
+#print CentroidHom.copy_eq /-
 theorem copy_eq (f : CentroidHom α) (f' : α → α) (h : f' = f) : f.copy f' h = f :=
   FunLike.ext' h
 #align centroid_hom.copy_eq CentroidHom.copy_eq
+-/
 
 variable (α)
 
@@ -179,22 +193,28 @@ protected def id : CentroidHom α :=
 instance : Inhabited (CentroidHom α) :=
   ⟨CentroidHom.id α⟩
 
+#print CentroidHom.coe_id /-
 @[simp, norm_cast]
 theorem coe_id : ⇑(CentroidHom.id α) = id :=
   rfl
 #align centroid_hom.coe_id CentroidHom.coe_id
+-/
 
+#print CentroidHom.toAddMonoidHom_id /-
 @[simp, norm_cast]
 theorem toAddMonoidHom_id : (CentroidHom.id α : α →+ α) = AddMonoidHom.id α :=
   rfl
 #align centroid_hom.coe_to_add_monoid_hom_id CentroidHom.toAddMonoidHom_id
+-/
 
 variable {α}
 
+#print CentroidHom.id_apply /-
 @[simp]
 theorem id_apply (a : α) : CentroidHom.id α a = a :=
   rfl
 #align centroid_hom.id_apply CentroidHom.id_apply
+-/
 
 #print CentroidHom.comp /-
 /-- Composition of `centroid_hom`s as a `centroid_hom`. -/
@@ -208,20 +228,26 @@ def comp (g f : CentroidHom α) : CentroidHom α :=
 #align centroid_hom.comp CentroidHom.comp
 -/
 
+#print CentroidHom.coe_comp /-
 @[simp, norm_cast]
 theorem coe_comp (g f : CentroidHom α) : ⇑(g.comp f) = g ∘ f :=
   rfl
 #align centroid_hom.coe_comp CentroidHom.coe_comp
+-/
 
+#print CentroidHom.comp_apply /-
 @[simp]
 theorem comp_apply (g f : CentroidHom α) (a : α) : g.comp f a = g (f a) :=
   rfl
 #align centroid_hom.comp_apply CentroidHom.comp_apply
+-/
 
+#print CentroidHom.coe_comp_addMonoidHom /-
 @[simp, norm_cast]
 theorem coe_comp_addMonoidHom (g f : CentroidHom α) : (g.comp f : α →+ α) = (g : α →+ α).comp f :=
   rfl
 #align centroid_hom.coe_comp_add_monoid_hom CentroidHom.coe_comp_addMonoidHom
+-/
 
 #print CentroidHom.comp_assoc /-
 @[simp]
@@ -244,15 +270,19 @@ theorem id_comp (f : CentroidHom α) : (CentroidHom.id α).comp f = f :=
 #align centroid_hom.id_comp CentroidHom.id_comp
 -/
 
+#print CentroidHom.cancel_right /-
 theorem cancel_right {g₁ g₂ f : CentroidHom α} (hf : Surjective f) :
     g₁.comp f = g₂.comp f ↔ g₁ = g₂ :=
   ⟨fun h => ext <| hf.forall.2 <| FunLike.ext_iff.1 h, congr_arg _⟩
 #align centroid_hom.cancel_right CentroidHom.cancel_right
+-/
 
+#print CentroidHom.cancel_left /-
 theorem cancel_left {g f₁ f₂ : CentroidHom α} (hg : Injective g) :
     g.comp f₁ = g.comp f₂ ↔ f₁ = f₂ :=
   ⟨fun h => ext fun a => hg <| by rw [← comp_apply, h, comp_apply], congr_arg _⟩
 #align centroid_hom.cancel_left CentroidHom.cancel_left
+-/
 
 instance : Zero (CentroidHom α) :=
   ⟨{ (0 : α →+ α) with
@@ -307,67 +337,91 @@ instance hasNpowNat : Pow (CentroidHom α) ℕ :=
 #align centroid_hom.has_npow_nat CentroidHom.hasNpowNat
 -/
 
+#print CentroidHom.coe_zero /-
 @[simp, norm_cast]
 theorem coe_zero : ⇑(0 : CentroidHom α) = 0 :=
   rfl
 #align centroid_hom.coe_zero CentroidHom.coe_zero
+-/
 
+#print CentroidHom.coe_one /-
 @[simp, norm_cast]
 theorem coe_one : ⇑(1 : CentroidHom α) = id :=
   rfl
 #align centroid_hom.coe_one CentroidHom.coe_one
+-/
 
+#print CentroidHom.coe_add /-
 @[simp, norm_cast]
 theorem coe_add (f g : CentroidHom α) : ⇑(f + g) = f + g :=
   rfl
 #align centroid_hom.coe_add CentroidHom.coe_add
+-/
 
+#print CentroidHom.coe_mul /-
 @[simp, norm_cast]
 theorem coe_mul (f g : CentroidHom α) : ⇑(f * g) = f ∘ g :=
   rfl
 #align centroid_hom.coe_mul CentroidHom.coe_mul
+-/
 
+#print CentroidHom.coe_nsmul /-
 -- Eligible for `dsimp`
 @[simp, norm_cast, nolint simp_nf]
 theorem coe_nsmul (f : CentroidHom α) (n : ℕ) : ⇑(n • f) = n • f :=
   rfl
 #align centroid_hom.coe_nsmul CentroidHom.coe_nsmul
+-/
 
+#print CentroidHom.zero_apply /-
 @[simp]
 theorem zero_apply (a : α) : (0 : CentroidHom α) a = 0 :=
   rfl
 #align centroid_hom.zero_apply CentroidHom.zero_apply
+-/
 
+#print CentroidHom.one_apply /-
 @[simp]
 theorem one_apply (a : α) : (1 : CentroidHom α) a = a :=
   rfl
 #align centroid_hom.one_apply CentroidHom.one_apply
+-/
 
+#print CentroidHom.add_apply /-
 @[simp]
 theorem add_apply (f g : CentroidHom α) (a : α) : (f + g) a = f a + g a :=
   rfl
 #align centroid_hom.add_apply CentroidHom.add_apply
+-/
 
+#print CentroidHom.mul_apply /-
 @[simp]
 theorem mul_apply (f g : CentroidHom α) (a : α) : (f * g) a = f (g a) :=
   rfl
 #align centroid_hom.mul_apply CentroidHom.mul_apply
+-/
 
+#print CentroidHom.nsmul_apply /-
 -- Eligible for `dsimp`
 @[simp, nolint simp_nf]
 theorem nsmul_apply (f : CentroidHom α) (n : ℕ) (a : α) : (n • f) a = n • f a :=
   rfl
 #align centroid_hom.nsmul_apply CentroidHom.nsmul_apply
+-/
 
+#print CentroidHom.toEnd_zero /-
 @[simp]
 theorem toEnd_zero : (0 : CentroidHom α).toEnd = 0 :=
   rfl
 #align centroid_hom.to_End_zero CentroidHom.toEnd_zero
+-/
 
+#print CentroidHom.toEnd_add /-
 @[simp]
 theorem toEnd_add (x y : CentroidHom α) : (x + y).toEnd = x.toEnd + y.toEnd :=
   rfl
 #align centroid_hom.to_End_add CentroidHom.toEnd_add
+-/
 
 #print CentroidHom.toEnd_nsmul /-
 theorem toEnd_nsmul (x : CentroidHom α) (n : ℕ) : (n • x).toEnd = n • x.toEnd :=
@@ -381,14 +435,18 @@ instance : AddCommMonoid (CentroidHom α) :=
 
 instance : NatCast (CentroidHom α) where natCast n := n • 1
 
+#print CentroidHom.coe_nat_cast /-
 @[simp, norm_cast]
 theorem coe_nat_cast (n : ℕ) : ⇑(n : CentroidHom α) = n • id :=
   rfl
 #align centroid_hom.coe_nat_cast CentroidHom.coe_nat_cast
+-/
 
+#print CentroidHom.nat_cast_apply /-
 theorem nat_cast_apply (n : ℕ) (m : α) : (n : CentroidHom α) m = n • m :=
   rfl
 #align centroid_hom.nat_cast_apply CentroidHom.nat_cast_apply
+-/
 
 #print CentroidHom.toEnd_one /-
 @[simp]
@@ -397,10 +455,12 @@ theorem toEnd_one : (1 : CentroidHom α).toEnd = 1 :=
 #align centroid_hom.to_End_one CentroidHom.toEnd_one
 -/
 
+#print CentroidHom.toEnd_mul /-
 @[simp]
 theorem toEnd_mul (x y : CentroidHom α) : (x * y).toEnd = x.toEnd * y.toEnd :=
   rfl
 #align centroid_hom.to_End_mul CentroidHom.toEnd_mul
+-/
 
 #print CentroidHom.toEnd_pow /-
 @[simp]
@@ -420,9 +480,11 @@ instance : Semiring (CentroidHom α) :=
   toEnd_injective.Semiring _ toEnd_zero toEnd_one toEnd_add toEnd_mul toEnd_nsmul toEnd_pow
     toEnd_nat_cast
 
+#print CentroidHom.comp_mul_comm /-
 theorem comp_mul_comm (T S : CentroidHom α) (a b : α) : (T ∘ S) (a * b) = (S ∘ T) (a * b) := by
   rw [comp_app, map_mul_right, map_mul_left, ← map_mul_right, ← map_mul_left]
 #align centroid_hom.comp_mul_comm CentroidHom.comp_mul_comm
+-/
 
 end NonUnitalNonAssocSemiring
 
@@ -461,56 +523,76 @@ instance hasZsmul : SMul ℤ (CentroidHom α) :=
 
 instance : IntCast (CentroidHom α) where intCast z := z • 1
 
+#print CentroidHom.coe_int_cast /-
 @[simp, norm_cast]
 theorem coe_int_cast (z : ℤ) : ⇑(z : CentroidHom α) = z • id :=
   rfl
 #align centroid_hom.coe_int_cast CentroidHom.coe_int_cast
+-/
 
+#print CentroidHom.int_cast_apply /-
 theorem int_cast_apply (z : ℤ) (m : α) : (z : CentroidHom α) m = z • m :=
   rfl
 #align centroid_hom.int_cast_apply CentroidHom.int_cast_apply
+-/
 
+#print CentroidHom.toEnd_neg /-
 @[simp]
 theorem toEnd_neg (x : CentroidHom α) : (-x).toEnd = -x.toEnd :=
   rfl
 #align centroid_hom.to_End_neg CentroidHom.toEnd_neg
+-/
 
+#print CentroidHom.toEnd_sub /-
 @[simp]
 theorem toEnd_sub (x y : CentroidHom α) : (x - y).toEnd = x.toEnd - y.toEnd :=
   rfl
 #align centroid_hom.to_End_sub CentroidHom.toEnd_sub
+-/
 
+#print CentroidHom.toEnd_zsmul /-
 theorem toEnd_zsmul (x : CentroidHom α) (n : ℤ) : (n • x).toEnd = n • x.toEnd :=
   rfl
 #align centroid_hom.to_End_zsmul CentroidHom.toEnd_zsmul
+-/
 
 instance : AddCommGroup (CentroidHom α) :=
   toEnd_injective.AddCommGroup _ toEnd_zero toEnd_add toEnd_neg toEnd_sub toEnd_nsmul toEnd_zsmul
 
+#print CentroidHom.coe_neg /-
 @[simp, norm_cast]
 theorem coe_neg (f : CentroidHom α) : ⇑(-f) = -f :=
   rfl
 #align centroid_hom.coe_neg CentroidHom.coe_neg
+-/
 
+#print CentroidHom.coe_sub /-
 @[simp, norm_cast]
 theorem coe_sub (f g : CentroidHom α) : ⇑(f - g) = f - g :=
   rfl
 #align centroid_hom.coe_sub CentroidHom.coe_sub
+-/
 
+#print CentroidHom.neg_apply /-
 @[simp]
 theorem neg_apply (f : CentroidHom α) (a : α) : (-f) a = -f a :=
   rfl
 #align centroid_hom.neg_apply CentroidHom.neg_apply
+-/
 
+#print CentroidHom.sub_apply /-
 @[simp]
 theorem sub_apply (f g : CentroidHom α) (a : α) : (f - g) a = f a - g a :=
   rfl
 #align centroid_hom.sub_apply CentroidHom.sub_apply
+-/
 
+#print CentroidHom.toEnd_int_cast /-
 @[simp, norm_cast]
 theorem toEnd_int_cast (z : ℤ) : (z : CentroidHom α).toEnd = ↑z :=
   rfl
 #align centroid_hom.to_End_int_cast CentroidHom.toEnd_int_cast
+-/
 
 instance : Ring (CentroidHom α) :=
   toEnd_injective.Ring _ toEnd_zero toEnd_one toEnd_add toEnd_mul toEnd_neg toEnd_sub toEnd_nsmul
@@ -522,6 +604,7 @@ section NonUnitalRing
 
 variable [NonUnitalRing α]
 
+#print CentroidHom.commRing /-
 -- See note [reducible non instances]
 /-- A prime associative ring has commutative centroid. -/
 @[reducible]
@@ -533,6 +616,7 @@ def commRing (h : ∀ a b : α, (∀ r : α, a * r * b = 0) → a = 0 ∨ b = 0)
       rw [mul_assoc, sub_mul, sub_eq_zero, ← map_mul_right, ← map_mul_right, coe_mul, coe_mul,
         comp_mul_comm] }
 #align centroid_hom.comm_ring CentroidHom.commRing
+-/
 
 end NonUnitalRing
 
Diff
@@ -70,7 +70,7 @@ attribute [nolint doc_blame] CentroidHom.toAddMonoidHom
 
 You should extend this class when you extend `centroid_hom`. -/
 class CentroidHomClass (F : Type _) (α : outParam <| Type _) [NonUnitalNonAssocSemiring α] extends
-  AddMonoidHomClass F α α where
+    AddMonoidHomClass F α α where
   map_mul_left (f : F) (a b : α) : f (a * b) = a * f b
   map_mul_right (f : F) (a b : α) : f (a * b) = f a * b
 #align centroid_hom_class CentroidHomClass
Diff
@@ -113,45 +113,21 @@ theorem toFun_eq_coe {f : CentroidHom α} : f.toFun = (f : α → α) :=
   rfl
 #align centroid_hom.to_fun_eq_coe CentroidHom.toFun_eq_coe
 
-/- warning: centroid_hom.ext -> CentroidHom.ext is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] {f : CentroidHom.{u1} α _inst_1} {g : CentroidHom.{u1} α _inst_1}, (forall (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f a) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) g a)) -> (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) f g)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] {f : CentroidHom.{u1} α _inst_1} {g : CentroidHom.{u1} α _inst_1}, (forall (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g a)) -> (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) f g)
-Case conversion may be inaccurate. Consider using '#align centroid_hom.ext CentroidHom.extₓ'. -/
 @[ext]
 theorem ext {f g : CentroidHom α} (h : ∀ a, f a = g a) : f = g :=
   FunLike.ext f g h
 #align centroid_hom.ext CentroidHom.ext
 
-/- warning: centroid_hom.coe_to_add_monoid_hom -> CentroidHom.coe_toAddMonoidHom is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (fun (_x : AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) => α -> α) (AddMonoidHom.hasCoeToFun.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (HasLiftT.mk.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (CoeTCₓ.coe.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHom.hasCoeT.{u1, u1, u1} α α (CentroidHom.{u1} α _inst_1) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.centroidHomClass.{u1} α _inst_1))))) f)) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoidHom.addMonoidHomClass.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))))) (AddMonoidHomClass.toAddMonoidHom.{u1, u1, u1} α α (CentroidHom.{u1} α _inst_1) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)) f)) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f)
-Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_to_add_monoid_hom CentroidHom.coe_toAddMonoidHomₓ'. -/
 @[simp, norm_cast]
 theorem coe_toAddMonoidHom (f : CentroidHom α) : ⇑(f : α →+ α) = f :=
   rfl
 #align centroid_hom.coe_to_add_monoid_hom CentroidHom.coe_toAddMonoidHom
 
-/- warning: centroid_hom.to_add_monoid_hom_eq_coe -> CentroidHom.toAddMonoidHom_eq_coe is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (CentroidHom.toAddMonoidHom.{u1} α _inst_1 f) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (HasLiftT.mk.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (CoeTCₓ.coe.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHom.hasCoeT.{u1, u1, u1} α α (CentroidHom.{u1} α _inst_1) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.centroidHomClass.{u1} α _inst_1))))) f)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (CentroidHom.toAddMonoidHom.{u1} α _inst_1 f) (AddMonoidHomClass.toAddMonoidHom.{u1, u1, u1} α α (CentroidHom.{u1} α _inst_1) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)) f)
-Case conversion may be inaccurate. Consider using '#align centroid_hom.to_add_monoid_hom_eq_coe CentroidHom.toAddMonoidHom_eq_coeₓ'. -/
 @[simp]
 theorem toAddMonoidHom_eq_coe (f : CentroidHom α) : f.toAddMonoidHom = f :=
   rfl
 #align centroid_hom.to_add_monoid_hom_eq_coe CentroidHom.toAddMonoidHom_eq_coe
 
-/- warning: centroid_hom.coe_to_add_monoid_hom_injective -> CentroidHom.coe_toAddMonoidHom_injective is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Function.Injective.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (HasLiftT.mk.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (CoeTCₓ.coe.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHom.hasCoeT.{u1, u1, u1} α α (CentroidHom.{u1} α _inst_1) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.centroidHomClass.{u1} α _inst_1))))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Function.Injective.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddMonoidHom.{u1, u1, u1} α α (CentroidHom.{u1} α _inst_1) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_to_add_monoid_hom_injective CentroidHom.coe_toAddMonoidHom_injectiveₓ'. -/
 theorem coe_toAddMonoidHom_injective : Injective (coe : CentroidHom α → α →+ α) := fun f g h =>
   ext fun a =>
     haveI := FunLike.congr_fun h a
@@ -171,12 +147,6 @@ theorem toEnd_injective : Injective (CentroidHom.toEnd : CentroidHom α → AddM
 #align centroid_hom.to_End_injective CentroidHom.toEnd_injective
 -/
 
-/- warning: centroid_hom.copy -> CentroidHom.copy is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (f' : α -> α), (Eq.{succ u1} (α -> α) f' (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f)) -> (CentroidHom.{u1} α _inst_1)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (f' : α -> α), (Eq.{succ u1} (α -> α) f' (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f)) -> (CentroidHom.{u1} α _inst_1)
-Case conversion may be inaccurate. Consider using '#align centroid_hom.copy CentroidHom.copyₓ'. -/
 /-- Copy of a `centroid_hom` with a new `to_fun` equal to the old one. Useful to fix
 definitional equalities. -/
 protected def copy (f : CentroidHom α) (f' : α → α) (h : f' = f) : CentroidHom α :=
@@ -186,23 +156,11 @@ protected def copy (f : CentroidHom α) (f' : α → α) (h : f' = f) : Centroid
     map_mul_right' := fun a b => by simp_rw [h, map_mul_right] }
 #align centroid_hom.copy CentroidHom.copy
 
-/- warning: centroid_hom.coe_copy -> CentroidHom.coe_copy is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (f' : α -> α) (h : Eq.{succ u1} (α -> α) f' (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f)), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (CentroidHom.copy.{u1} α _inst_1 f f' h)) f'
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (f' : α -> α) (h : Eq.{succ u1} (α -> α) f' (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f)), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (CentroidHom.copy.{u1} α _inst_1 f f' h)) f'
-Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_copy CentroidHom.coe_copyₓ'. -/
 @[simp]
 theorem coe_copy (f : CentroidHom α) (f' : α → α) (h : f' = f) : ⇑(f.copy f' h) = f' :=
   rfl
 #align centroid_hom.coe_copy CentroidHom.coe_copy
 
-/- warning: centroid_hom.copy_eq -> CentroidHom.copy_eq is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (f' : α -> α) (h : Eq.{succ u1} (α -> α) f' (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f)), Eq.{succ u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.copy.{u1} α _inst_1 f f' h) f
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (f' : α -> α) (h : Eq.{succ u1} (α -> α) f' (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f)), Eq.{succ u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.copy.{u1} α _inst_1 f f' h) f
-Case conversion may be inaccurate. Consider using '#align centroid_hom.copy_eq CentroidHom.copy_eqₓ'. -/
 theorem copy_eq (f : CentroidHom α) (f' : α → α) (h : f' = f) : f.copy f' h = f :=
   FunLike.ext' h
 #align centroid_hom.copy_eq CentroidHom.copy_eq
@@ -221,23 +179,11 @@ protected def id : CentroidHom α :=
 instance : Inhabited (CentroidHom α) :=
   ⟨CentroidHom.id α⟩
 
-/- warning: centroid_hom.coe_id -> CentroidHom.coe_id is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (CentroidHom.id.{u1} α _inst_1)) (id.{succ u1} α)
-but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (CentroidHom.id.{u1} α _inst_1)) (id.{succ u1} α)
-Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_id CentroidHom.coe_idₓ'. -/
 @[simp, norm_cast]
 theorem coe_id : ⇑(CentroidHom.id α) = id :=
   rfl
 #align centroid_hom.coe_id CentroidHom.coe_id
 
-/- warning: centroid_hom.coe_to_add_monoid_hom_id -> CentroidHom.toAddMonoidHom_id is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (HasLiftT.mk.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (CoeTCₓ.coe.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHom.hasCoeT.{u1, u1, u1} α α (CentroidHom.{u1} α _inst_1) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.centroidHomClass.{u1} α _inst_1))))) (CentroidHom.id.{u1} α _inst_1)) (AddMonoidHom.id.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))))
-but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddMonoidHom.{u1, u1, u1} α α (CentroidHom.{u1} α _inst_1) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)) (CentroidHom.id.{u1} α _inst_1)) (AddMonoidHom.id.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_to_add_monoid_hom_id CentroidHom.toAddMonoidHom_idₓ'. -/
 @[simp, norm_cast]
 theorem toAddMonoidHom_id : (CentroidHom.id α : α →+ α) = AddMonoidHom.id α :=
   rfl
@@ -245,12 +191,6 @@ theorem toAddMonoidHom_id : (CentroidHom.id α : α →+ α) = AddMonoidHom.id 
 
 variable {α}
 
-/- warning: centroid_hom.id_apply -> CentroidHom.id_apply is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (CentroidHom.id.{u1} α _inst_1) a) a
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (CentroidHom.id.{u1} α _inst_1) a) a
-Case conversion may be inaccurate. Consider using '#align centroid_hom.id_apply CentroidHom.id_applyₓ'. -/
 @[simp]
 theorem id_apply (a : α) : CentroidHom.id α a = a :=
   rfl
@@ -268,34 +208,16 @@ def comp (g f : CentroidHom α) : CentroidHom α :=
 #align centroid_hom.comp CentroidHom.comp
 -/
 
-/- warning: centroid_hom.coe_comp -> CentroidHom.coe_comp is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (g : CentroidHom.{u1} α _inst_1) (f : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (CentroidHom.comp.{u1} α _inst_1 g f)) (Function.comp.{succ u1, succ u1, succ u1} α α α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) g) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (g : CentroidHom.{u1} α _inst_1) (f : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (CentroidHom.comp.{u1} α _inst_1 g f)) (Function.comp.{succ u1, succ u1, succ u1} α α α (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_comp CentroidHom.coe_compₓ'. -/
 @[simp, norm_cast]
 theorem coe_comp (g f : CentroidHom α) : ⇑(g.comp f) = g ∘ f :=
   rfl
 #align centroid_hom.coe_comp CentroidHom.coe_comp
 
-/- warning: centroid_hom.comp_apply -> CentroidHom.comp_apply is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (g : CentroidHom.{u1} α _inst_1) (f : CentroidHom.{u1} α _inst_1) (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (CentroidHom.comp.{u1} α _inst_1 g f) a) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) g (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f a))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (g : CentroidHom.{u1} α _inst_1) (f : CentroidHom.{u1} α _inst_1) (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (CentroidHom.comp.{u1} α _inst_1 g f) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f a))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.comp_apply CentroidHom.comp_applyₓ'. -/
 @[simp]
 theorem comp_apply (g f : CentroidHom α) (a : α) : g.comp f a = g (f a) :=
   rfl
 #align centroid_hom.comp_apply CentroidHom.comp_apply
 
-/- warning: centroid_hom.coe_comp_add_monoid_hom -> CentroidHom.coe_comp_addMonoidHom is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (g : CentroidHom.{u1} α _inst_1) (f : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (HasLiftT.mk.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (CoeTCₓ.coe.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHom.hasCoeT.{u1, u1, u1} α α (CentroidHom.{u1} α _inst_1) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.centroidHomClass.{u1} α _inst_1))))) (CentroidHom.comp.{u1} α _inst_1 g f)) (AddMonoidHom.comp.{u1, u1, u1} α α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (HasLiftT.mk.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (CoeTCₓ.coe.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHom.hasCoeT.{u1, u1, u1} α α (CentroidHom.{u1} α _inst_1) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.centroidHomClass.{u1} α _inst_1))))) g) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (HasLiftT.mk.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (CoeTCₓ.coe.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHom.hasCoeT.{u1, u1, u1} α α (CentroidHom.{u1} α _inst_1) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.centroidHomClass.{u1} α _inst_1))))) f))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (g : CentroidHom.{u1} α _inst_1) (f : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddMonoidHom.{u1, u1, u1} α α (CentroidHom.{u1} α _inst_1) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)) (CentroidHom.comp.{u1} α _inst_1 g f)) (AddMonoidHom.comp.{u1, u1, u1} α α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoidHomClass.toAddMonoidHom.{u1, u1, u1} α α (CentroidHom.{u1} α _inst_1) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)) g) (AddMonoidHomClass.toAddMonoidHom.{u1, u1, u1} α α (CentroidHom.{u1} α _inst_1) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)) f))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_comp_add_monoid_hom CentroidHom.coe_comp_addMonoidHomₓ'. -/
 @[simp, norm_cast]
 theorem coe_comp_addMonoidHom (g f : CentroidHom α) : (g.comp f : α →+ α) = (g : α →+ α).comp f :=
   rfl
@@ -322,23 +244,11 @@ theorem id_comp (f : CentroidHom α) : (CentroidHom.id α).comp f = f :=
 #align centroid_hom.id_comp CentroidHom.id_comp
 -/
 
-/- warning: centroid_hom.cancel_right -> CentroidHom.cancel_right is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] {g₁ : CentroidHom.{u1} α _inst_1} {g₂ : CentroidHom.{u1} α _inst_1} {f : CentroidHom.{u1} α _inst_1}, (Function.Surjective.{succ u1, succ u1} α α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f)) -> (Iff (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.comp.{u1} α _inst_1 g₁ f) (CentroidHom.comp.{u1} α _inst_1 g₂ f)) (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) g₁ g₂))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] {g₁ : CentroidHom.{u1} α _inst_1} {g₂ : CentroidHom.{u1} α _inst_1} {f : CentroidHom.{u1} α _inst_1}, (Function.Surjective.{succ u1, succ u1} α α (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f)) -> (Iff (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.comp.{u1} α _inst_1 g₁ f) (CentroidHom.comp.{u1} α _inst_1 g₂ f)) (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) g₁ g₂))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.cancel_right CentroidHom.cancel_rightₓ'. -/
 theorem cancel_right {g₁ g₂ f : CentroidHom α} (hf : Surjective f) :
     g₁.comp f = g₂.comp f ↔ g₁ = g₂ :=
   ⟨fun h => ext <| hf.forall.2 <| FunLike.ext_iff.1 h, congr_arg _⟩
 #align centroid_hom.cancel_right CentroidHom.cancel_right
 
-/- warning: centroid_hom.cancel_left -> CentroidHom.cancel_left is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] {g : CentroidHom.{u1} α _inst_1} {f₁ : CentroidHom.{u1} α _inst_1} {f₂ : CentroidHom.{u1} α _inst_1}, (Function.Injective.{succ u1, succ u1} α α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) g)) -> (Iff (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.comp.{u1} α _inst_1 g f₁) (CentroidHom.comp.{u1} α _inst_1 g f₂)) (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) f₁ f₂))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] {g : CentroidHom.{u1} α _inst_1} {f₁ : CentroidHom.{u1} α _inst_1} {f₂ : CentroidHom.{u1} α _inst_1}, (Function.Injective.{succ u1, succ u1} α α (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g)) -> (Iff (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.comp.{u1} α _inst_1 g f₁) (CentroidHom.comp.{u1} α _inst_1 g f₂)) (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) f₁ f₂))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.cancel_left CentroidHom.cancel_leftₓ'. -/
 theorem cancel_left {g f₁ f₂ : CentroidHom α} (hg : Injective g) :
     g.comp f₁ = g.comp f₂ ↔ f₁ = f₂ :=
   ⟨fun h => ext fun a => hg <| by rw [← comp_apply, h, comp_apply], congr_arg _⟩
@@ -397,135 +307,63 @@ instance hasNpowNat : Pow (CentroidHom α) ℕ :=
 #align centroid_hom.has_npow_nat CentroidHom.hasNpowNat
 -/
 
-/- warning: centroid_hom.coe_zero -> CentroidHom.coe_zero is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 0 (OfNat.mk.{u1} (CentroidHom.{u1} α _inst_1) 0 (Zero.zero.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasZero.{u1} α _inst_1))))) (OfNat.ofNat.{u1} (α -> α) 0 (OfNat.mk.{u1} (α -> α) 0 (Zero.zero.{u1} (α -> α) (Pi.instZero.{u1, u1} α (fun (ᾰ : α) => α) (fun (i : α) => MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α _inst_1))))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 0 (Zero.toOfNat0.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instZeroCentroidHom.{u1} α _inst_1)))) (OfNat.ofNat.{u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) 0 (Zero.toOfNat0.{u1} (forall (a : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (Pi.instZero.{u1, u1} α (fun (a : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (fun (i : α) => MulZeroClass.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_zero CentroidHom.coe_zeroₓ'. -/
 @[simp, norm_cast]
 theorem coe_zero : ⇑(0 : CentroidHom α) = 0 :=
   rfl
 #align centroid_hom.coe_zero CentroidHom.coe_zero
 
-/- warning: centroid_hom.coe_one -> CentroidHom.coe_one is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 1 (OfNat.mk.{u1} (CentroidHom.{u1} α _inst_1) 1 (One.one.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasOne.{u1} α _inst_1))))) (id.{succ u1} α)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 1 (One.toOfNat1.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instOneCentroidHom.{u1} α _inst_1)))) (id.{succ u1} α)
-Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_one CentroidHom.coe_oneₓ'. -/
 @[simp, norm_cast]
 theorem coe_one : ⇑(1 : CentroidHom α) = id :=
   rfl
 #align centroid_hom.coe_one CentroidHom.coe_one
 
-/- warning: centroid_hom.coe_add -> CentroidHom.coe_add is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (HAdd.hAdd.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHAdd.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasAdd.{u1} α _inst_1)) f g)) (HAdd.hAdd.{u1, u1, u1} (α -> α) (α -> α) (α -> α) (instHAdd.{u1} (α -> α) (Pi.instAdd.{u1, u1} α (fun (ᾰ : α) => α) (fun (i : α) => Distrib.toHasAdd.{u1} α (NonUnitalNonAssocSemiring.toDistrib.{u1} α _inst_1)))) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) g))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HAdd.hAdd.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHAdd.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instAddCentroidHom.{u1} α _inst_1)) f g)) (HAdd.hAdd.{u1, u1, u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (instHAdd.{u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (Pi.instAdd.{u1, u1} α (fun (ᾰ : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (fun (i : α) => Distrib.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (NonUnitalNonAssocSemiring.toDistrib.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) _inst_1)))) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_add CentroidHom.coe_addₓ'. -/
 @[simp, norm_cast]
 theorem coe_add (f g : CentroidHom α) : ⇑(f + g) = f + g :=
   rfl
 #align centroid_hom.coe_add CentroidHom.coe_add
 
-/- warning: centroid_hom.coe_mul -> CentroidHom.coe_mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (HMul.hMul.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHMul.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasMul.{u1} α _inst_1)) f g)) (Function.comp.{succ u1, succ u1, succ u1} α α α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) g))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HMul.hMul.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHMul.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instMulCentroidHom.{u1} α _inst_1)) f g)) (Function.comp.{succ u1, succ u1, succ u1} α α α (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_mul CentroidHom.coe_mulₓ'. -/
 @[simp, norm_cast]
 theorem coe_mul (f g : CentroidHom α) : ⇑(f * g) = f ∘ g :=
   rfl
 #align centroid_hom.coe_mul CentroidHom.coe_mul
 
-/- warning: centroid_hom.coe_nsmul -> CentroidHom.coe_nsmul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (n : Nat), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (SMul.smul.{0, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.hasNsmul.{u1} α _inst_1) n f)) (SMul.smul.{0, u1} Nat (α -> α) (Pi.instSMul.{u1, u1, 0} α Nat (fun (ᾰ : α) => α) (fun (i : α) => AddMonoid.SMul.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) n (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (n : Nat), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HSMul.hSMul.{0, u1, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHSMul.{0, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.hasNsmul.{u1} α _inst_1)) n f)) (HSMul.hSMul.{0, u1, u1} Nat (forall (a : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (instHSMul.{0, u1} Nat (forall (a : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (Pi.instSMul.{u1, u1, 0} α Nat (fun (a : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (fun (i : α) => AddMonoid.SMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) _inst_1))))) n (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_nsmul CentroidHom.coe_nsmulₓ'. -/
 -- Eligible for `dsimp`
 @[simp, norm_cast, nolint simp_nf]
 theorem coe_nsmul (f : CentroidHom α) (n : ℕ) : ⇑(n • f) = n • f :=
   rfl
 #align centroid_hom.coe_nsmul CentroidHom.coe_nsmul
 
-/- warning: centroid_hom.zero_apply -> CentroidHom.zero_apply is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 0 (OfNat.mk.{u1} (CentroidHom.{u1} α _inst_1) 0 (Zero.zero.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasZero.{u1} α _inst_1)))) a) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α _inst_1)))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 0 (Zero.toOfNat0.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instZeroCentroidHom.{u1} α _inst_1))) a) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (MulZeroClass.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) _inst_1))))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.zero_apply CentroidHom.zero_applyₓ'. -/
 @[simp]
 theorem zero_apply (a : α) : (0 : CentroidHom α) a = 0 :=
   rfl
 #align centroid_hom.zero_apply CentroidHom.zero_apply
 
-/- warning: centroid_hom.one_apply -> CentroidHom.one_apply is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 1 (OfNat.mk.{u1} (CentroidHom.{u1} α _inst_1) 1 (One.one.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasOne.{u1} α _inst_1)))) a) a
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 1 (One.toOfNat1.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instOneCentroidHom.{u1} α _inst_1))) a) a
-Case conversion may be inaccurate. Consider using '#align centroid_hom.one_apply CentroidHom.one_applyₓ'. -/
 @[simp]
 theorem one_apply (a : α) : (1 : CentroidHom α) a = a :=
   rfl
 #align centroid_hom.one_apply CentroidHom.one_apply
 
-/- warning: centroid_hom.add_apply -> CentroidHom.add_apply is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1) (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (HAdd.hAdd.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHAdd.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasAdd.{u1} α _inst_1)) f g) a) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (Distrib.toHasAdd.{u1} α (NonUnitalNonAssocSemiring.toDistrib.{u1} α _inst_1))) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f a) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) g a))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1) (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HAdd.hAdd.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHAdd.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instAddCentroidHom.{u1} α _inst_1)) f g) a) (HAdd.hAdd.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (instHAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (Distrib.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (NonUnitalNonAssocSemiring.toDistrib.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g a))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.add_apply CentroidHom.add_applyₓ'. -/
 @[simp]
 theorem add_apply (f g : CentroidHom α) (a : α) : (f + g) a = f a + g a :=
   rfl
 #align centroid_hom.add_apply CentroidHom.add_apply
 
-/- warning: centroid_hom.mul_apply -> CentroidHom.mul_apply is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1) (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (HMul.hMul.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHMul.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasMul.{u1} α _inst_1)) f g) a) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) g a))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1) (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HMul.hMul.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHMul.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instMulCentroidHom.{u1} α _inst_1)) f g) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g a))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.mul_apply CentroidHom.mul_applyₓ'. -/
 @[simp]
 theorem mul_apply (f g : CentroidHom α) (a : α) : (f * g) a = f (g a) :=
   rfl
 #align centroid_hom.mul_apply CentroidHom.mul_apply
 
-/- warning: centroid_hom.nsmul_apply -> CentroidHom.nsmul_apply is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (n : Nat) (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (SMul.smul.{0, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.hasNsmul.{u1} α _inst_1) n f) a) (SMul.smul.{0, u1} Nat α (AddMonoid.SMul.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) n (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f a))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (n : Nat) (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HSMul.hSMul.{0, u1, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHSMul.{0, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.hasNsmul.{u1} α _inst_1)) n f) a) (HSMul.hSMul.{0, u1, u1} Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (instHSMul.{0, u1} Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (AddMonoid.SMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) _inst_1)))) n (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f a))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.nsmul_apply CentroidHom.nsmul_applyₓ'. -/
 -- Eligible for `dsimp`
 @[simp, nolint simp_nf]
 theorem nsmul_apply (f : CentroidHom α) (n : ℕ) (a : α) : (n • f) a = n • f a :=
   rfl
 #align centroid_hom.nsmul_apply CentroidHom.nsmul_apply
 
-/- warning: centroid_hom.to_End_zero -> CentroidHom.toEnd_zero is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (CentroidHom.toEnd.{u1} α _inst_1 (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 0 (OfNat.mk.{u1} (CentroidHom.{u1} α _inst_1) 0 (Zero.zero.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasZero.{u1} α _inst_1))))) (OfNat.ofNat.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) 0 (OfNat.mk.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) 0 (Zero.zero.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (MulZeroClass.toHasZero.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoid.End.semiring.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))))))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (CentroidHom.toEnd.{u1} α _inst_1 (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 0 (Zero.toOfNat0.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instZeroCentroidHom.{u1} α _inst_1)))) (OfNat.ofNat.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) 0 (Zero.toOfNat0.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (MonoidWithZero.toZero.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (Semiring.toMonoidWithZero.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoid.End.semiring.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))))))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.to_End_zero CentroidHom.toEnd_zeroₓ'. -/
 @[simp]
 theorem toEnd_zero : (0 : CentroidHom α).toEnd = 0 :=
   rfl
 #align centroid_hom.to_End_zero CentroidHom.toEnd_zero
 
-/- warning: centroid_hom.to_End_add -> CentroidHom.toEnd_add is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (x : CentroidHom.{u1} α _inst_1) (y : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (CentroidHom.toEnd.{u1} α _inst_1 (HAdd.hAdd.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHAdd.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasAdd.{u1} α _inst_1)) x y)) (HAdd.hAdd.{u1, u1, u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (instHAdd.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (Distrib.toHasAdd.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (NonUnitalNonAssocSemiring.toDistrib.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoid.End.semiring.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))))))) (CentroidHom.toEnd.{u1} α _inst_1 x) (CentroidHom.toEnd.{u1} α _inst_1 y))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (x : CentroidHom.{u1} α _inst_1) (y : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (CentroidHom.toEnd.{u1} α _inst_1 (HAdd.hAdd.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHAdd.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instAddCentroidHom.{u1} α _inst_1)) x y)) (HAdd.hAdd.{u1, u1, u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (instHAdd.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (Distrib.toAdd.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (NonUnitalNonAssocSemiring.toDistrib.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoid.End.semiring.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))))))) (CentroidHom.toEnd.{u1} α _inst_1 x) (CentroidHom.toEnd.{u1} α _inst_1 y))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.to_End_add CentroidHom.toEnd_addₓ'. -/
 @[simp]
 theorem toEnd_add (x y : CentroidHom α) : (x + y).toEnd = x.toEnd + y.toEnd :=
   rfl
@@ -543,23 +381,11 @@ instance : AddCommMonoid (CentroidHom α) :=
 
 instance : NatCast (CentroidHom α) where natCast n := n • 1
 
-/- warning: centroid_hom.coe_nat_cast -> CentroidHom.coe_nat_cast is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (n : Nat), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat (CentroidHom.{u1} α _inst_1) (HasLiftT.mk.{1, succ u1} Nat (CentroidHom.{u1} α _inst_1) (CoeTCₓ.coe.{1, succ u1} Nat (CentroidHom.{u1} α _inst_1) (Nat.castCoe.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasNatCast.{u1} α _inst_1)))) n)) (SMul.smul.{0, u1} Nat (α -> α) (Pi.instSMul.{u1, u1, 0} α Nat (fun (ᾰ : α) => α) (fun (i : α) => AddMonoid.SMul.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) n (id.{succ u1} α))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (n : Nat), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (Nat.cast.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instNatCastCentroidHom.{u1} α _inst_1) n)) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (a : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HSMul.hSMul.{0, u1, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHSMul.{0, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.hasNsmul.{u1} α _inst_1)) n (CentroidHom.id.{u1} α _inst_1)))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_nat_cast CentroidHom.coe_nat_castₓ'. -/
 @[simp, norm_cast]
 theorem coe_nat_cast (n : ℕ) : ⇑(n : CentroidHom α) = n • id :=
   rfl
 #align centroid_hom.coe_nat_cast CentroidHom.coe_nat_cast
 
-/- warning: centroid_hom.nat_cast_apply -> CentroidHom.nat_cast_apply is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (n : Nat) (m : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat (CentroidHom.{u1} α _inst_1) (HasLiftT.mk.{1, succ u1} Nat (CentroidHom.{u1} α _inst_1) (CoeTCₓ.coe.{1, succ u1} Nat (CentroidHom.{u1} α _inst_1) (Nat.castCoe.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasNatCast.{u1} α _inst_1)))) n) m) (SMul.smul.{0, u1} Nat α (AddMonoid.SMul.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) n m)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (n : Nat) (m : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) m) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (Nat.cast.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instNatCastCentroidHom.{u1} α _inst_1) n) m) (HSMul.hSMul.{0, u1, u1} Nat α α (instHSMul.{0, u1} Nat α (AddMonoid.SMul.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) n m)
-Case conversion may be inaccurate. Consider using '#align centroid_hom.nat_cast_apply CentroidHom.nat_cast_applyₓ'. -/
 theorem nat_cast_apply (n : ℕ) (m : α) : (n : CentroidHom α) m = n • m :=
   rfl
 #align centroid_hom.nat_cast_apply CentroidHom.nat_cast_apply
@@ -571,12 +397,6 @@ theorem toEnd_one : (1 : CentroidHom α).toEnd = 1 :=
 #align centroid_hom.to_End_one CentroidHom.toEnd_one
 -/
 
-/- warning: centroid_hom.to_End_mul -> CentroidHom.toEnd_mul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (x : CentroidHom.{u1} α _inst_1) (y : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (CentroidHom.toEnd.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHMul.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasMul.{u1} α _inst_1)) x y)) (HMul.hMul.{u1, u1, u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (instHMul.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (Distrib.toHasMul.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (NonUnitalNonAssocSemiring.toDistrib.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoid.End.semiring.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))))))) (CentroidHom.toEnd.{u1} α _inst_1 x) (CentroidHom.toEnd.{u1} α _inst_1 y))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (x : CentroidHom.{u1} α _inst_1) (y : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (CentroidHom.toEnd.{u1} α _inst_1 (HMul.hMul.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHMul.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instMulCentroidHom.{u1} α _inst_1)) x y)) (HMul.hMul.{u1, u1, u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (instHMul.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoid.End.semiring.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))))) (CentroidHom.toEnd.{u1} α _inst_1 x) (CentroidHom.toEnd.{u1} α _inst_1 y))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.to_End_mul CentroidHom.toEnd_mulₓ'. -/
 @[simp]
 theorem toEnd_mul (x y : CentroidHom α) : (x * y).toEnd = x.toEnd * y.toEnd :=
   rfl
@@ -600,12 +420,6 @@ instance : Semiring (CentroidHom α) :=
   toEnd_injective.Semiring _ toEnd_zero toEnd_one toEnd_add toEnd_mul toEnd_nsmul toEnd_pow
     toEnd_nat_cast
 
-/- warning: centroid_hom.comp_mul_comm -> CentroidHom.comp_mul_comm is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (T : CentroidHom.{u1} α _inst_1) (S : CentroidHom.{u1} α _inst_1) (a : α) (b : α), Eq.{succ u1} α (Function.comp.{succ u1, succ u1, succ u1} α α α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) T) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) S) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (Distrib.toHasMul.{u1} α (NonUnitalNonAssocSemiring.toDistrib.{u1} α _inst_1))) a b)) (Function.comp.{succ u1, succ u1, succ u1} α α α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) S) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) T) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (Distrib.toHasMul.{u1} α (NonUnitalNonAssocSemiring.toDistrib.{u1} α _inst_1))) a b))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (T : CentroidHom.{u1} α _inst_1) (S : CentroidHom.{u1} α _inst_1) (a : α) (b : α), Eq.{succ u1} α (Function.comp.{succ u1, succ u1, succ u1} α α α (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) T) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) S) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (NonUnitalNonAssocSemiring.toMul.{u1} α _inst_1)) a b)) (Function.comp.{succ u1, succ u1, succ u1} α α α (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) S) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) T) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (NonUnitalNonAssocSemiring.toMul.{u1} α _inst_1)) a b))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.comp_mul_comm CentroidHom.comp_mul_commₓ'. -/
 theorem comp_mul_comm (T S : CentroidHom α) (a b : α) : (T ∘ S) (a * b) = (S ∘ T) (a * b) := by
   rw [comp_app, map_mul_right, map_mul_left, ← map_mul_right, ← map_mul_left]
 #align centroid_hom.comp_mul_comm CentroidHom.comp_mul_comm
@@ -647,55 +461,25 @@ instance hasZsmul : SMul ℤ (CentroidHom α) :=
 
 instance : IntCast (CentroidHom α) where intCast z := z • 1
 
-/- warning: centroid_hom.coe_int_cast -> CentroidHom.coe_int_cast is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (z : Int), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (HasLiftT.mk.{1, succ u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CoeTCₓ.coe.{1, succ u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (Int.castCoe.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasIntCast.{u1} α _inst_1)))) z)) (SMul.smul.{0, u1} Int (α -> α) (Pi.instSMul.{u1, u1, 0} α Int (fun (ᾰ : α) => α) (fun (i : α) => SubNegMonoid.SMulInt.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))))) z (id.{succ u1} α))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (z : Int), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Int.cast.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instIntCastCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1) z)) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (a : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (HSMul.hSMul.{0, u1, u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSMul.{0, u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasZsmul.{u1} α _inst_1)) z (CentroidHom.id.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_int_cast CentroidHom.coe_int_castₓ'. -/
 @[simp, norm_cast]
 theorem coe_int_cast (z : ℤ) : ⇑(z : CentroidHom α) = z • id :=
   rfl
 #align centroid_hom.coe_int_cast CentroidHom.coe_int_cast
 
-/- warning: centroid_hom.int_cast_apply -> CentroidHom.int_cast_apply is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (z : Int) (m : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (HasLiftT.mk.{1, succ u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CoeTCₓ.coe.{1, succ u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (Int.castCoe.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasIntCast.{u1} α _inst_1)))) z) m) (SMul.smul.{0, u1} Int α (SubNegMonoid.SMulInt.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1)))) z m)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (z : Int) (m : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) m) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Int.cast.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instIntCastCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1) z) m) (HSMul.hSMul.{0, u1, u1} Int α α (instHSMul.{0, u1} Int α (SubNegMonoid.SMulInt.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))))) z m)
-Case conversion may be inaccurate. Consider using '#align centroid_hom.int_cast_apply CentroidHom.int_cast_applyₓ'. -/
 theorem int_cast_apply (z : ℤ) (m : α) : (z : CentroidHom α) m = z • m :=
   rfl
 #align centroid_hom.int_cast_apply CentroidHom.int_cast_apply
 
-/- warning: centroid_hom.to_End_neg -> CentroidHom.toEnd_neg is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (Neg.neg.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasNeg.{u1} α _inst_1) x)) (Neg.neg.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (SubNegMonoid.toHasNeg.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroup.toSubNegMonoid.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroupWithOne.toAddGroup.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toAddCommGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.ring.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) x))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (Neg.neg.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instNegCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1) x)) (Neg.neg.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toNeg.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (instRingEndToAddZeroClassToAddMonoidToSubNegMonoidToAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) x))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.to_End_neg CentroidHom.toEnd_negₓ'. -/
 @[simp]
 theorem toEnd_neg (x : CentroidHom α) : (-x).toEnd = -x.toEnd :=
   rfl
 #align centroid_hom.to_End_neg CentroidHom.toEnd_neg
 
-/- warning: centroid_hom.to_End_sub -> CentroidHom.toEnd_sub is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (y : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (HSub.hSub.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSub.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasSub.{u1} α _inst_1)) x y)) (HSub.hSub.{u1, u1, u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (instHSub.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (SubNegMonoid.toHasSub.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroup.toSubNegMonoid.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroupWithOne.toAddGroup.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toAddCommGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.ring.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1)))))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) x) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) y))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (y : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (HSub.hSub.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSub.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instSubCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1)) x y)) (HSub.hSub.{u1, u1, u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (instHSub.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toSub.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (instRingEndToAddZeroClassToAddMonoidToSubNegMonoidToAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1)))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) x) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) y))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.to_End_sub CentroidHom.toEnd_subₓ'. -/
 @[simp]
 theorem toEnd_sub (x y : CentroidHom α) : (x - y).toEnd = x.toEnd - y.toEnd :=
   rfl
 #align centroid_hom.to_End_sub CentroidHom.toEnd_sub
 
-/- warning: centroid_hom.to_End_zsmul -> CentroidHom.toEnd_zsmul is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (n : Int), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (SMul.smul.{0, u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasZsmul.{u1} α _inst_1) n x)) (SMul.smul.{0, u1} Int (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (SubNegMonoid.SMulInt.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroup.toSubNegMonoid.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroupWithOne.toAddGroup.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toAddCommGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.ring.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))))))) n (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) x))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (n : Int), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (HSMul.hSMul.{0, u1, u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSMul.{0, u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasZsmul.{u1} α _inst_1)) n x)) (HSMul.hSMul.{0, u1, u1} Int (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (instHSMul.{0, u1} Int (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (SubNegMonoid.SMulInt.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroup.toSubNegMonoid.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroupWithOne.toAddGroup.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toAddGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (instRingEndToAddZeroClassToAddMonoidToSubNegMonoidToAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))))))) n (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) x))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.to_End_zsmul CentroidHom.toEnd_zsmulₓ'. -/
 theorem toEnd_zsmul (x : CentroidHom α) (n : ℤ) : (n • x).toEnd = n • x.toEnd :=
   rfl
 #align centroid_hom.to_End_zsmul CentroidHom.toEnd_zsmul
@@ -703,56 +487,26 @@ theorem toEnd_zsmul (x : CentroidHom α) (n : ℤ) : (n • x).toEnd = n • x.t
 instance : AddCommGroup (CentroidHom α) :=
   toEnd_injective.AddCommGroup _ toEnd_zero toEnd_add toEnd_neg toEnd_sub toEnd_nsmul toEnd_zsmul
 
-/- warning: centroid_hom.coe_neg -> CentroidHom.coe_neg is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (Neg.neg.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasNeg.{u1} α _inst_1) f)) (Neg.neg.{u1} (α -> α) (Pi.instNeg.{u1, u1} α (fun (ᾰ : α) => α) (fun (i : α) => SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))))) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) f))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Neg.neg.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instNegCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1) f)) (Neg.neg.{u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (Pi.instNeg.{u1, u1} α (fun (ᾰ : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (fun (i : α) => NegZeroClass.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (NonUnitalNonAssocRing.toAddCommGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) _inst_1))))))) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) f))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_neg CentroidHom.coe_negₓ'. -/
 @[simp, norm_cast]
 theorem coe_neg (f : CentroidHom α) : ⇑(-f) = -f :=
   rfl
 #align centroid_hom.coe_neg CentroidHom.coe_neg
 
-/- warning: centroid_hom.coe_sub -> CentroidHom.coe_sub is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (g : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (HSub.hSub.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSub.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasSub.{u1} α _inst_1)) f g)) (HSub.hSub.{u1, u1, u1} (α -> α) (α -> α) (α -> α) (instHSub.{u1} (α -> α) (Pi.instSub.{u1, u1} α (fun (ᾰ : α) => α) (fun (i : α) => SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1)))))) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) f) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) g))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (g : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (HSub.hSub.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSub.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instSubCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1)) f g)) (HSub.hSub.{u1, u1, u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (instHSub.{u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (Pi.instSub.{u1, u1} α (fun (ᾰ : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (fun (i : α) => SubNegMonoid.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (AddGroup.toSubNegMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (AddCommGroup.toAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (NonUnitalNonAssocRing.toAddCommGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) _inst_1)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) f) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) g))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_sub CentroidHom.coe_subₓ'. -/
 @[simp, norm_cast]
 theorem coe_sub (f g : CentroidHom α) : ⇑(f - g) = f - g :=
   rfl
 #align centroid_hom.coe_sub CentroidHom.coe_sub
 
-/- warning: centroid_hom.neg_apply -> CentroidHom.neg_apply is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (Neg.neg.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasNeg.{u1} α _inst_1) f) a) (Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1)))) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) f a))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Neg.neg.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instNegCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1) f) a) (Neg.neg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (NegZeroClass.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (NonUnitalNonAssocRing.toAddCommGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) _inst_1)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) f a))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.neg_apply CentroidHom.neg_applyₓ'. -/
 @[simp]
 theorem neg_apply (f : CentroidHom α) (a : α) : (-f) a = -f a :=
   rfl
 #align centroid_hom.neg_apply CentroidHom.neg_apply
 
-/- warning: centroid_hom.sub_apply -> CentroidHom.sub_apply is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (g : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (HSub.hSub.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSub.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasSub.{u1} α _inst_1)) f g) a) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))))) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) f a) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) g a))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (g : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (HSub.hSub.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSub.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instSubCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1)) f g) a) (HSub.hSub.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (instHSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (SubNegMonoid.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (AddGroup.toSubNegMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (AddCommGroup.toAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (NonUnitalNonAssocRing.toAddCommGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) _inst_1))))) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) f a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) g a))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.sub_apply CentroidHom.sub_applyₓ'. -/
 @[simp]
 theorem sub_apply (f g : CentroidHom α) (a : α) : (f - g) a = f a - g a :=
   rfl
 #align centroid_hom.sub_apply CentroidHom.sub_apply
 
-/- warning: centroid_hom.to_End_int_cast -> CentroidHom.toEnd_int_cast is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (z : Int), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (HasLiftT.mk.{1, succ u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CoeTCₓ.coe.{1, succ u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (Int.castCoe.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasIntCast.{u1} α _inst_1)))) z)) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (HasLiftT.mk.{1, succ u1} Int (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CoeTCₓ.coe.{1, succ u1} Int (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Int.castCoe.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroupWithOne.toHasIntCast.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toAddCommGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.ring.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1)))))))) z)
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (z : Int), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (Int.cast.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instIntCastCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1) z)) (Int.cast.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toIntCast.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (instRingEndToAddZeroClassToAddMonoidToSubNegMonoidToAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))) z)
-Case conversion may be inaccurate. Consider using '#align centroid_hom.to_End_int_cast CentroidHom.toEnd_int_castₓ'. -/
 @[simp, norm_cast]
 theorem toEnd_int_cast (z : ℤ) : (z : CentroidHom α).toEnd = ↑z :=
   rfl
@@ -768,12 +522,6 @@ section NonUnitalRing
 
 variable [NonUnitalRing α]
 
-/- warning: centroid_hom.comm_ring -> CentroidHom.commRing is a dubious translation:
-lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} α], (forall (a : α) (b : α), (forall (r : α), Eq.{succ u1} α (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (Distrib.toHasMul.{u1} α (NonUnitalNonAssocSemiring.toDistrib.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonUnitalRing.toNonUnitalNonAssocRing.{u1} α _inst_1))))) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (Distrib.toHasMul.{u1} α (NonUnitalNonAssocSemiring.toDistrib.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonUnitalRing.toNonUnitalNonAssocRing.{u1} α _inst_1))))) a r) b) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonUnitalRing.toNonUnitalNonAssocRing.{u1} α _inst_1)))))))) -> (Or (Eq.{succ u1} α a (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonUnitalRing.toNonUnitalNonAssocRing.{u1} α _inst_1)))))))) (Eq.{succ u1} α b (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonUnitalRing.toNonUnitalNonAssocRing.{u1} α _inst_1)))))))))) -> (CommRing.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonUnitalRing.toNonUnitalNonAssocRing.{u1} α _inst_1))))
-but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalRing.{u1} α], (forall (a : α) (b : α), (forall (r : α), Eq.{succ u1} α (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (NonUnitalNonAssocRing.toMul.{u1} α (NonUnitalRing.toNonUnitalNonAssocRing.{u1} α _inst_1))) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (NonUnitalNonAssocRing.toMul.{u1} α (NonUnitalRing.toNonUnitalNonAssocRing.{u1} α _inst_1))) a r) b) (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (SemigroupWithZero.toZero.{u1} α (NonUnitalSemiring.toSemigroupWithZero.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α _inst_1)))))) -> (Or (Eq.{succ u1} α a (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (SemigroupWithZero.toZero.{u1} α (NonUnitalSemiring.toSemigroupWithZero.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α _inst_1)))))) (Eq.{succ u1} α b (OfNat.ofNat.{u1} α 0 (Zero.toOfNat0.{u1} α (SemigroupWithZero.toZero.{u1} α (NonUnitalSemiring.toSemigroupWithZero.{u1} α (NonUnitalRing.toNonUnitalSemiring.{u1} α _inst_1)))))))) -> (CommRing.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α (NonUnitalRing.toNonUnitalNonAssocRing.{u1} α _inst_1))))
-Case conversion may be inaccurate. Consider using '#align centroid_hom.comm_ring CentroidHom.commRingₓ'. -/
 -- See note [reducible non instances]
 /-- A prime associative ring has commutative centroid. -/
 @[reducible]
Diff
@@ -97,10 +97,7 @@ variable [NonUnitalNonAssocSemiring α]
 instance : CentroidHomClass (CentroidHom α) α
     where
   coe f := f.toFun
-  coe_injective' f g h := by
-    cases f
-    cases g
-    congr
+  coe_injective' f g h := by cases f; cases g; congr
   map_zero f := f.map_zero'
   map_add f := f.map_add'
   map_mul_left f := f.map_mul_left'
@@ -373,11 +370,9 @@ instance hasNsmul : SMul ℕ (CentroidHom α) :=
       (n • f :
         α →+
           α) with
-      map_mul_left' := fun a b => by
-        change n • f (a * b) = a * n • f b
+      map_mul_left' := fun a b => by change n • f (a * b) = a * n • f b;
         rw [map_mul_left f, ← mul_smul_comm]
-      map_mul_right' := fun a b => by
-        change n • f (a * b) = n • f a * b
+      map_mul_right' := fun a b => by change n • f (a * b) = n • f a * b;
         rw [map_mul_right f, ← smul_mul_assoc] }⟩
 #align centroid_hom.has_nsmul CentroidHom.hasNsmul
 -/
@@ -589,10 +584,7 @@ theorem toEnd_mul (x y : CentroidHom α) : (x * y).toEnd = x.toEnd * y.toEnd :=
 
 #print CentroidHom.toEnd_pow /-
 @[simp]
-theorem toEnd_pow (x : CentroidHom α) (n : ℕ) : (x ^ n).toEnd = x.toEnd ^ n :=
-  by
-  ext
-  rfl
+theorem toEnd_pow (x : CentroidHom α) (n : ℕ) : (x ^ n).toEnd = x.toEnd ^ n := by ext; rfl
 #align centroid_hom.to_End_pow CentroidHom.toEnd_pow
 -/
 
@@ -646,11 +638,9 @@ instance hasZsmul : SMul ℤ (CentroidHom α) :=
       (n • f :
         α →+
           α) with
-      map_mul_left' := fun a b => by
-        change n • f (a * b) = a * n • f b
+      map_mul_left' := fun a b => by change n • f (a * b) = a * n • f b;
         rw [map_mul_left f, ← mul_smul_comm]
-      map_mul_right' := fun a b => by
-        change n • f (a * b) = n • f a * b
+      map_mul_right' := fun a b => by change n • f (a * b) = n • f a * b;
         rw [map_mul_right f, ← smul_mul_assoc] }⟩
 #align centroid_hom.has_zsmul CentroidHom.hasZsmul
 -/
Diff
@@ -680,7 +680,7 @@ theorem int_cast_apply (z : ℤ) (m : α) : (z : CentroidHom α) m = z • m :=
 
 /- warning: centroid_hom.to_End_neg -> CentroidHom.toEnd_neg is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (Neg.neg.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasNeg.{u1} α _inst_1) x)) (Neg.neg.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (SubNegMonoid.toHasNeg.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroup.toSubNegMonoid.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroupWithOne.toAddGroup.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (NonAssocRing.toAddGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toNonAssocRing.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.ring.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) x))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (Neg.neg.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasNeg.{u1} α _inst_1) x)) (Neg.neg.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (SubNegMonoid.toHasNeg.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroup.toSubNegMonoid.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroupWithOne.toAddGroup.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toAddCommGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.ring.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) x))
 but is expected to have type
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (Neg.neg.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instNegCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1) x)) (Neg.neg.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toNeg.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (instRingEndToAddZeroClassToAddMonoidToSubNegMonoidToAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) x))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.to_End_neg CentroidHom.toEnd_negₓ'. -/
@@ -691,7 +691,7 @@ theorem toEnd_neg (x : CentroidHom α) : (-x).toEnd = -x.toEnd :=
 
 /- warning: centroid_hom.to_End_sub -> CentroidHom.toEnd_sub is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (y : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (HSub.hSub.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSub.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasSub.{u1} α _inst_1)) x y)) (HSub.hSub.{u1, u1, u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (instHSub.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (SubNegMonoid.toHasSub.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroup.toSubNegMonoid.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroupWithOne.toAddGroup.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (NonAssocRing.toAddGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toNonAssocRing.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.ring.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1)))))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) x) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) y))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (y : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (HSub.hSub.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSub.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasSub.{u1} α _inst_1)) x y)) (HSub.hSub.{u1, u1, u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (instHSub.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (SubNegMonoid.toHasSub.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroup.toSubNegMonoid.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroupWithOne.toAddGroup.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toAddCommGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.ring.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1)))))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) x) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) y))
 but is expected to have type
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (y : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (HSub.hSub.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSub.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instSubCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1)) x y)) (HSub.hSub.{u1, u1, u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (instHSub.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toSub.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (instRingEndToAddZeroClassToAddMonoidToSubNegMonoidToAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1)))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) x) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) y))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.to_End_sub CentroidHom.toEnd_subₓ'. -/
@@ -702,7 +702,7 @@ theorem toEnd_sub (x y : CentroidHom α) : (x - y).toEnd = x.toEnd - y.toEnd :=
 
 /- warning: centroid_hom.to_End_zsmul -> CentroidHom.toEnd_zsmul is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (n : Int), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (SMul.smul.{0, u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasZsmul.{u1} α _inst_1) n x)) (SMul.smul.{0, u1} Int (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (SubNegMonoid.SMulInt.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroup.toSubNegMonoid.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroupWithOne.toAddGroup.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (NonAssocRing.toAddGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toNonAssocRing.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.ring.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))))))) n (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) x))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (n : Int), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (SMul.smul.{0, u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasZsmul.{u1} α _inst_1) n x)) (SMul.smul.{0, u1} Int (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (SubNegMonoid.SMulInt.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroup.toSubNegMonoid.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroupWithOne.toAddGroup.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toAddCommGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.ring.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))))))) n (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) x))
 but is expected to have type
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (n : Int), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (HSMul.hSMul.{0, u1, u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSMul.{0, u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasZsmul.{u1} α _inst_1)) n x)) (HSMul.hSMul.{0, u1, u1} Int (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (instHSMul.{0, u1} Int (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (SubNegMonoid.SMulInt.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroup.toSubNegMonoid.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroupWithOne.toAddGroup.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toAddGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (instRingEndToAddZeroClassToAddMonoidToSubNegMonoidToAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))))))) n (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) x))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.to_End_zsmul CentroidHom.toEnd_zsmulₓ'. -/
@@ -759,7 +759,7 @@ theorem sub_apply (f g : CentroidHom α) (a : α) : (f - g) a = f a - g a :=
 
 /- warning: centroid_hom.to_End_int_cast -> CentroidHom.toEnd_int_cast is a dubious translation:
 lean 3 declaration is
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (z : Int), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (HasLiftT.mk.{1, succ u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CoeTCₓ.coe.{1, succ u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (Int.castCoe.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasIntCast.{u1} α _inst_1)))) z)) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (HasLiftT.mk.{1, succ u1} Int (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CoeTCₓ.coe.{1, succ u1} Int (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Int.castCoe.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroupWithOne.toHasIntCast.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (NonAssocRing.toAddGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toNonAssocRing.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.ring.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1)))))))) z)
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (z : Int), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (HasLiftT.mk.{1, succ u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CoeTCₓ.coe.{1, succ u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (Int.castCoe.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasIntCast.{u1} α _inst_1)))) z)) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (HasLiftT.mk.{1, succ u1} Int (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CoeTCₓ.coe.{1, succ u1} Int (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Int.castCoe.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddGroupWithOne.toHasIntCast.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddCommGroupWithOne.toAddGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toAddCommGroupWithOne.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoid.End.ring.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1)))))))) z)
 but is expected to have type
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (z : Int), Eq.{succ u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (CentroidHom.toEnd.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (Int.cast.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instIntCastCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1) z)) (Int.cast.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Ring.toIntCast.{u1} (AddMonoid.End.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (instRingEndToAddZeroClassToAddMonoidToSubNegMonoidToAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))) z)
 Case conversion may be inaccurate. Consider using '#align centroid_hom.to_End_int_cast CentroidHom.toEnd_int_castₓ'. -/
Diff
@@ -120,7 +120,7 @@ theorem toFun_eq_coe {f : CentroidHom α} : f.toFun = (f : α → α) :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] {f : CentroidHom.{u1} α _inst_1} {g : CentroidHom.{u1} α _inst_1}, (forall (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f a) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) g a)) -> (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) f g)
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] {f : CentroidHom.{u1} α _inst_1} {g : CentroidHom.{u1} α _inst_1}, (forall (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g a)) -> (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) f g)
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] {f : CentroidHom.{u1} α _inst_1} {g : CentroidHom.{u1} α _inst_1}, (forall (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g a)) -> (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) f g)
 Case conversion may be inaccurate. Consider using '#align centroid_hom.ext CentroidHom.extₓ'. -/
 @[ext]
 theorem ext {f g : CentroidHom α} (h : ∀ a, f a = g a) : f = g :=
@@ -131,7 +131,7 @@ theorem ext {f g : CentroidHom α} (h : ∀ a, f a = g a) : f = g :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (fun (_x : AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) => α -> α) (AddMonoidHom.hasCoeToFun.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (HasLiftT.mk.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (CoeTCₓ.coe.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHom.hasCoeT.{u1, u1, u1} α α (CentroidHom.{u1} α _inst_1) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.centroidHomClass.{u1} α _inst_1))))) f)) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f)
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoidHom.addMonoidHomClass.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))))) (AddMonoidHomClass.toAddMonoidHom.{u1, u1, u1} α α (CentroidHom.{u1} α _inst_1) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)) f)) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f)
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (AddMonoidHom.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoidHom.addMonoidHomClass.{u1, u1} α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))))) (AddMonoidHomClass.toAddMonoidHom.{u1, u1, u1} α α (CentroidHom.{u1} α _inst_1) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)) f)) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f)
 Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_to_add_monoid_hom CentroidHom.coe_toAddMonoidHomₓ'. -/
 @[simp, norm_cast]
 theorem coe_toAddMonoidHom (f : CentroidHom α) : ⇑(f : α →+ α) = f :=
@@ -178,7 +178,7 @@ theorem toEnd_injective : Injective (CentroidHom.toEnd : CentroidHom α → AddM
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (f' : α -> α), (Eq.{succ u1} (α -> α) f' (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f)) -> (CentroidHom.{u1} α _inst_1)
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (f' : α -> α), (Eq.{succ u1} (α -> α) f' (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f)) -> (CentroidHom.{u1} α _inst_1)
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (f' : α -> α), (Eq.{succ u1} (α -> α) f' (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f)) -> (CentroidHom.{u1} α _inst_1)
 Case conversion may be inaccurate. Consider using '#align centroid_hom.copy CentroidHom.copyₓ'. -/
 /-- Copy of a `centroid_hom` with a new `to_fun` equal to the old one. Useful to fix
 definitional equalities. -/
@@ -193,7 +193,7 @@ protected def copy (f : CentroidHom α) (f' : α → α) (h : f' = f) : Centroid
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (f' : α -> α) (h : Eq.{succ u1} (α -> α) f' (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f)), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (CentroidHom.copy.{u1} α _inst_1 f f' h)) f'
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (f' : α -> α) (h : Eq.{succ u1} (α -> α) f' (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f)), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (CentroidHom.copy.{u1} α _inst_1 f f' h)) f'
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (f' : α -> α) (h : Eq.{succ u1} (α -> α) f' (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f)), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (CentroidHom.copy.{u1} α _inst_1 f f' h)) f'
 Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_copy CentroidHom.coe_copyₓ'. -/
 @[simp]
 theorem coe_copy (f : CentroidHom α) (f' : α → α) (h : f' = f) : ⇑(f.copy f' h) = f' :=
@@ -204,7 +204,7 @@ theorem coe_copy (f : CentroidHom α) (f' : α → α) (h : f' = f) : ⇑(f.copy
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (f' : α -> α) (h : Eq.{succ u1} (α -> α) f' (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f)), Eq.{succ u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.copy.{u1} α _inst_1 f f' h) f
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (f' : α -> α) (h : Eq.{succ u1} (α -> α) f' (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f)), Eq.{succ u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.copy.{u1} α _inst_1 f f' h) f
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (f' : α -> α) (h : Eq.{succ u1} (α -> α) f' (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f)), Eq.{succ u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.copy.{u1} α _inst_1 f f' h) f
 Case conversion may be inaccurate. Consider using '#align centroid_hom.copy_eq CentroidHom.copy_eqₓ'. -/
 theorem copy_eq (f : CentroidHom α) (f' : α → α) (h : f' = f) : f.copy f' h = f :=
   FunLike.ext' h
@@ -228,7 +228,7 @@ instance : Inhabited (CentroidHom α) :=
 lean 3 declaration is
   forall (α : Type.{u1}) [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (CentroidHom.id.{u1} α _inst_1)) (id.{succ u1} α)
 but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (CentroidHom.id.{u1} α _inst_1)) (id.{succ u1} α)
+  forall (α : Type.{u1}) [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (CentroidHom.id.{u1} α _inst_1)) (id.{succ u1} α)
 Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_id CentroidHom.coe_idₓ'. -/
 @[simp, norm_cast]
 theorem coe_id : ⇑(CentroidHom.id α) = id :=
@@ -252,7 +252,7 @@ variable {α}
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (CentroidHom.id.{u1} α _inst_1) a) a
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (CentroidHom.id.{u1} α _inst_1) a) a
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (CentroidHom.id.{u1} α _inst_1) a) a
 Case conversion may be inaccurate. Consider using '#align centroid_hom.id_apply CentroidHom.id_applyₓ'. -/
 @[simp]
 theorem id_apply (a : α) : CentroidHom.id α a = a :=
@@ -275,7 +275,7 @@ def comp (g f : CentroidHom α) : CentroidHom α :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (g : CentroidHom.{u1} α _inst_1) (f : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (CentroidHom.comp.{u1} α _inst_1 g f)) (Function.comp.{succ u1, succ u1, succ u1} α α α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) g) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (g : CentroidHom.{u1} α _inst_1) (f : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (CentroidHom.comp.{u1} α _inst_1 g f)) (Function.comp.{succ u1, succ u1, succ u1} α α α (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (g : CentroidHom.{u1} α _inst_1) (f : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (CentroidHom.comp.{u1} α _inst_1 g f)) (Function.comp.{succ u1, succ u1, succ u1} α α α (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_comp CentroidHom.coe_compₓ'. -/
 @[simp, norm_cast]
 theorem coe_comp (g f : CentroidHom α) : ⇑(g.comp f) = g ∘ f :=
@@ -286,7 +286,7 @@ theorem coe_comp (g f : CentroidHom α) : ⇑(g.comp f) = g ∘ f :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (g : CentroidHom.{u1} α _inst_1) (f : CentroidHom.{u1} α _inst_1) (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (CentroidHom.comp.{u1} α _inst_1 g f) a) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) g (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f a))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (g : CentroidHom.{u1} α _inst_1) (f : CentroidHom.{u1} α _inst_1) (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (CentroidHom.comp.{u1} α _inst_1 g f) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f a))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (g : CentroidHom.{u1} α _inst_1) (f : CentroidHom.{u1} α _inst_1) (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (CentroidHom.comp.{u1} α _inst_1 g f) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f a))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.comp_apply CentroidHom.comp_applyₓ'. -/
 @[simp]
 theorem comp_apply (g f : CentroidHom α) (a : α) : g.comp f a = g (f a) :=
@@ -329,7 +329,7 @@ theorem id_comp (f : CentroidHom α) : (CentroidHom.id α).comp f = f :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] {g₁ : CentroidHom.{u1} α _inst_1} {g₂ : CentroidHom.{u1} α _inst_1} {f : CentroidHom.{u1} α _inst_1}, (Function.Surjective.{succ u1, succ u1} α α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f)) -> (Iff (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.comp.{u1} α _inst_1 g₁ f) (CentroidHom.comp.{u1} α _inst_1 g₂ f)) (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) g₁ g₂))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] {g₁ : CentroidHom.{u1} α _inst_1} {g₂ : CentroidHom.{u1} α _inst_1} {f : CentroidHom.{u1} α _inst_1}, (Function.Surjective.{succ u1, succ u1} α α (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f)) -> (Iff (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.comp.{u1} α _inst_1 g₁ f) (CentroidHom.comp.{u1} α _inst_1 g₂ f)) (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) g₁ g₂))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] {g₁ : CentroidHom.{u1} α _inst_1} {g₂ : CentroidHom.{u1} α _inst_1} {f : CentroidHom.{u1} α _inst_1}, (Function.Surjective.{succ u1, succ u1} α α (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f)) -> (Iff (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.comp.{u1} α _inst_1 g₁ f) (CentroidHom.comp.{u1} α _inst_1 g₂ f)) (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) g₁ g₂))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.cancel_right CentroidHom.cancel_rightₓ'. -/
 theorem cancel_right {g₁ g₂ f : CentroidHom α} (hf : Surjective f) :
     g₁.comp f = g₂.comp f ↔ g₁ = g₂ :=
@@ -340,7 +340,7 @@ theorem cancel_right {g₁ g₂ f : CentroidHom α} (hf : Surjective f) :
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] {g : CentroidHom.{u1} α _inst_1} {f₁ : CentroidHom.{u1} α _inst_1} {f₂ : CentroidHom.{u1} α _inst_1}, (Function.Injective.{succ u1, succ u1} α α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) g)) -> (Iff (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.comp.{u1} α _inst_1 g f₁) (CentroidHom.comp.{u1} α _inst_1 g f₂)) (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) f₁ f₂))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] {g : CentroidHom.{u1} α _inst_1} {f₁ : CentroidHom.{u1} α _inst_1} {f₂ : CentroidHom.{u1} α _inst_1}, (Function.Injective.{succ u1, succ u1} α α (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g)) -> (Iff (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.comp.{u1} α _inst_1 g f₁) (CentroidHom.comp.{u1} α _inst_1 g f₂)) (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) f₁ f₂))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] {g : CentroidHom.{u1} α _inst_1} {f₁ : CentroidHom.{u1} α _inst_1} {f₂ : CentroidHom.{u1} α _inst_1}, (Function.Injective.{succ u1, succ u1} α α (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g)) -> (Iff (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.comp.{u1} α _inst_1 g f₁) (CentroidHom.comp.{u1} α _inst_1 g f₂)) (Eq.{succ u1} (CentroidHom.{u1} α _inst_1) f₁ f₂))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.cancel_left CentroidHom.cancel_leftₓ'. -/
 theorem cancel_left {g f₁ f₂ : CentroidHom α} (hg : Injective g) :
     g.comp f₁ = g.comp f₂ ↔ f₁ = f₂ :=
@@ -406,7 +406,7 @@ instance hasNpowNat : Pow (CentroidHom α) ℕ :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 0 (OfNat.mk.{u1} (CentroidHom.{u1} α _inst_1) 0 (Zero.zero.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasZero.{u1} α _inst_1))))) (OfNat.ofNat.{u1} (α -> α) 0 (OfNat.mk.{u1} (α -> α) 0 (Zero.zero.{u1} (α -> α) (Pi.instZero.{u1, u1} α (fun (ᾰ : α) => α) (fun (i : α) => MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α _inst_1))))))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 0 (Zero.toOfNat0.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instZeroCentroidHom.{u1} α _inst_1)))) (OfNat.ofNat.{u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) 0 (Zero.toOfNat0.{u1} (forall (a : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (Pi.instZero.{u1, u1} α (fun (a : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (fun (i : α) => MulZeroClass.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) i) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) i) _inst_1)))))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 0 (Zero.toOfNat0.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instZeroCentroidHom.{u1} α _inst_1)))) (OfNat.ofNat.{u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) 0 (Zero.toOfNat0.{u1} (forall (a : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (Pi.instZero.{u1, u1} α (fun (a : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (fun (i : α) => MulZeroClass.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) _inst_1)))))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_zero CentroidHom.coe_zeroₓ'. -/
 @[simp, norm_cast]
 theorem coe_zero : ⇑(0 : CentroidHom α) = 0 :=
@@ -417,7 +417,7 @@ theorem coe_zero : ⇑(0 : CentroidHom α) = 0 :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 1 (OfNat.mk.{u1} (CentroidHom.{u1} α _inst_1) 1 (One.one.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasOne.{u1} α _inst_1))))) (id.{succ u1} α)
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 1 (One.toOfNat1.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instOneCentroidHom.{u1} α _inst_1)))) (id.{succ u1} α)
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α], Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 1 (One.toOfNat1.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instOneCentroidHom.{u1} α _inst_1)))) (id.{succ u1} α)
 Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_one CentroidHom.coe_oneₓ'. -/
 @[simp, norm_cast]
 theorem coe_one : ⇑(1 : CentroidHom α) = id :=
@@ -428,7 +428,7 @@ theorem coe_one : ⇑(1 : CentroidHom α) = id :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (HAdd.hAdd.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHAdd.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasAdd.{u1} α _inst_1)) f g)) (HAdd.hAdd.{u1, u1, u1} (α -> α) (α -> α) (α -> α) (instHAdd.{u1} (α -> α) (Pi.instAdd.{u1, u1} α (fun (ᾰ : α) => α) (fun (i : α) => Distrib.toHasAdd.{u1} α (NonUnitalNonAssocSemiring.toDistrib.{u1} α _inst_1)))) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) g))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HAdd.hAdd.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHAdd.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instAddCentroidHom.{u1} α _inst_1)) f g)) (HAdd.hAdd.{u1, u1, u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (instHAdd.{u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (Pi.instAdd.{u1, u1} α (fun (ᾰ : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (fun (i : α) => Distrib.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) i) (NonUnitalNonAssocSemiring.toDistrib.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) i) _inst_1)))) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HAdd.hAdd.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHAdd.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instAddCentroidHom.{u1} α _inst_1)) f g)) (HAdd.hAdd.{u1, u1, u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (instHAdd.{u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (Pi.instAdd.{u1, u1} α (fun (ᾰ : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (fun (i : α) => Distrib.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (NonUnitalNonAssocSemiring.toDistrib.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) _inst_1)))) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_add CentroidHom.coe_addₓ'. -/
 @[simp, norm_cast]
 theorem coe_add (f g : CentroidHom α) : ⇑(f + g) = f + g :=
@@ -439,7 +439,7 @@ theorem coe_add (f g : CentroidHom α) : ⇑(f + g) = f + g :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (HMul.hMul.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHMul.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasMul.{u1} α _inst_1)) f g)) (Function.comp.{succ u1, succ u1, succ u1} α α α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) g))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HMul.hMul.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHMul.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instMulCentroidHom.{u1} α _inst_1)) f g)) (Function.comp.{succ u1, succ u1, succ u1} α α α (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HMul.hMul.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHMul.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instMulCentroidHom.{u1} α _inst_1)) f g)) (Function.comp.{succ u1, succ u1, succ u1} α α α (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_mul CentroidHom.coe_mulₓ'. -/
 @[simp, norm_cast]
 theorem coe_mul (f g : CentroidHom α) : ⇑(f * g) = f ∘ g :=
@@ -450,7 +450,7 @@ theorem coe_mul (f g : CentroidHom α) : ⇑(f * g) = f ∘ g :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (n : Nat), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (SMul.smul.{0, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.hasNsmul.{u1} α _inst_1) n f)) (SMul.smul.{0, u1} Nat (α -> α) (Pi.instSMul.{u1, u1, 0} α Nat (fun (ᾰ : α) => α) (fun (i : α) => AddMonoid.SMul.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) n (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (n : Nat), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HSMul.hSMul.{0, u1, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHSMul.{0, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.hasNsmul.{u1} α _inst_1)) n f)) (HSMul.hSMul.{0, u1, u1} Nat (forall (a : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (instHSMul.{0, u1} Nat (forall (a : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (Pi.instSMul.{u1, u1, 0} α Nat (fun (a : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (fun (i : α) => AddMonoid.SMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) i) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) i) _inst_1))))) n (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (n : Nat), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HSMul.hSMul.{0, u1, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHSMul.{0, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.hasNsmul.{u1} α _inst_1)) n f)) (HSMul.hSMul.{0, u1, u1} Nat (forall (a : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (instHSMul.{0, u1} Nat (forall (a : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (Pi.instSMul.{u1, u1, 0} α Nat (fun (a : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (fun (i : α) => AddMonoid.SMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) _inst_1))))) n (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_nsmul CentroidHom.coe_nsmulₓ'. -/
 -- Eligible for `dsimp`
 @[simp, norm_cast, nolint simp_nf]
@@ -462,7 +462,7 @@ theorem coe_nsmul (f : CentroidHom α) (n : ℕ) : ⇑(n • f) = n • f :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 0 (OfNat.mk.{u1} (CentroidHom.{u1} α _inst_1) 0 (Zero.zero.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasZero.{u1} α _inst_1)))) a) (OfNat.ofNat.{u1} α 0 (OfNat.mk.{u1} α 0 (Zero.zero.{u1} α (MulZeroClass.toHasZero.{u1} α (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} α _inst_1)))))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 0 (Zero.toOfNat0.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instZeroCentroidHom.{u1} α _inst_1))) a) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (MulZeroClass.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) _inst_1))))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 0 (Zero.toOfNat0.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instZeroCentroidHom.{u1} α _inst_1))) a) (OfNat.ofNat.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) 0 (Zero.toOfNat0.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (MulZeroClass.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) _inst_1))))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.zero_apply CentroidHom.zero_applyₓ'. -/
 @[simp]
 theorem zero_apply (a : α) : (0 : CentroidHom α) a = 0 :=
@@ -473,7 +473,7 @@ theorem zero_apply (a : α) : (0 : CentroidHom α) a = 0 :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 1 (OfNat.mk.{u1} (CentroidHom.{u1} α _inst_1) 1 (One.one.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasOne.{u1} α _inst_1)))) a) a
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 1 (One.toOfNat1.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instOneCentroidHom.{u1} α _inst_1))) a) a
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (OfNat.ofNat.{u1} (CentroidHom.{u1} α _inst_1) 1 (One.toOfNat1.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instOneCentroidHom.{u1} α _inst_1))) a) a
 Case conversion may be inaccurate. Consider using '#align centroid_hom.one_apply CentroidHom.one_applyₓ'. -/
 @[simp]
 theorem one_apply (a : α) : (1 : CentroidHom α) a = a :=
@@ -484,7 +484,7 @@ theorem one_apply (a : α) : (1 : CentroidHom α) a = a :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1) (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (HAdd.hAdd.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHAdd.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasAdd.{u1} α _inst_1)) f g) a) (HAdd.hAdd.{u1, u1, u1} α α α (instHAdd.{u1} α (Distrib.toHasAdd.{u1} α (NonUnitalNonAssocSemiring.toDistrib.{u1} α _inst_1))) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f a) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) g a))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1) (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HAdd.hAdd.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHAdd.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instAddCentroidHom.{u1} α _inst_1)) f g) a) (HAdd.hAdd.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (instHAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (Distrib.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (NonUnitalNonAssocSemiring.toDistrib.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g a))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1) (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HAdd.hAdd.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHAdd.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instAddCentroidHom.{u1} α _inst_1)) f g) a) (HAdd.hAdd.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (instHAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (Distrib.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (NonUnitalNonAssocSemiring.toDistrib.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g a))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.add_apply CentroidHom.add_applyₓ'. -/
 @[simp]
 theorem add_apply (f g : CentroidHom α) (a : α) : (f + g) a = f a + g a :=
@@ -495,7 +495,7 @@ theorem add_apply (f g : CentroidHom α) (a : α) : (f + g) a = f a + g a :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1) (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (HMul.hMul.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHMul.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasMul.{u1} α _inst_1)) f g) a) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) g a))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1) (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HMul.hMul.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHMul.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instMulCentroidHom.{u1} α _inst_1)) f g) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g a))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (g : CentroidHom.{u1} α _inst_1) (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HMul.hMul.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHMul.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instMulCentroidHom.{u1} α _inst_1)) f g) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) g a))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.mul_apply CentroidHom.mul_applyₓ'. -/
 @[simp]
 theorem mul_apply (f g : CentroidHom α) (a : α) : (f * g) a = f (g a) :=
@@ -506,7 +506,7 @@ theorem mul_apply (f g : CentroidHom α) (a : α) : (f * g) a = f (g a) :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (n : Nat) (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) (SMul.smul.{0, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.hasNsmul.{u1} α _inst_1) n f) a) (SMul.smul.{0, u1} Nat α (AddMonoid.SMul.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) n (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) f a))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (n : Nat) (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HSMul.hSMul.{0, u1, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHSMul.{0, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.hasNsmul.{u1} α _inst_1)) n f) a) (HSMul.hSMul.{0, u1, u1} Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (instHSMul.{0, u1} Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (AddMonoid.SMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) _inst_1)))) n (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f a))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (f : CentroidHom.{u1} α _inst_1) (n : Nat) (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HSMul.hSMul.{0, u1, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHSMul.{0, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.hasNsmul.{u1} α _inst_1)) n f) a) (HSMul.hSMul.{0, u1, u1} Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (instHSMul.{0, u1} Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (AddMonoid.SMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) _inst_1)))) n (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) f a))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.nsmul_apply CentroidHom.nsmul_applyₓ'. -/
 -- Eligible for `dsimp`
 @[simp, nolint simp_nf]
@@ -552,7 +552,7 @@ instance : NatCast (CentroidHom α) where natCast n := n • 1
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (n : Nat), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat (CentroidHom.{u1} α _inst_1) (HasLiftT.mk.{1, succ u1} Nat (CentroidHom.{u1} α _inst_1) (CoeTCₓ.coe.{1, succ u1} Nat (CentroidHom.{u1} α _inst_1) (Nat.castCoe.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasNatCast.{u1} α _inst_1)))) n)) (SMul.smul.{0, u1} Nat (α -> α) (Pi.instSMul.{u1, u1, 0} α Nat (fun (ᾰ : α) => α) (fun (i : α) => AddMonoid.SMul.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) n (id.{succ u1} α))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (n : Nat), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (Nat.cast.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instNatCastCentroidHom.{u1} α _inst_1) n)) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (a : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HSMul.hSMul.{0, u1, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHSMul.{0, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.hasNsmul.{u1} α _inst_1)) n (CentroidHom.id.{u1} α _inst_1)))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (n : Nat), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (Nat.cast.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instNatCastCentroidHom.{u1} α _inst_1) n)) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (a : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (HSMul.hSMul.{0, u1, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.{u1} α _inst_1) (instHSMul.{0, u1} Nat (CentroidHom.{u1} α _inst_1) (CentroidHom.hasNsmul.{u1} α _inst_1)) n (CentroidHom.id.{u1} α _inst_1)))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_nat_cast CentroidHom.coe_nat_castₓ'. -/
 @[simp, norm_cast]
 theorem coe_nat_cast (n : ℕ) : ⇑(n : CentroidHom α) = n • id :=
@@ -563,7 +563,7 @@ theorem coe_nat_cast (n : ℕ) : ⇑(n : CentroidHom α) = n • id :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (n : Nat) (m : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Nat (CentroidHom.{u1} α _inst_1) (HasLiftT.mk.{1, succ u1} Nat (CentroidHom.{u1} α _inst_1) (CoeTCₓ.coe.{1, succ u1} Nat (CentroidHom.{u1} α _inst_1) (Nat.castCoe.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.hasNatCast.{u1} α _inst_1)))) n) m) (SMul.smul.{0, u1} Nat α (AddMonoid.SMul.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) n m)
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (n : Nat) (m : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) m) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (Nat.cast.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instNatCastCentroidHom.{u1} α _inst_1) n) m) (HSMul.hSMul.{0, u1, u1} Nat α α (instHSMul.{0, u1} Nat α (AddMonoid.SMul.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) n m)
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (n : Nat) (m : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) m) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) (Nat.cast.{u1} (CentroidHom.{u1} α _inst_1) (CentroidHom.instNatCastCentroidHom.{u1} α _inst_1) n) m) (HSMul.hSMul.{0, u1, u1} Nat α α (instHSMul.{0, u1} Nat α (AddMonoid.SMul.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) n m)
 Case conversion may be inaccurate. Consider using '#align centroid_hom.nat_cast_apply CentroidHom.nat_cast_applyₓ'. -/
 theorem nat_cast_apply (n : ℕ) (m : α) : (n : CentroidHom α) m = n • m :=
   rfl
@@ -612,7 +612,7 @@ instance : Semiring (CentroidHom α) :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (T : CentroidHom.{u1} α _inst_1) (S : CentroidHom.{u1} α _inst_1) (a : α) (b : α), Eq.{succ u1} α (Function.comp.{succ u1, succ u1, succ u1} α α α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) T) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) S) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (Distrib.toHasMul.{u1} α (NonUnitalNonAssocSemiring.toDistrib.{u1} α _inst_1))) a b)) (Function.comp.{succ u1, succ u1, succ u1} α α α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) S) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α _inst_1) (fun (_x : CentroidHom.{u1} α _inst_1) => α -> α) (CentroidHom.hasCoeToFun.{u1} α _inst_1) T) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (Distrib.toHasMul.{u1} α (NonUnitalNonAssocSemiring.toDistrib.{u1} α _inst_1))) a b))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (T : CentroidHom.{u1} α _inst_1) (S : CentroidHom.{u1} α _inst_1) (a : α) (b : α), Eq.{succ u1} α (Function.comp.{succ u1, succ u1, succ u1} α α α (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) T) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) S) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (NonUnitalNonAssocSemiring.toMul.{u1} α _inst_1)) a b)) (Function.comp.{succ u1, succ u1, succ u1} α α α (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) S) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) T) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (NonUnitalNonAssocSemiring.toMul.{u1} α _inst_1)) a b))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocSemiring.{u1} α] (T : CentroidHom.{u1} α _inst_1) (S : CentroidHom.{u1} α _inst_1) (a : α) (b : α), Eq.{succ u1} α (Function.comp.{succ u1, succ u1, succ u1} α α α (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) T) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) S) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (NonUnitalNonAssocSemiring.toMul.{u1} α _inst_1)) a b)) (Function.comp.{succ u1, succ u1, succ u1} α α α (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) S) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α _inst_1) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1)))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α _inst_1) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α _inst_1))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α _inst_1) α _inst_1 (CentroidHom.instCentroidHomClassCentroidHom.{u1} α _inst_1)))) T) (HMul.hMul.{u1, u1, u1} α α α (instHMul.{u1} α (NonUnitalNonAssocSemiring.toMul.{u1} α _inst_1)) a b))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.comp_mul_comm CentroidHom.comp_mul_commₓ'. -/
 theorem comp_mul_comm (T S : CentroidHom α) (a b : α) : (T ∘ S) (a * b) = (S ∘ T) (a * b) := by
   rw [comp_app, map_mul_right, map_mul_left, ← map_mul_right, ← map_mul_left]
@@ -661,7 +661,7 @@ instance : IntCast (CentroidHom α) where intCast z := z • 1
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (z : Int), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (HasLiftT.mk.{1, succ u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CoeTCₓ.coe.{1, succ u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (Int.castCoe.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasIntCast.{u1} α _inst_1)))) z)) (SMul.smul.{0, u1} Int (α -> α) (Pi.instSMul.{u1, u1, 0} α Int (fun (ᾰ : α) => α) (fun (i : α) => SubNegMonoid.SMulInt.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))))) z (id.{succ u1} α))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (z : Int), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Int.cast.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instIntCastCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1) z)) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (a : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (HSMul.hSMul.{0, u1, u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSMul.{0, u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasZsmul.{u1} α _inst_1)) z (CentroidHom.id.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (z : Int), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Int.cast.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instIntCastCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1) z)) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (a : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (HSMul.hSMul.{0, u1, u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSMul.{0, u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasZsmul.{u1} α _inst_1)) z (CentroidHom.id.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_int_cast CentroidHom.coe_int_castₓ'. -/
 @[simp, norm_cast]
 theorem coe_int_cast (z : ℤ) : ⇑(z : CentroidHom α) = z • id :=
@@ -672,7 +672,7 @@ theorem coe_int_cast (z : ℤ) : ⇑(z : CentroidHom α) = z • id :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (z : Int) (m : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) ((fun (a : Type) (b : Type.{u1}) [self : HasLiftT.{1, succ u1} a b] => self.0) Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (HasLiftT.mk.{1, succ u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CoeTCₓ.coe.{1, succ u1} Int (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (Int.castCoe.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasIntCast.{u1} α _inst_1)))) z) m) (SMul.smul.{0, u1} Int α (SubNegMonoid.SMulInt.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1)))) z m)
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (z : Int) (m : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) m) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Int.cast.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instIntCastCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1) z) m) (HSMul.hSMul.{0, u1, u1} Int α α (instHSMul.{0, u1} Int α (SubNegMonoid.SMulInt.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))))) z m)
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (z : Int) (m : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) m) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Int.cast.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instIntCastCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1) z) m) (HSMul.hSMul.{0, u1, u1} Int α α (instHSMul.{0, u1} Int α (SubNegMonoid.SMulInt.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))))) z m)
 Case conversion may be inaccurate. Consider using '#align centroid_hom.int_cast_apply CentroidHom.int_cast_applyₓ'. -/
 theorem int_cast_apply (z : ℤ) (m : α) : (z : CentroidHom α) m = z • m :=
   rfl
@@ -717,7 +717,7 @@ instance : AddCommGroup (CentroidHom α) :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (Neg.neg.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasNeg.{u1} α _inst_1) f)) (Neg.neg.{u1} (α -> α) (Pi.instNeg.{u1, u1} α (fun (ᾰ : α) => α) (fun (i : α) => SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))))) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) f))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Neg.neg.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instNegCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1) f)) (Neg.neg.{u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (Pi.instNeg.{u1, u1} α (fun (ᾰ : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (fun (i : α) => NegZeroClass.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) i) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) i) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) i) (NonUnitalNonAssocRing.toAddCommGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) i) _inst_1))))))) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) f))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Neg.neg.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instNegCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1) f)) (Neg.neg.{u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (Pi.instNeg.{u1, u1} α (fun (ᾰ : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (fun (i : α) => NegZeroClass.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (NonUnitalNonAssocRing.toAddCommGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) _inst_1))))))) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) f))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_neg CentroidHom.coe_negₓ'. -/
 @[simp, norm_cast]
 theorem coe_neg (f : CentroidHom α) : ⇑(-f) = -f :=
@@ -728,7 +728,7 @@ theorem coe_neg (f : CentroidHom α) : ⇑(-f) = -f :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (g : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (α -> α) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (HSub.hSub.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSub.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasSub.{u1} α _inst_1)) f g)) (HSub.hSub.{u1, u1, u1} (α -> α) (α -> α) (α -> α) (instHSub.{u1} (α -> α) (Pi.instSub.{u1, u1} α (fun (ᾰ : α) => α) (fun (i : α) => SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1)))))) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) f) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) g))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (g : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (HSub.hSub.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSub.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instSubCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1)) f g)) (HSub.hSub.{u1, u1, u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (instHSub.{u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (Pi.instSub.{u1, u1} α (fun (ᾰ : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) ᾰ) (fun (i : α) => SubNegMonoid.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) i) (AddGroup.toSubNegMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) i) (AddCommGroup.toAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) i) (NonUnitalNonAssocRing.toAddCommGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) i) _inst_1)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) f) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) g))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (g : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)), Eq.{succ u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (HSub.hSub.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSub.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instSubCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1)) f g)) (HSub.hSub.{u1, u1, u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (instHSub.{u1} (forall (ᾰ : α), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (Pi.instSub.{u1, u1} α (fun (ᾰ : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) ᾰ) (fun (i : α) => SubNegMonoid.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (AddGroup.toSubNegMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (AddCommGroup.toAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) (NonUnitalNonAssocRing.toAddCommGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) i) _inst_1)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) f) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) g))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.coe_sub CentroidHom.coe_subₓ'. -/
 @[simp, norm_cast]
 theorem coe_sub (f g : CentroidHom α) : ⇑(f - g) = f - g :=
@@ -739,7 +739,7 @@ theorem coe_sub (f g : CentroidHom α) : ⇑(f - g) = f - g :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (Neg.neg.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasNeg.{u1} α _inst_1) f) a) (Neg.neg.{u1} α (SubNegMonoid.toHasNeg.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1)))) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) f a))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Neg.neg.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instNegCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1) f) a) (Neg.neg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (NegZeroClass.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (NonUnitalNonAssocRing.toAddCommGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) _inst_1)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) f a))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (Neg.neg.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instNegCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1) f) a) (Neg.neg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (NegZeroClass.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (NonUnitalNonAssocRing.toAddCommGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) _inst_1)))))) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) f a))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.neg_apply CentroidHom.neg_applyₓ'. -/
 @[simp]
 theorem neg_apply (f : CentroidHom α) (a : α) : (-f) a = -f a :=
@@ -750,7 +750,7 @@ theorem neg_apply (f : CentroidHom α) (a : α) : (-f) a = -f a :=
 lean 3 declaration is
   forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (g : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (a : α), Eq.{succ u1} α (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (HSub.hSub.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSub.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.hasSub.{u1} α _inst_1)) f g) a) (HSub.hSub.{u1, u1, u1} α α α (instHSub.{u1} α (SubNegMonoid.toHasSub.{u1} α (AddGroup.toSubNegMonoid.{u1} α (AddCommGroup.toAddGroup.{u1} α (NonUnitalNonAssocRing.toAddCommGroup.{u1} α _inst_1))))) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) f a) (coeFn.{succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (fun (_x : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) => α -> α) (CentroidHom.hasCoeToFun.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) g a))
 but is expected to have type
-  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (g : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (HSub.hSub.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSub.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instSubCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1)) f g) a) (HSub.hSub.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (instHSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (SubNegMonoid.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (AddGroup.toSubNegMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (AddCommGroup.toAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) (NonUnitalNonAssocRing.toAddCommGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) a) _inst_1))))) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) f a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) g a))
+  forall {α : Type.{u1}} [_inst_1 : NonUnitalNonAssocRing.{u1} α] (f : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (g : CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (a : α), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (HSub.hSub.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (instHSub.{u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) (CentroidHom.instSubCentroidHomToNonUnitalNonAssocSemiring.{u1} α _inst_1)) f g) a) (HSub.hSub.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (instHSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (SubNegMonoid.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (AddGroup.toSubNegMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (AddCommGroup.toAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) (NonUnitalNonAssocRing.toAddCommGroup.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) a) _inst_1))))) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) f a) (FunLike.coe.{succ u1, succ u1, succ u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : α) => α) _x) (AddHomClass.toFunLike.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddZeroClass.toAdd.{u1} α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α α (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (AddMonoid.toAddZeroClass.{u1} α (AddCommMonoid.toAddMonoid.{u1} α (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)))) (CentroidHomClass.toAddMonoidHomClass.{u1, u1} (CentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1)) α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1) (CentroidHom.instCentroidHomClassCentroidHom.{u1} α (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} α _inst_1))))) g a))
 Case conversion may be inaccurate. Consider using '#align centroid_hom.sub_apply CentroidHom.sub_applyₓ'. -/
 @[simp]
 theorem sub_apply (f g : CentroidHom α) (a : α) : (f - g) a = f a - g a :=
Diff
@@ -349,8 +349,8 @@ theorem cancel_left {g f₁ f₂ : CentroidHom α} (hg : Injective g) :
 
 instance : Zero (CentroidHom α) :=
   ⟨{ (0 : α →+ α) with
-      map_mul_left' := fun a b => (mul_zero _).symm
-      map_mul_right' := fun a b => (zero_mul _).symm }⟩
+      map_mul_left' := fun a b => (MulZeroClass.mul_zero _).symm
+      map_mul_right' := fun a b => (MulZeroClass.zero_mul _).symm }⟩
 
 instance : One (CentroidHom α) :=
   ⟨CentroidHom.id α⟩

Changes in mathlib4

mathlib3
mathlib4
chore: split Algebra.Algebra.Basic (#12486)

Splits Algebra.Algebra.Defs off Algebra.Algebra.Basic. Most imports only need the Defs file, which has significantly smaller imports. The remaining Algebra.Algebra.Basic is now a grab-bag of unrelated results, and should probably be split further or rehomed.

This is mostly motivated by the wasted effort during minimization upon encountering Algebra.Algebra.Basic.

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

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Yaël Dillies. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies, Christopher Hoskin
 -/
-import Mathlib.Algebra.Algebra.Basic
+import Mathlib.Algebra.Algebra.Defs
 import Mathlib.Algebra.Module.Hom
 import Mathlib.GroupTheory.GroupAction.Ring
 import Mathlib.RingTheory.NonUnitalSubsemiring.Basic
chore: Rename nat_cast/int_cast/rat_cast to natCast/intCast/ratCast (#11486)

Now that I am defining NNRat.cast, I want a definitive answer to this naming issue. Plenty of lemmas in mathlib already use natCast/intCast/ratCast over nat_cast/int_cast/rat_cast, and this matches with the general expectation that underscore-separated name parts correspond to a single declaration.

Diff
@@ -381,13 +381,13 @@ instance : NatCast (CentroidHom α) where natCast n := n • (1 : CentroidHom α
 
 -- Porting note: `nolint simpNF` added because simplify fails on left-hand side
 @[simp, norm_cast, nolint simpNF]
-theorem coe_nat_cast (n : ℕ) : ⇑(n : CentroidHom α) = n • (CentroidHom.id α) :=
+theorem coe_natCast (n : ℕ) : ⇑(n : CentroidHom α) = n • (CentroidHom.id α) :=
   rfl
-#align centroid_hom.coe_nat_cast CentroidHom.coe_nat_cast
+#align centroid_hom.coe_nat_cast CentroidHom.coe_natCast
 
-theorem nat_cast_apply (n : ℕ) (m : α) : (n : CentroidHom α) m = n • m :=
+theorem natCast_apply (n : ℕ) (m : α) : (n : CentroidHom α) m = n • m :=
   rfl
-#align centroid_hom.nat_cast_apply CentroidHom.nat_cast_apply
+#align centroid_hom.nat_cast_apply CentroidHom.natCast_apply
 
 @[simp]
 theorem toEnd_one : (1 : CentroidHom α).toEnd = 1 :=
@@ -405,14 +405,14 @@ theorem toEnd_pow (x : CentroidHom α) (n : ℕ) : (x ^ n).toEnd = x.toEnd ^ n :
 #align centroid_hom.to_End_pow CentroidHom.toEnd_pow
 
 @[simp, norm_cast]
-theorem toEnd_nat_cast (n : ℕ) : (n : CentroidHom α).toEnd = ↑n :=
+theorem toEnd_natCast (n : ℕ) : (n : CentroidHom α).toEnd = ↑n :=
   rfl
-#align centroid_hom.to_End_nat_cast CentroidHom.toEnd_nat_cast
+#align centroid_hom.to_End_nat_cast CentroidHom.toEnd_natCast
 
 -- cf `add_monoid.End.semiring`
 instance : Semiring (CentroidHom α) :=
   toEnd_injective.semiring _ toEnd_zero toEnd_one toEnd_add toEnd_mul toEnd_smul toEnd_pow
-    toEnd_nat_cast
+    toEnd_natCast
 
 variable (α) in
 /-- `CentroidHom.toEnd` as a `RingHom`. -/
@@ -596,13 +596,13 @@ instance : IntCast (CentroidHom α) where intCast z := z • (1 : CentroidHom α
 
 -- Porting note: `nolint simpNF` added because simplify fails on left-hand side
 @[simp, norm_cast, nolint simpNF]
-theorem coe_int_cast (z : ℤ) : ⇑(z : CentroidHom α) = z • (CentroidHom.id α) :=
+theorem coe_intCast (z : ℤ) : ⇑(z : CentroidHom α) = z • (CentroidHom.id α) :=
   rfl
-#align centroid_hom.coe_int_cast CentroidHom.coe_int_cast
+#align centroid_hom.coe_int_cast CentroidHom.coe_intCast
 
-theorem int_cast_apply (z : ℤ) (m : α) : (z : CentroidHom α) m = z • m :=
+theorem intCast_apply (z : ℤ) (m : α) : (z : CentroidHom α) m = z • m :=
   rfl
-#align centroid_hom.int_cast_apply CentroidHom.int_cast_apply
+#align centroid_hom.int_cast_apply CentroidHom.intCast_apply
 
 @[simp]
 theorem toEnd_neg (x : CentroidHom α) : (-x).toEnd = -x.toEnd :=
@@ -641,13 +641,13 @@ theorem sub_apply (f g : CentroidHom α) (a : α) : (f - g) a = f a - g a :=
 #align centroid_hom.sub_apply CentroidHom.sub_apply
 
 @[simp, norm_cast]
-theorem toEnd_int_cast (z : ℤ) : (z : CentroidHom α).toEnd = ↑z :=
+theorem toEnd_intCast (z : ℤ) : (z : CentroidHom α).toEnd = ↑z :=
   rfl
-#align centroid_hom.to_End_int_cast CentroidHom.toEnd_int_cast
+#align centroid_hom.to_End_int_cast CentroidHom.toEnd_intCast
 
 instance instRing : Ring (CentroidHom α) :=
   toEnd_injective.ring _ toEnd_zero toEnd_one toEnd_add toEnd_mul toEnd_neg toEnd_sub
-    toEnd_smul toEnd_smul toEnd_pow toEnd_nat_cast toEnd_int_cast
+    toEnd_smul toEnd_smul toEnd_pow toEnd_natCast toEnd_intCast
 
 end NonUnitalNonAssocRing
 
chore(Field/InjSurj): Tidy (#11480)

Among other things, change the nsmul, zsmul, qsmul fields to have n/q come before x, because this matches the lemmas we want to write about them. It would be preferrable to perform the same changes to the AddMonoid/AddGroup-like typeclasses, but this is impossible with the current to_additive framework, so instead I have inserted some Function.swap at the interface between AddMonoid/AddGroup and Ring/Field.

Reduce the diff of #11203

Diff
@@ -411,7 +411,7 @@ theorem toEnd_nat_cast (n : ℕ) : (n : CentroidHom α).toEnd = ↑n :=
 
 -- cf `add_monoid.End.semiring`
 instance : Semiring (CentroidHom α) :=
-  toEnd_injective.semiring _ toEnd_zero toEnd_one toEnd_add toEnd_mul (swap toEnd_smul) toEnd_pow
+  toEnd_injective.semiring _ toEnd_zero toEnd_one toEnd_add toEnd_mul toEnd_smul toEnd_pow
     toEnd_nat_cast
 
 variable (α) in
@@ -647,7 +647,7 @@ theorem toEnd_int_cast (z : ℤ) : (z : CentroidHom α).toEnd = ↑z :=
 
 instance instRing : Ring (CentroidHom α) :=
   toEnd_injective.ring _ toEnd_zero toEnd_one toEnd_add toEnd_mul toEnd_neg toEnd_sub
-    (swap toEnd_smul) (swap toEnd_smul) toEnd_pow toEnd_nat_cast toEnd_int_cast
+    toEnd_smul toEnd_smul toEnd_pow toEnd_nat_cast toEnd_int_cast
 
 end NonUnitalNonAssocRing
 
change the order of operation in zsmulRec and nsmulRec (#11451)

We change the following field in the definition of an additive commutative monoid:

 nsmul_succ : ∀ (n : ℕ) (x : G),
-  AddMonoid.nsmul (n + 1) x = x + AddMonoid.nsmul n x
+  AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x

where the latter is more natural

We adjust the definitions of ^ in monoids, groups, etc. Originally there was a warning comment about why this natural order was preferred

use x * npowRec n x and not npowRec n x * x in the definition to make sure that definitional unfolding of npowRec is blocked, to avoid deep recursion issues.

but it seems to no longer apply.

Remarks on the PR :

  • pow_succ and pow_succ' have switched their meanings.
  • Most of the time, the proofs were adjusted by priming/unpriming one lemma, or exchanging left and right; a few proofs were more complicated to adjust.
  • In particular, [Mathlib/NumberTheory/RamificationInertia.lean] used Ideal.IsPrime.mul_mem_pow which is defined in [Mathlib/RingTheory/DedekindDomain/Ideal.lean]. Changing the order of operation forced me to add the symmetric lemma Ideal.IsPrime.mem_pow_mul.
  • the docstring for Cauchy condensation test in [Mathlib/Analysis/PSeries.lean] was mathematically incorrect, I added the mention that the function is antitone.
Diff
@@ -298,12 +298,12 @@ instance hasNPowNat : Pow (CentroidHom α) ℕ :=
       map_mul_left' := fun a b ↦ by
         induction' n with n ih
         · exact rfl
-        · rw [pow_succ]
+        · rw [pow_succ']
           exact (congr_arg f.toEnd ih).trans (f.map_mul_left' _ _)
       map_mul_right' := fun a b ↦ by
         induction' n with n ih
         · exact rfl
-        · rw [pow_succ]
+        · rw [pow_succ']
           exact (congr_arg f.toEnd ih).trans (f.map_mul_right' _ _)
         }⟩
 #align centroid_hom.has_npow_nat CentroidHom.hasNPowNat
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
@@ -469,7 +469,6 @@ Let `α` be an algebra over `R`, such that the canonical ring homomorphism of `R
 -/
 
 variable {R : Type*}
-
 variable [CommSemiring R]
 variable [Module R α] [SMulCommClass R α α] [IsScalarTower R α α]
 
chore: move Mathlib to v4.7.0-rc1 (#11162)

This is a very large PR, but it has been reviewed piecemeal already in PRs to the bump/v4.7.0 branch as we update to intermediate nightlies.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: damiano <adomani@gmail.com>

Diff
@@ -294,19 +294,18 @@ instance isScalarTowerRight : IsScalarTower M (CentroidHom α) (CentroidHom α)
 
 instance hasNPowNat : Pow (CentroidHom α) ℕ :=
   ⟨fun f n ↦
-    { (f.toEnd ^ n : AddMonoid.End α) with
+    { toAddMonoidHom := (f.toEnd ^ n : AddMonoid.End α)
       map_mul_left' := fun a b ↦ by
         induction' n with n ih
         · exact rfl
-        · simp
-          rw [pow_succ]
+        · rw [pow_succ]
           exact (congr_arg f.toEnd ih).trans (f.map_mul_left' _ _)
       map_mul_right' := fun a b ↦ by
         induction' n with n ih
         · exact rfl
-        · simp
-          rw [pow_succ]
-          exact (congr_arg f.toEnd ih).trans (f.map_mul_right' _ _) }⟩
+        · rw [pow_succ]
+          exact (congr_arg f.toEnd ih).trans (f.map_mul_right' _ _)
+        }⟩
 #align centroid_hom.has_npow_nat CentroidHom.hasNPowNat
 
 @[simp, norm_cast]
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
@@ -61,8 +61,8 @@ attribute [nolint docBlame] CentroidHom.toAddMonoidHom
 /-- `CentroidHomClass F α` states that `F` is a type of centroid homomorphisms.
 
 You should extend this class when you extend `CentroidHom`. -/
-class CentroidHomClass (F : Type*) (α : outParam <| Type*) [NonUnitalNonAssocSemiring α] extends
-  AddMonoidHomClass F α α where
+class CentroidHomClass (F α : Type*) [NonUnitalNonAssocSemiring α] [FunLike F α α] extends
+  AddMonoidHomClass F α α : Prop where
   /-- Commutativity of centroid homomorphims with left multiplication. -/
   map_mul_left (f : F) (a b : α) : f (a * b) = a * f b
   /-- Commutativity of centroid homomorphims with right multiplication. -/
@@ -72,7 +72,8 @@ class CentroidHomClass (F : Type*) (α : outParam <| Type*) [NonUnitalNonAssocSe
 
 export CentroidHomClass (map_mul_left map_mul_right)
 
-instance [NonUnitalNonAssocSemiring α] [CentroidHomClass F α] : CoeTC F (CentroidHom α) :=
+instance [NonUnitalNonAssocSemiring α] [FunLike F α α] [CentroidHomClass F α] :
+    CoeTC F (CentroidHom α) :=
   ⟨fun f ↦
     { (f : α →+ α) with
       toFun := f
@@ -87,13 +88,15 @@ section NonUnitalNonAssocSemiring
 
 variable [NonUnitalNonAssocSemiring α]
 
-instance : CentroidHomClass (CentroidHom α) α where
+instance : FunLike (CentroidHom α) α α where
   coe f := f.toFun
   coe_injective' f g h := by
     cases f
     cases g
     congr with x
     exact congrFun h x
+
+instance : CentroidHomClass (CentroidHom α) α where
   map_zero f := f.map_zero'
   map_add f := f.map_add'
   map_mul_left f := f.map_mul_left'
feat(Algebra/Ring/CentroidHom): central iff mul op commute (#8663)

Show that an element of a commutative semiring is central iff the corresponding multiplication operator commutes with all multiplication operators

Co-authored-by: Jireh Loreaux <loreaujy@gmail.com> Co-authored-by: Christopher Hoskin <mans0954@users.noreply.github.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -81,7 +81,6 @@ instance [NonUnitalNonAssocSemiring α] [CentroidHomClass F α] : CoeTC F (Centr
 
 /-! ### Centroid homomorphisms -/
 
-
 namespace CentroidHom
 
 section NonUnitalNonAssocSemiring
@@ -514,18 +513,19 @@ def centerToCentroid : NonUnitalSubsemiring.center α →ₙ+* CentroidHom α wh
     ext a
     exact (((Set.mem_center_iff _).mp z₁.prop).left_assoc z₂ a).symm
 
-lemma centerToCentroid_apply (z : { x // x ∈ NonUnitalSubsemiring.center α }) (a : α) :
+lemma centerToCentroid_apply (z : NonUnitalSubsemiring.center α) (a : α) :
     (centerToCentroid z) a = z * a := rfl
 
-lemma center_iff_op_centroid (a : α) :
-    a ∈ NonUnitalSubsemiring.center α ↔ L a = R a ∧ (L a) ∈ Set.range CentroidHom.toEnd := by
+lemma _root_.NonUnitalNonAssocSemiring.mem_center_iff (a : α) :
+    a ∈ NonUnitalSubsemiring.center α ↔ R a = L a ∧ (L a) ∈ RingHom.rangeS (toEndRingHom α) := by
   constructor
-  · exact fun ha ↦ ⟨AddMonoidHom.ext <| IsMulCentral.comm ha, ⟨centerToCentroid ⟨a, ha⟩, rfl⟩⟩
+  · exact fun ha ↦ ⟨AddMonoidHom.ext <| fun _ => (IsMulCentral.comm ha _).symm,
+      ⟨centerToCentroid ⟨a, ha⟩, rfl⟩⟩
   · rintro ⟨hc, ⟨T, hT⟩⟩
     have e1 (d : α) : T d = a * d := congr($hT d)
-    have e2 (d : α) : T d = d * a := congr($(hT.trans hc) d)
+    have e2 (d : α) : T d = d * a := congr($(hT.trans hc.symm) d)
     constructor
-    case comm => exact (congr($hc ·))
+    case comm => exact (congr($hc.symm ·))
     case left_assoc => simpa [e1] using (map_mul_right T · ·)
     case mid_assoc => exact fun b c ↦ by simpa [e1 c, e2 b] using
       (map_mul_right T b c).symm.trans <| map_mul_left T b c
@@ -533,12 +533,29 @@ lemma center_iff_op_centroid (a : α) :
 
 end NonUnitalNonAssocSemiring
 
+section NonUnitalNonAssocCommSemiring
+
+variable [NonUnitalNonAssocCommSemiring α]
+
+/-
+Left and right multiplication coincide as α is commutative
+-/
+local notation "L" => AddMonoid.End.mulLeft
+
+lemma _root_.NonUnitalNonAssocCommSemiring.mem_center_iff (a : α) :
+    a ∈ NonUnitalSubsemiring.center α ↔ ∀ b : α, Commute (L b) (L a) := by
+  rw [NonUnitalNonAssocSemiring.mem_center_iff, CentroidHom.centroid_eq_centralizer_mulLeftRight,
+    Subsemiring.mem_centralizer_iff, AddMonoid.End.mulRight_eq_mulLeft, Set.union_self]
+  aesop
+
+end NonUnitalNonAssocCommSemiring
+
 section NonAssocSemiring
 
 variable [NonAssocSemiring α]
 
 /-- The canonical isomorphism from the center of a (non-associative) semiring onto its centroid. -/
-def centerIsoCentroid : NonUnitalSubsemiring.center α ≃+* CentroidHom α :=
+def centerIsoCentroid : Subsemiring.center α ≃+* CentroidHom α :=
   { centerToCentroid with
     invFun := fun T ↦
       ⟨T 1, by refine ⟨?_, ?_, ?_, ?_⟩; all_goals simp [← map_mul_left, ← map_mul_right]⟩
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
@@ -23,7 +23,7 @@ $$
 In mathlib we call elements of the centroid "centroid homomorphisms" (`CentroidHom`) in keeping
 with `AddMonoidHom` etc.
 
-We use the `FunLike` design, so each type of morphisms has a companion typeclass which is meant to
+We use the `DFunLike` design, so each type of morphisms has a companion typeclass which is meant to
 be satisfied by itself and all stricter types.
 
 ## Types of morphisms
@@ -101,9 +101,9 @@ instance : CentroidHomClass (CentroidHom α) α where
   map_mul_right f := f.map_mul_right'
 
 
-/-- Helper instance for when there's too many metavariables to apply `FunLike.CoeFun`
+/-- Helper instance for when there's too many metavariables to apply `DFunLike.CoeFun`
 directly. -/
-/- Porting note: Lean gave me `unknown constant 'FunLike.CoeFun'` and says `CoeFun` is a type
+/- Porting note: Lean gave me `unknown constant 'DFunLike.CoeFun'` and says `CoeFun` is a type
 mismatch, so I used `library_search`. -/
 instance : CoeFun (CentroidHom α) fun _ ↦ α → α :=
   inferInstanceAs (CoeFun (CentroidHom α) fun _ ↦ α → α)
@@ -115,7 +115,7 @@ theorem toFun_eq_coe {f : CentroidHom α} : f.toFun = f := rfl
 
 @[ext]
 theorem ext {f g : CentroidHom α} (h : ∀ a, f a = g a) : f = g :=
-  FunLike.ext f g h
+  DFunLike.ext f g h
 #align centroid_hom.ext CentroidHom.ext
 
 @[simp, norm_cast]
@@ -130,7 +130,7 @@ theorem toAddMonoidHom_eq_coe (f : CentroidHom α) : f.toAddMonoidHom = f :=
 
 theorem coe_toAddMonoidHom_injective : Injective ((↑) : CentroidHom α → α →+ α) :=
   fun _f _g h => ext fun a ↦
-    haveI := FunLike.congr_fun h a
+    haveI := DFunLike.congr_fun h a
     this
 #align centroid_hom.coe_to_add_monoid_hom_injective CentroidHom.coe_toAddMonoidHom_injective
 
@@ -158,7 +158,7 @@ theorem coe_copy (f : CentroidHom α) (f' : α → α) (h : f' = f) : ⇑(f.copy
 #align centroid_hom.coe_copy CentroidHom.coe_copy
 
 theorem copy_eq (f : CentroidHom α) (f' : α → α) (h : f' = f) : f.copy f' h = f :=
-  FunLike.ext' h
+  DFunLike.ext' h
 #align centroid_hom.copy_eq CentroidHom.copy_eq
 
 variable (α)
@@ -231,7 +231,7 @@ theorem id_comp (f : CentroidHom α) : (CentroidHom.id α).comp f = f :=
 @[simp]
 theorem cancel_right {g₁ g₂ f : CentroidHom α} (hf : Surjective f) :
     g₁.comp f = g₂.comp f ↔ g₁ = g₂ :=
-  ⟨fun h ↦ ext <| hf.forall.2 <| FunLike.ext_iff.1 h, fun a ↦ congrFun (congrArg comp a) f⟩
+  ⟨fun h ↦ ext <| hf.forall.2 <| DFunLike.ext_iff.1 h, fun a ↦ congrFun (congrArg comp a) f⟩
 #align centroid_hom.cancel_right CentroidHom.cancel_right
 
 @[simp]
chore: Move scalar compatibility instance for and on rings to their own files (#9455)

Part of #9411.

Also corrects some instance names in the docstrings.

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -5,6 +5,7 @@ Authors: Yaël Dillies, Christopher Hoskin
 -/
 import Mathlib.Algebra.Algebra.Basic
 import Mathlib.Algebra.Module.Hom
+import Mathlib.GroupTheory.GroupAction.Ring
 import Mathlib.RingTheory.NonUnitalSubsemiring.Basic
 import Mathlib.RingTheory.Subsemiring.Basic
 
chore(*): drop $/<| before fun (#9361)

Subset of #9319

Diff
@@ -278,13 +278,13 @@ instance instSMul : SMul M (CentroidHom α) where
 #noalign centroid_hom.has_nsmul
 
 instance [SMul M N] [IsScalarTower M N α] : IsScalarTower M N (CentroidHom α) where
-  smul_assoc _ _ _ := ext <| fun _ => smul_assoc _ _ _
+  smul_assoc _ _ _ := ext fun _ => smul_assoc _ _ _
 
 instance [SMulCommClass M N α] : SMulCommClass M N (CentroidHom α) where
-  smul_comm _ _ _ := ext <| fun _ => smul_comm _ _ _
+  smul_comm _ _ _ := ext fun _ => smul_comm _ _ _
 
 instance [DistribMulAction Mᵐᵒᵖ α] [IsCentralScalar M α] : IsCentralScalar M (CentroidHom α) where
-  op_smul_eq_smul _ _ := ext <| fun _ => op_smul_eq_smul _ _
+  op_smul_eq_smul _ _ := ext fun _ => op_smul_eq_smul _ _
 
 instance isScalarTowerRight : IsScalarTower M (CentroidHom α) (CentroidHom α) where
   smul_assoc _ _ _ := rfl
feat(Algebra/Ring/CentroidHom): CentroidHom and algebras (#8699)

Explore the relationship between the Centroid of a ring and algebra:

  • A a non-unital, non-associative semiring α is an algebra over the Semiring CentroidHom α
  • When the non-unital, non-associative semiring α is an algebra over the commutative semiring R, then CentroidHom α is a ring over R, provided the range of the natural ring homomorphism from R into CentroidHom α lies in the center of CentroidHom α.

Co-authored-by: Christopher Hoskin <mans0954@users.noreply.github.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -3,6 +3,7 @@ Copyright (c) 2022 Yaël Dillies. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies, Christopher Hoskin
 -/
+import Mathlib.Algebra.Algebra.Basic
 import Mathlib.Algebra.Module.Hom
 import Mathlib.RingTheory.NonUnitalSubsemiring.Basic
 import Mathlib.RingTheory.Subsemiring.Basic
@@ -432,6 +433,55 @@ instance : DistribMulAction M (CentroidHom α) :=
 instance : Module R (CentroidHom α) :=
   toEnd_injective.module R (toEndRingHom α).toAddMonoidHom toEnd_smul
 
+/-!
+The following instances show that `α` is a non-unital and non-associative algebra over
+`CentroidHom α`.
+-/
+
+/-- The tautological action by `CentroidHom α` on `α`.
+
+This generalizes `Function.End.applyMulAction`. -/
+instance applyModule : Module (CentroidHom α) α where
+  smul T a := T a
+  add_smul _ _ _ := rfl
+  zero_smul _ := rfl
+  one_smul _ := rfl
+  mul_smul _ _ _:= rfl
+  smul_zero := map_zero
+  smul_add := map_add
+
+@[simp]
+lemma smul_def (T : CentroidHom α) (a : α) : T • a = T a := rfl
+
+instance : SMulCommClass (CentroidHom α) α α where
+  smul_comm _ _ _ := map_mul_left _ _ _
+
+instance : SMulCommClass α (CentroidHom α) α := SMulCommClass.symm _ _ _
+
+instance : IsScalarTower (CentroidHom α) α α where
+  smul_assoc _ _ _ := (map_mul_right _ _ _).symm
+
+/-!
+Let `α` be an algebra over `R`, such that the canonical ring homomorphism of `R` into
+`CentroidHom α` lies in the center of `CentroidHom α`. Then `CentroidHom α` is an algebra over `R`
+-/
+
+variable {R : Type*}
+
+variable [CommSemiring R]
+variable [Module R α] [SMulCommClass R α α] [IsScalarTower R α α]
+
+/-- The natural ring homomorphism from `R` into `CentroidHom α`.
+
+This is a stronger version of `Module.toAddMonoidEnd`. -/
+@[simps! apply_toFun]
+def _root_.Module.toCentroidHom : R →+* CentroidHom α := RingHom.smulOneHom
+
+open Module in
+/-- `CentroidHom α` as an algebra over `R`. -/
+example (h : ∀ (r : R) (T : CentroidHom α), toCentroidHom r * T = T * toCentroidHom r) :
+    Algebra R (CentroidHom α) := toCentroidHom.toAlgebra' h
+
 local notation "L" => AddMonoid.End.mulLeft
 local notation "R" => AddMonoid.End.mulRight
 
chore: Nsmul -> NSMul, Zpow -> ZPow, etc (#9067)

Normalising to naming convention rule number 6.

Diff
@@ -288,7 +288,7 @@ instance [DistribMulAction Mᵐᵒᵖ α] [IsCentralScalar M α] : IsCentralScal
 instance isScalarTowerRight : IsScalarTower M (CentroidHom α) (CentroidHom α) where
   smul_assoc _ _ _ := rfl
 
-instance hasNpowNat : Pow (CentroidHom α) ℕ :=
+instance hasNPowNat : Pow (CentroidHom α) ℕ :=
   ⟨fun f n ↦
     { (f.toEnd ^ n : AddMonoid.End α) with
       map_mul_left' := fun a b ↦ by
@@ -303,7 +303,7 @@ instance hasNpowNat : Pow (CentroidHom α) ℕ :=
         · simp
           rw [pow_succ]
           exact (congr_arg f.toEnd ih).trans (f.map_mul_right' _ _) }⟩
-#align centroid_hom.has_npow_nat CentroidHom.hasNpowNat
+#align centroid_hom.has_npow_nat CentroidHom.hasNPowNat
 
 @[simp, norm_cast]
 theorem coe_zero : ⇑(0 : CentroidHom α) = 0 :=
feat(Algebra/Ring/CentroidHom): The centroid is the centralizer of multiplication operators (#8581)

The centroid of a non-associative, non-unital algebra coincides with the centralizer of the left and right multiplication operators.

Co-authored-by: Christopher Hoskin <mans0954@users.noreply.github.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -3,10 +3,9 @@ Copyright (c) 2022 Yaël Dillies. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies, Christopher Hoskin
 -/
-import Mathlib.Algebra.Group.Hom.Instances
-import Mathlib.Algebra.GroupPower.Lemmas
 import Mathlib.Algebra.Module.Hom
 import Mathlib.RingTheory.NonUnitalSubsemiring.Basic
+import Mathlib.RingTheory.Subsemiring.Basic
 
 #align_import algebra.hom.centroid from "leanprover-community/mathlib"@"6cb77a8eaff0ddd100e87b1591c6d3ad319514ff"
 
@@ -436,6 +435,18 @@ instance : Module R (CentroidHom α) :=
 local notation "L" => AddMonoid.End.mulLeft
 local notation "R" => AddMonoid.End.mulRight
 
+lemma centroid_eq_centralizer_mulLeftRight :
+    RingHom.rangeS (toEndRingHom α) = Subsemiring.centralizer (Set.range L ∪ Set.range R) := by
+  ext T
+  refine ⟨?_, fun h ↦ ?_⟩
+  · rintro ⟨f, rfl⟩ S (⟨a, rfl⟩ | ⟨b, rfl⟩)
+    · exact AddMonoidHom.ext fun b ↦ (map_mul_left f a b).symm
+    · exact AddMonoidHom.ext fun a ↦ (map_mul_right f a b).symm
+  · rw [Subsemiring.mem_centralizer_iff] at h
+    refine ⟨⟨T, fun a b ↦ ?_, fun a b ↦ ?_⟩, rfl⟩
+    · exact congr($(h (L a) (.inl ⟨a, rfl⟩)) b).symm
+    · exact congr($(h (R b) (.inr ⟨b, rfl⟩)) a).symm
+
 /-- The canonical homomorphism from the center into the centroid -/
 def centerToCentroid : NonUnitalSubsemiring.center α →ₙ+* CentroidHom α where
   toFun z :=
feat(Algebra/Ring/CentroidHom): missing scalar instances (#8742)

This generalizes the ℕ and ℤ actions to arbitrary monoids, and provides various compatibility instances.

The simpNF annotations are no longer needed, as the the smul lemmas are now about general actions, not just nsmul and zsmul which have different simp-normal forms.

Co-authored-by: Christopher Hoskin <christopher.hoskin@overleaf.com> Co-authored-by: Christopher Hoskin <christopher.hoskin@gmail.com>

Diff
@@ -5,6 +5,7 @@ Authors: Yaël Dillies, Christopher Hoskin
 -/
 import Mathlib.Algebra.Group.Hom.Instances
 import Mathlib.Algebra.GroupPower.Lemmas
+import Mathlib.Algebra.Module.Hom
 import Mathlib.RingTheory.NonUnitalSubsemiring.Basic
 
 #align_import algebra.hom.centroid from "leanprover-community/mathlib"@"6cb77a8eaff0ddd100e87b1591c6d3ad319514ff"
@@ -44,7 +45,7 @@ centroid
 
 open Function
 
-variable {F α : Type*}
+variable {F M N R α : Type*}
 
 /-- The type of centroid homomorphisms from `α` to `α`. -/
 structure CentroidHom (α : Type*) [NonUnitalNonAssocSemiring α] extends α →+ α where
@@ -259,16 +260,34 @@ instance : Add (CentroidHom α) :=
 instance : Mul (CentroidHom α) :=
   ⟨comp⟩
 
-instance hasNsmul : SMul ℕ (CentroidHom α) :=
-  ⟨fun n f ↦
-    { ((SMul.smul n f) : α →+ α) with
-        map_mul_left' := fun a b ↦ by
-          change n • f (a * b) = a * n • f b
-          rw [map_mul_left f, ← mul_smul_comm]
-        map_mul_right' := fun a b ↦ by
-          change n • f (a * b) = n • f a * b
-          rw [map_mul_right f, ← smul_mul_assoc] }⟩
-#align centroid_hom.has_nsmul CentroidHom.hasNsmul
+variable [Monoid M] [Monoid N] [Semiring R]
+variable [DistribMulAction M α] [SMulCommClass M α α] [IsScalarTower M α α]
+variable [DistribMulAction N α] [SMulCommClass N α α] [IsScalarTower N α α]
+variable [Module R α] [SMulCommClass R α α] [IsScalarTower R α α]
+
+instance instSMul : SMul M (CentroidHom α) where
+  smul n f :=
+    { (n • f : α →+ α) with
+      map_mul_left' := fun a b ↦ by
+        change n • f (a * b) = a * n • f b
+        rw [map_mul_left f, ← mul_smul_comm]
+      map_mul_right' := fun a b ↦ by
+        change n • f (a * b) = n • f a * b
+        rw [map_mul_right f, ← smul_mul_assoc] }
+
+#noalign centroid_hom.has_nsmul
+
+instance [SMul M N] [IsScalarTower M N α] : IsScalarTower M N (CentroidHom α) where
+  smul_assoc _ _ _ := ext <| fun _ => smul_assoc _ _ _
+
+instance [SMulCommClass M N α] : SMulCommClass M N (CentroidHom α) where
+  smul_comm _ _ _ := ext <| fun _ => smul_comm _ _ _
+
+instance [DistribMulAction Mᵐᵒᵖ α] [IsCentralScalar M α] : IsCentralScalar M (CentroidHom α) where
+  op_smul_eq_smul _ _ := ext <| fun _ => op_smul_eq_smul _ _
+
+instance isScalarTowerRight : IsScalarTower M (CentroidHom α) (CentroidHom α) where
+  smul_assoc _ _ _ := rfl
 
 instance hasNpowNat : Pow (CentroidHom α) ℕ :=
   ⟨fun f n ↦
@@ -307,11 +326,10 @@ theorem coe_mul (f g : CentroidHom α) : ⇑(f * g) = f ∘ g :=
   rfl
 #align centroid_hom.coe_mul CentroidHom.coe_mul
 
--- Eligible for `dsimp`
-@[simp, norm_cast, nolint simpNF]
-theorem coe_nsmul (f : CentroidHom α) (n : ℕ) : ⇑(n • f) = n • (⇑f) :=
+@[simp, norm_cast]
+theorem coe_smul (n : M) (f : CentroidHom α) : ⇑(n • f) = n • ⇑f :=
   rfl
-#align centroid_hom.coe_nsmul CentroidHom.coe_nsmul
+#align centroid_hom.coe_nsmul CentroidHom.coe_smul
 
 @[simp]
 theorem zero_apply (a : α) : (0 : CentroidHom α) a = 0 :=
@@ -333,11 +351,12 @@ theorem mul_apply (f g : CentroidHom α) (a : α) : (f * g) a = f (g a) :=
   rfl
 #align centroid_hom.mul_apply CentroidHom.mul_apply
 
--- Eligible for `dsimp`
-@[simp, nolint simpNF]
-theorem nsmul_apply (f : CentroidHom α) (n : ℕ) (a : α) : (n • f) a = n • f a :=
+@[simp]
+theorem smul_apply (n : M) (f : CentroidHom α) (a : α) : (n • f) a = n • f a :=
   rfl
-#align centroid_hom.nsmul_apply CentroidHom.nsmul_apply
+#align centroid_hom.nsmul_apply CentroidHom.smul_apply
+
+example : SMul ℕ (CentroidHom α) := instSMul
 
 @[simp]
 theorem toEnd_zero : (0 : CentroidHom α).toEnd = 0 :=
@@ -349,14 +368,12 @@ theorem toEnd_add (x y : CentroidHom α) : (x + y).toEnd = x.toEnd + y.toEnd :=
   rfl
 #align centroid_hom.to_End_add CentroidHom.toEnd_add
 
-theorem toEnd_nsmul (x : CentroidHom α) (n : ℕ) : (n • x).toEnd = n • x.toEnd :=
+theorem toEnd_smul (m : M) (x : CentroidHom α) : (m • x).toEnd = m • x.toEnd :=
   rfl
-#align centroid_hom.to_End_nsmul CentroidHom.toEnd_nsmul
+#align centroid_hom.to_End_nsmul CentroidHom.toEnd_smul
 
--- Porting note: I guess the porter has naming issues still
--- cf.`add_monoid_hom.add_comm_monoid`
 instance : AddCommMonoid (CentroidHom α) :=
-  coe_toAddMonoidHom_injective.addCommMonoid _ toEnd_zero toEnd_add toEnd_nsmul
+  coe_toAddMonoidHom_injective.addCommMonoid _ toEnd_zero toEnd_add (swap toEnd_smul)
 
 instance : NatCast (CentroidHom α) where natCast n := n • (1 : CentroidHom α)
 
@@ -392,14 +409,30 @@ theorem toEnd_nat_cast (n : ℕ) : (n : CentroidHom α).toEnd = ↑n :=
 
 -- cf `add_monoid.End.semiring`
 instance : Semiring (CentroidHom α) :=
-  toEnd_injective.semiring _ toEnd_zero toEnd_one toEnd_add toEnd_mul toEnd_nsmul toEnd_pow
+  toEnd_injective.semiring _ toEnd_zero toEnd_one toEnd_add toEnd_mul (swap toEnd_smul) toEnd_pow
     toEnd_nat_cast
 
+variable (α) in
+/-- `CentroidHom.toEnd` as a `RingHom`. -/
+@[simps]
+def toEndRingHom : CentroidHom α →+* AddMonoid.End α where
+  toFun := toEnd
+  map_zero' := toEnd_zero
+  map_one' := toEnd_one
+  map_add' := toEnd_add
+  map_mul' := toEnd_mul
+
 theorem comp_mul_comm (T S : CentroidHom α) (a b : α) : (T ∘ S) (a * b) = (S ∘ T) (a * b) := by
   simp only [Function.comp_apply]
   rw [map_mul_right, map_mul_left, ← map_mul_right, ← map_mul_left]
 #align centroid_hom.comp_mul_comm CentroidHom.comp_mul_comm
 
+instance : DistribMulAction M (CentroidHom α) :=
+  toEnd_injective.distribMulAction (toEndRingHom α).toAddMonoidHom toEnd_smul
+
+instance : Module R (CentroidHom α) :=
+  toEnd_injective.module R (toEndRingHom α).toAddMonoidHom toEnd_smul
+
 local notation "L" => AddMonoid.End.mulLeft
 local notation "R" => AddMonoid.End.mulRight
 
@@ -471,22 +504,13 @@ instance : Sub (CentroidHom α) :=
   ⟨fun f g ↦
     { (f - g : α →+ α) with
       map_mul_left' := fun a b ↦ by
-        change (FunLike.coe f - FunLike.coe g) (a * b) = a * (FunLike.coe f - FunLike.coe g) b
+        change (⇑f - ⇑g) (a * b) = a * (⇑f - ⇑g) b
         simp [map_mul_left, mul_sub]
       map_mul_right' := fun a b ↦ by
-        change (FunLike.coe f - FunLike.coe g) (a * b) = ((FunLike.coe f - FunLike.coe g) a) * b
+        change (⇑f - ⇑g) (a * b) = ((⇑f - ⇑g) a) * b
         simp [map_mul_right, sub_mul] }⟩
 
-instance hasZsmul : SMul ℤ (CentroidHom α) :=
-  ⟨fun n f ↦
-    { (SMul.smul n f : α →+ α) with
-      map_mul_left' := fun a b ↦ by
-        change n • f (a * b) = a * n • f b
-        rw [map_mul_left f, ← mul_smul_comm]
-      map_mul_right' := fun a b ↦ by
-        change n • f (a * b) = n • f a * b
-        rw [map_mul_right f, ← smul_mul_assoc] }⟩
-#align centroid_hom.has_zsmul CentroidHom.hasZsmul
+#noalign centroid_hom.has_zsmul
 
 instance : IntCast (CentroidHom α) where intCast z := z • (1 : CentroidHom α)
 
@@ -510,12 +534,11 @@ theorem toEnd_sub (x y : CentroidHom α) : (x - y).toEnd = x.toEnd - y.toEnd :=
   rfl
 #align centroid_hom.to_End_sub CentroidHom.toEnd_sub
 
-theorem toEnd_zsmul (x : CentroidHom α) (n : ℤ) : (n • x).toEnd = n • x.toEnd :=
-  rfl
-#align centroid_hom.to_End_zsmul CentroidHom.toEnd_zsmul
+#align centroid_hom.to_End_zsmul CentroidHom.toEnd_smul
 
 instance : AddCommGroup (CentroidHom α) :=
-  toEnd_injective.addCommGroup _ toEnd_zero toEnd_add toEnd_neg toEnd_sub toEnd_nsmul toEnd_zsmul
+  toEnd_injective.addCommGroup _
+    toEnd_zero toEnd_add toEnd_neg toEnd_sub (swap toEnd_smul) (swap toEnd_smul)
 
 @[simp, norm_cast]
 theorem coe_neg (f : CentroidHom α) : ⇑(-f) = -f :=
@@ -544,7 +567,7 @@ theorem toEnd_int_cast (z : ℤ) : (z : CentroidHom α).toEnd = ↑z :=
 
 instance instRing : Ring (CentroidHom α) :=
   toEnd_injective.ring _ toEnd_zero toEnd_one toEnd_add toEnd_mul toEnd_neg toEnd_sub
-    toEnd_nsmul toEnd_zsmul toEnd_pow toEnd_nat_cast toEnd_int_cast
+    (swap toEnd_smul) (swap toEnd_smul) toEnd_pow toEnd_nat_cast toEnd_int_cast
 
 end NonUnitalNonAssocRing
 
feat(Algebra/Hom/Centroid) : Homomorphism from centre into centroid (#7843)

Defines the natural homomorphism from the centre of a non-unital, non-associative semiring into the centroid of the semiring. When the semiring is unital, the centre and the centroid are isomorphic.

Co-authored-by: Christopher Hoskin <christopher.hoskin@gmail.com> Co-authored-by: Christopher Hoskin <mans0954@users.noreply.github.com> Co-authored-by: Christopher Hoskin <christopher.hoskin@overleaf.com>

Diff
@@ -5,6 +5,7 @@ Authors: Yaël Dillies, Christopher Hoskin
 -/
 import Mathlib.Algebra.Group.Hom.Instances
 import Mathlib.Algebra.GroupPower.Lemmas
+import Mathlib.RingTheory.NonUnitalSubsemiring.Basic
 
 #align_import algebra.hom.centroid from "leanprover-community/mathlib"@"6cb77a8eaff0ddd100e87b1591c6d3ad319514ff"
 
@@ -399,8 +400,58 @@ theorem comp_mul_comm (T S : CentroidHom α) (a b : α) : (T ∘ S) (a * b) = (S
   rw [map_mul_right, map_mul_left, ← map_mul_right, ← map_mul_left]
 #align centroid_hom.comp_mul_comm CentroidHom.comp_mul_comm
 
+local notation "L" => AddMonoid.End.mulLeft
+local notation "R" => AddMonoid.End.mulRight
+
+/-- The canonical homomorphism from the center into the centroid -/
+def centerToCentroid : NonUnitalSubsemiring.center α →ₙ+* CentroidHom α where
+  toFun z :=
+    { L (z : α) with
+      map_mul_left' := ((Set.mem_center_iff _).mp z.prop).left_comm
+      map_mul_right' := ((Set.mem_center_iff _).mp z.prop).left_assoc }
+  map_zero' := by
+    simp only [ZeroMemClass.coe_zero, map_zero]
+    exact rfl
+  map_add' := fun _ _ => by
+    simp only [AddSubmonoid.coe_add, NonUnitalSubsemiring.coe_toAddSubmonoid, map_add]
+    exact rfl
+  map_mul' := fun z₁ z₂ => by
+    ext a
+    exact (((Set.mem_center_iff _).mp z₁.prop).left_assoc z₂ a).symm
+
+lemma centerToCentroid_apply (z : { x // x ∈ NonUnitalSubsemiring.center α }) (a : α) :
+    (centerToCentroid z) a = z * a := rfl
+
+lemma center_iff_op_centroid (a : α) :
+    a ∈ NonUnitalSubsemiring.center α ↔ L a = R a ∧ (L a) ∈ Set.range CentroidHom.toEnd := by
+  constructor
+  · exact fun ha ↦ ⟨AddMonoidHom.ext <| IsMulCentral.comm ha, ⟨centerToCentroid ⟨a, ha⟩, rfl⟩⟩
+  · rintro ⟨hc, ⟨T, hT⟩⟩
+    have e1 (d : α) : T d = a * d := congr($hT d)
+    have e2 (d : α) : T d = d * a := congr($(hT.trans hc) d)
+    constructor
+    case comm => exact (congr($hc ·))
+    case left_assoc => simpa [e1] using (map_mul_right T · ·)
+    case mid_assoc => exact fun b c ↦ by simpa [e1 c, e2 b] using
+      (map_mul_right T b c).symm.trans <| map_mul_left T b c
+    case right_assoc => simpa [e2] using (map_mul_left T · ·)
+
 end NonUnitalNonAssocSemiring
 
+section NonAssocSemiring
+
+variable [NonAssocSemiring α]
+
+/-- The canonical isomorphism from the center of a (non-associative) semiring onto its centroid. -/
+def centerIsoCentroid : NonUnitalSubsemiring.center α ≃+* CentroidHom α :=
+  { centerToCentroid with
+    invFun := fun T ↦
+      ⟨T 1, by refine ⟨?_, ?_, ?_, ?_⟩; all_goals simp [← map_mul_left, ← map_mul_right]⟩
+    left_inv := fun z ↦ Subtype.ext <| by simp [centerToCentroid_apply]
+    right_inv := fun T ↦ CentroidHom.ext <| by simp [centerToCentroid_apply, ← map_mul_right] }
+
+end NonAssocSemiring
+
 section NonUnitalNonAssocRing
 
 variable [NonUnitalNonAssocRing α]
refactor(Algebra/Hom): transpose Hom and file name (#8095)

I believe the file defining a type of morphisms belongs alongside the file defining the structure this morphism works on. So I would like to reorganize the files in the Mathlib.Algebra.Hom folder so that e.g. Mathlib.Algebra.Hom.Ring becomes Mathlib.Algebra.Ring.Hom and Mathlib.Algebra.Hom.NonUnitalAlg becomes Mathlib.Algebra.Algebra.NonUnitalHom.

While fixing the imports I went ahead and sorted them for good luck.

The full list of changes is: renamed: Mathlib/Algebra/Hom/NonUnitalAlg.lean -> Mathlib/Algebra/Algebra/NonUnitalHom.lean renamed: Mathlib/Algebra/Hom/Aut.lean -> Mathlib/Algebra/Group/Aut.lean renamed: Mathlib/Algebra/Hom/Commute.lean -> Mathlib/Algebra/Group/Commute/Hom.lean renamed: Mathlib/Algebra/Hom/Embedding.lean -> Mathlib/Algebra/Group/Embedding.lean renamed: Mathlib/Algebra/Hom/Equiv/Basic.lean -> Mathlib/Algebra/Group/Equiv/Basic.lean renamed: Mathlib/Algebra/Hom/Equiv/TypeTags.lean -> Mathlib/Algebra/Group/Equiv/TypeTags.lean renamed: Mathlib/Algebra/Hom/Equiv/Units/Basic.lean -> Mathlib/Algebra/Group/Units/Equiv.lean renamed: Mathlib/Algebra/Hom/Equiv/Units/GroupWithZero.lean -> Mathlib/Algebra/GroupWithZero/Units/Equiv.lean renamed: Mathlib/Algebra/Hom/Freiman.lean -> Mathlib/Algebra/Group/Freiman.lean renamed: Mathlib/Algebra/Hom/Group/Basic.lean -> Mathlib/Algebra/Group/Hom/Basic.lean renamed: Mathlib/Algebra/Hom/Group/Defs.lean -> Mathlib/Algebra/Group/Hom/Defs.lean renamed: Mathlib/Algebra/Hom/GroupAction.lean -> Mathlib/GroupTheory/GroupAction/Hom.lean renamed: Mathlib/Algebra/Hom/GroupInstances.lean -> Mathlib/Algebra/Group/Hom/Instances.lean renamed: Mathlib/Algebra/Hom/Iterate.lean -> Mathlib/Algebra/GroupPower/IterateHom.lean renamed: Mathlib/Algebra/Hom/Centroid.lean -> Mathlib/Algebra/Ring/CentroidHom.lean renamed: Mathlib/Algebra/Hom/Ring/Basic.lean -> Mathlib/Algebra/Ring/Hom/Basic.lean renamed: Mathlib/Algebra/Hom/Ring/Defs.lean -> Mathlib/Algebra/Ring/Hom/Defs.lean renamed: Mathlib/Algebra/Hom/Units.lean -> Mathlib/Algebra/Group/Units/Hom.lean

Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Reorganizing.20.60Mathlib.2EAlgebra.2EHom.60

Diff
@@ -3,8 +3,8 @@ Copyright (c) 2022 Yaël Dillies. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies, Christopher Hoskin
 -/
+import Mathlib.Algebra.Group.Hom.Instances
 import Mathlib.Algebra.GroupPower.Lemmas
-import Mathlib.Algebra.Hom.GroupInstances
 
 #align_import algebra.hom.centroid from "leanprover-community/mathlib"@"6cb77a8eaff0ddd100e87b1591c6d3ad319514ff"
 
chore: bump Std to Std#340 (#8104)

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

Diff
@@ -509,7 +509,7 @@ def commRing (h : ∀ a b : α, (∀ r : α, a * r * b = 0) → a = 0 ∨ b = 0)
   { CentroidHom.instRing with
     mul_comm := fun f g ↦ by
       ext
-      refine' sub_eq_zero.1 ((or_self_iff _).1 <| (h _ _) fun r ↦ _)
+      refine' sub_eq_zero.1 (or_self_iff.1 <| (h _ _) fun r ↦ _)
       rw [mul_assoc, sub_mul, sub_eq_zero, ← map_mul_right, ← map_mul_right, coe_mul, coe_mul,
         comp_mul_comm] }
 #align centroid_hom.comm_ring CentroidHom.commRing
chore: fix nonterminal simps (#7497)

Fixes the nonterminal simps identified by #7496

Diff
@@ -395,7 +395,7 @@ instance : Semiring (CentroidHom α) :=
     toEnd_nat_cast
 
 theorem comp_mul_comm (T S : CentroidHom α) (a b : α) : (T ∘ S) (a * b) = (S ∘ T) (a * b) := by
-  simp
+  simp only [Function.comp_apply]
   rw [map_mul_right, map_mul_left, ← map_mul_right, ← map_mul_left]
 #align centroid_hom.comp_mul_comm CentroidHom.comp_mul_comm
 
chore: @[simp] cancel_(right|left) (#6300)

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

Diff
@@ -225,11 +225,13 @@ theorem id_comp (f : CentroidHom α) : (CentroidHom.id α).comp f = f :=
   rfl
 #align centroid_hom.id_comp CentroidHom.id_comp
 
+@[simp]
 theorem cancel_right {g₁ g₂ f : CentroidHom α} (hf : Surjective f) :
     g₁.comp f = g₂.comp f ↔ g₁ = g₂ :=
   ⟨fun h ↦ ext <| hf.forall.2 <| FunLike.ext_iff.1 h, fun a ↦ congrFun (congrArg comp a) f⟩
 #align centroid_hom.cancel_right CentroidHom.cancel_right
 
+@[simp]
 theorem cancel_left {g f₁ f₂ : CentroidHom α} (hg : Injective g) :
     g.comp f₁ = g.comp f₂ ↔ f₁ = f₂ :=
   ⟨fun h ↦ ext fun a ↦ hg <| by rw [← comp_apply, h, comp_apply], congr_arg _⟩
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
@@ -43,10 +43,10 @@ centroid
 
 open Function
 
-variable {F α : Type _}
+variable {F α : Type*}
 
 /-- The type of centroid homomorphisms from `α` to `α`. -/
-structure CentroidHom (α : Type _) [NonUnitalNonAssocSemiring α] extends α →+ α where
+structure CentroidHom (α : Type*) [NonUnitalNonAssocSemiring α] extends α →+ α where
   /-- Commutativity of centroid homomorphims with left multiplication. -/
   map_mul_left' (a b : α) : toFun (a * b) = a * toFun b
   /-- Commutativity of centroid homomorphims with right multiplication. -/
@@ -58,7 +58,7 @@ attribute [nolint docBlame] CentroidHom.toAddMonoidHom
 /-- `CentroidHomClass F α` states that `F` is a type of centroid homomorphisms.
 
 You should extend this class when you extend `CentroidHom`. -/
-class CentroidHomClass (F : Type _) (α : outParam <| Type _) [NonUnitalNonAssocSemiring α] extends
+class CentroidHomClass (F : Type*) (α : outParam <| Type*) [NonUnitalNonAssocSemiring α] extends
   AddMonoidHomClass F α α where
   /-- Commutativity of centroid homomorphims with left multiplication. -/
   map_mul_left (f : F) (a b : α) : f (a * b) = a * f b
chore: tidy various files (#5999)
Diff
@@ -85,8 +85,7 @@ section NonUnitalNonAssocSemiring
 
 variable [NonUnitalNonAssocSemiring α]
 
-instance : CentroidHomClass (CentroidHom α) α
-    where
+instance : CentroidHomClass (CentroidHom α) α where
   coe f := f.toFun
   coe_injective' f g h := by
     cases f
@@ -106,9 +105,10 @@ mismatch, so I used `library_search`. -/
 instance : CoeFun (CentroidHom α) fun _ ↦ α → α :=
   inferInstanceAs (CoeFun (CentroidHom α) fun _ ↦ α → α)
 
-/- Porting note:
-`theorem to_fun_eq_coe {f : CentroidHom α} : f.toFun = (f : α → α) := rfl`
-removed because it is now a tautology -/
+-- Porting note: removed @[simp]; not in normal form. (`toAddMonoidHom_eq_coe` below ensures that
+-- the LHS simplifies to the RHS anyway.)
+theorem toFun_eq_coe {f : CentroidHom α} : f.toFun = f := rfl
+#align centroid_hom.to_fun_eq_coe CentroidHom.toFun_eq_coe
 
 @[ext]
 theorem ext {f g : CentroidHom α} (h : ∀ a, f a = g a) : f = g :=
@@ -269,9 +269,7 @@ instance hasNsmul : SMul ℕ (CentroidHom α) :=
 
 instance hasNpowNat : Pow (CentroidHom α) ℕ :=
   ⟨fun f n ↦
-    { (f.toEnd ^ n :
-        AddMonoid.End
-          α) with
+    { (f.toEnd ^ n : AddMonoid.End α) with
       map_mul_left' := fun a b ↦ by
         induction' n with n ih
         · exact rfl
@@ -428,10 +426,7 @@ instance : Sub (CentroidHom α) :=
 
 instance hasZsmul : SMul ℤ (CentroidHom α) :=
   ⟨fun n f ↦
-    {
-      (SMul.smul n f :
-        α →+
-          α) with
+    { (SMul.smul n f : α →+ α) with
       map_mul_left' := fun a b ↦ by
         change n • f (a * b) = a * n • f b
         rw [map_mul_left f, ← mul_smul_comm]
@@ -467,8 +462,7 @@ theorem toEnd_zsmul (x : CentroidHom α) (n : ℤ) : (n • x).toEnd = n • x.t
 #align centroid_hom.to_End_zsmul CentroidHom.toEnd_zsmul
 
 instance : AddCommGroup (CentroidHom α) :=
-  toEnd_injective.addCommGroup _ toEnd_zero toEnd_add toEnd_neg toEnd_sub toEnd_nsmul
-    toEnd_zsmul
+  toEnd_injective.addCommGroup _ toEnd_zero toEnd_add toEnd_neg toEnd_sub toEnd_nsmul toEnd_zsmul
 
 @[simp, norm_cast]
 theorem coe_neg (f : CentroidHom α) : ⇑(-f) = -f :=
@@ -495,7 +489,7 @@ theorem toEnd_int_cast (z : ℤ) : (z : CentroidHom α).toEnd = ↑z :=
   rfl
 #align centroid_hom.to_End_int_cast CentroidHom.toEnd_int_cast
 
-instance : Ring (CentroidHom α) :=
+instance instRing : Ring (CentroidHom α) :=
   toEnd_injective.ring _ toEnd_zero toEnd_one toEnd_add toEnd_mul toEnd_neg toEnd_sub
     toEnd_nsmul toEnd_zsmul toEnd_pow toEnd_nat_cast toEnd_int_cast
 
@@ -510,7 +504,7 @@ variable [NonUnitalRing α]
 /-- A prime associative ring has commutative centroid. -/
 @[reducible]
 def commRing (h : ∀ a b : α, (∀ r : α, a * r * b = 0) → a = 0 ∨ b = 0) : CommRing (CentroidHom α) :=
-  { CentroidHom.instRingCentroidHomToNonUnitalNonAssocSemiring with
+  { CentroidHom.instRing with
     mul_comm := fun f g ↦ by
       ext
       refine' sub_eq_zero.1 ((or_self_iff _).1 <| (h _ _) fun r ↦ _)
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2022 Yaël Dillies. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yaël Dillies, Christopher Hoskin
-
-! This file was ported from Lean 3 source module algebra.hom.centroid
-! leanprover-community/mathlib commit 6cb77a8eaff0ddd100e87b1591c6d3ad319514ff
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.GroupPower.Lemmas
 import Mathlib.Algebra.Hom.GroupInstances
 
+#align_import algebra.hom.centroid from "leanprover-community/mathlib"@"6cb77a8eaff0ddd100e87b1591c6d3ad319514ff"
+
 /-!
 # Centroid homomorphisms
 
chore: reenable eta, bump to nightly 2023-05-16 (#3414)

Now that leanprover/lean4#2210 has been merged, this PR:

  • removes all the set_option synthInstance.etaExperiment true commands (and some etaExperiment% term elaborators)
  • removes many but not quite all set_option maxHeartbeats commands
  • makes various other changes required to cope with leanprover/lean4#2210.

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Matthew Ballard <matt@mrb.email>

Diff
@@ -498,7 +498,6 @@ theorem toEnd_int_cast (z : ℤ) : (z : CentroidHom α).toEnd = ↑z :=
   rfl
 #align centroid_hom.to_End_int_cast CentroidHom.toEnd_int_cast
 
-set_option maxHeartbeats 1000000 in
 instance : Ring (CentroidHom α) :=
   toEnd_injective.ring _ toEnd_zero toEnd_one toEnd_add toEnd_mul toEnd_neg toEnd_sub
     toEnd_nsmul toEnd_zsmul toEnd_pow toEnd_nat_cast toEnd_int_cast
chore: fix casing errors per naming scheme (#1670)
Diff
@@ -60,7 +60,7 @@ attribute [nolint docBlame] CentroidHom.toAddMonoidHom
 
 /-- `CentroidHomClass F α` states that `F` is a type of centroid homomorphisms.
 
-You should extend this class when you extend `centroid_hom`. -/
+You should extend this class when you extend `CentroidHom`. -/
 class CentroidHomClass (F : Type _) (α : outParam <| Type _) [NonUnitalNonAssocSemiring α] extends
   AddMonoidHomClass F α α where
   /-- Commutativity of centroid homomorphims with left multiplication. -/
@@ -102,7 +102,7 @@ instance : CentroidHomClass (CentroidHom α) α
   map_mul_right f := f.map_mul_right'
 
 
-/-- Helper instance for when there's too many metavariables to apply `fun_like.has_coe_to_fun`
+/-- Helper instance for when there's too many metavariables to apply `FunLike.CoeFun`
 directly. -/
 /- Porting note: Lean gave me `unknown constant 'FunLike.CoeFun'` and says `CoeFun` is a type
 mismatch, so I used `library_search`. -/
@@ -119,20 +119,20 @@ theorem ext {f g : CentroidHom α} (h : ∀ a, f a = g a) : f = g :=
 #align centroid_hom.ext CentroidHom.ext
 
 @[simp, norm_cast]
-theorem coe_to_add_monoid_hom (f : CentroidHom α) : ⇑(f : α →+ α) = f :=
+theorem coe_toAddMonoidHom (f : CentroidHom α) : ⇑(f : α →+ α) = f :=
   rfl
-#align centroid_hom.coe_to_add_monoid_hom CentroidHom.coe_to_add_monoid_hom
+#align centroid_hom.coe_to_add_monoid_hom CentroidHom.coe_toAddMonoidHom
 
 @[simp]
-theorem to_add_monoid_hom_eq_coe (f : CentroidHom α) : f.toAddMonoidHom = f :=
+theorem toAddMonoidHom_eq_coe (f : CentroidHom α) : f.toAddMonoidHom = f :=
   rfl
-#align centroid_hom.to_add_monoid_hom_eq_coe CentroidHom.to_add_monoid_hom_eq_coe
+#align centroid_hom.to_add_monoid_hom_eq_coe CentroidHom.toAddMonoidHom_eq_coe
 
-theorem coe_to_add_monoid_hom_injective : Injective ((↑) : CentroidHom α → α →+ α) :=
+theorem coe_toAddMonoidHom_injective : Injective ((↑) : CentroidHom α → α →+ α) :=
   fun _f _g h => ext fun a ↦
     haveI := FunLike.congr_fun h a
     this
-#align centroid_hom.coe_to_add_monoid_hom_injective CentroidHom.coe_to_add_monoid_hom_injective
+#align centroid_hom.coe_to_add_monoid_hom_injective CentroidHom.coe_toAddMonoidHom_injective
 
 /-- Turn a centroid homomorphism into an additive monoid endomorphism. -/
 def toEnd (f : CentroidHom α) : AddMonoid.End α :=
@@ -140,10 +140,10 @@ def toEnd (f : CentroidHom α) : AddMonoid.End α :=
 #align centroid_hom.to_End CentroidHom.toEnd
 
 theorem toEnd_injective : Injective (CentroidHom.toEnd : CentroidHom α → AddMonoid.End α) :=
-  coe_to_add_monoid_hom_injective
+  coe_toAddMonoidHom_injective
 #align centroid_hom.to_End_injective CentroidHom.toEnd_injective
 
-/-- Copy of a `centroid_hom` with a new `to_fun` equal to the old one. Useful to fix
+/-- Copy of a `CentroidHom` with a new `toFun` equal to the old one. Useful to fix
 definitional equalities. -/
 protected def copy (f : CentroidHom α) (f' : α → α) (h : f' = f) : CentroidHom α :=
   { f.toAddMonoidHom.copy f' <| h with
@@ -163,7 +163,7 @@ theorem copy_eq (f : CentroidHom α) (f' : α → α) (h : f' = f) : f.copy f' h
 
 variable (α)
 
-/-- `id` as a `centroid_hom`. -/
+/-- `id` as a `CentroidHom`. -/
 protected def id : CentroidHom α :=
   { AddMonoidHom.id α with
     map_mul_left' := fun _ _ ↦ rfl
@@ -190,7 +190,7 @@ theorem id_apply (a : α) : CentroidHom.id α a = a :=
   rfl
 #align centroid_hom.id_apply CentroidHom.id_apply
 
-/-- Composition of `centroid_hom`s as a `centroid_hom`. -/
+/-- Composition of `CentroidHom`s as a `CentroidHom`. -/
 def comp (g f : CentroidHom α) : CentroidHom α :=
   { g.toAddMonoidHom.comp f.toAddMonoidHom with
     map_mul_left' := fun _a _b ↦ (congr_arg g <| f.map_mul_left' _ _).trans <| g.map_mul_left' _ _
@@ -358,7 +358,7 @@ theorem toEnd_nsmul (x : CentroidHom α) (n : ℕ) : (n • x).toEnd = n • x.t
 -- Porting note: I guess the porter has naming issues still
 -- cf.`add_monoid_hom.add_comm_monoid`
 instance : AddCommMonoid (CentroidHom α) :=
-  coe_to_add_monoid_hom_injective.addCommMonoid _ toEnd_zero toEnd_add toEnd_nsmul
+  coe_toAddMonoidHom_injective.addCommMonoid _ toEnd_zero toEnd_add toEnd_nsmul
 
 instance : NatCast (CentroidHom α) where natCast n := n • (1 : CentroidHom α)
 
@@ -408,7 +408,7 @@ section NonUnitalNonAssocRing
 
 variable [NonUnitalNonAssocRing α]
 
-/-- Negation of `centroid_hom`s as a `centroid_hom`. -/
+/-- Negation of `CentroidHom`s as a `CentroidHom`. -/
 instance : Neg (CentroidHom α) :=
   ⟨fun f ↦
     { (-f : α →+ α) with
feat: port algebra.hom.centroid (#1325)

Co-authored-by: qawbecrdtey <qawbecrdtey@kaist.ac.kr> Co-authored-by: maxwell-thum <119913396+maxwell-thum@users.noreply.github.com>

Dependencies 3 + 127

128 files ported (97.7%)
51364 lines ported (98.0%)
Show graph

The unported dependencies are