algebra.category.Module.tannakaMathlib.Algebra.Category.ModuleCat.Tannaka

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 -/
-import Algebra.Category.Module.Basic
+import Algebra.Category.ModuleCat.Basic
 import LinearAlgebra.Span
 
 #align_import algebra.category.Module.tannaka from "leanprover-community/mathlib"@"9d2f0748e6c50d7a2657c564b1ff2c695b39148d"
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2022 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 -/
-import Mathbin.Algebra.Category.Module.Basic
-import Mathbin.LinearAlgebra.Span
+import Algebra.Category.Module.Basic
+import LinearAlgebra.Span
 
 #align_import algebra.category.Module.tannaka from "leanprover-community/mathlib"@"9d2f0748e6c50d7a2657c564b1ff2c695b39148d"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2022 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module algebra.category.Module.tannaka
-! leanprover-community/mathlib commit 9d2f0748e6c50d7a2657c564b1ff2c695b39148d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Category.Module.Basic
 import Mathbin.LinearAlgebra.Span
 
+#align_import algebra.category.Module.tannaka from "leanprover-community/mathlib"@"9d2f0748e6c50d7a2657c564b1ff2c695b39148d"
+
 /-!
 # Tannaka duality for rings
 
Diff
@@ -41,7 +41,7 @@ def ringEquivEndForget₂ (R : Type u) [Ring R] :
   invFun φ := φ.app (ModuleCat.of R R) (1 : R)
   left_inv := by intro r; simp
   right_inv := by
-    intro φ; ext (M x)
+    intro φ; ext M x
     simp only [DistribMulAction.toAddMonoidHom_apply]
     have w :=
       AddMonoidHom.congr_fun (φ.naturality (ModuleCat.asHomRight (LinearMap.toSpanSingleton R M x)))
Diff
@@ -27,6 +27,7 @@ universe u
 
 open CategoryTheory
 
+#print ringEquivEndForget₂ /-
 /-- An ingredient of Tannaka duality for rings:
 A ring `R` is equivalent to
 the endomorphisms of the additive forgetful functor `Module R ⥤ AddCommGroup`.
@@ -50,4 +51,5 @@ def ringEquivEndForget₂ (R : Type u) [Ring R] :
   map_add' := by intros; ext; simp [add_smul]
   map_mul' := by intros; ext; simpa using mul_smul _ _ _
 #align ring_equiv_End_forget₂ ringEquivEndForget₂
+-/
 
Diff
@@ -47,7 +47,7 @@ def ringEquivEndForget₂ (R : Type u) [Ring R] :
         (1 : R)
     convert w.symm
     exact (one_smul _ _).symm
-  map_add' := by intros ; ext; simp [add_smul]
-  map_mul' := by intros ; ext; simpa using mul_smul _ _ _
+  map_add' := by intros; ext; simp [add_smul]
+  map_mul' := by intros; ext; simpa using mul_smul _ _ _
 #align ring_equiv_End_forget₂ ringEquivEndForget₂
 
Diff
@@ -27,9 +27,6 @@ universe u
 
 open CategoryTheory
 
-/- warning: ring_equiv_End_forget₂ -> ringEquivEndForget₂ is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ring_equiv_End_forget₂ ringEquivEndForget₂ₓ'. -/
 /-- An ingredient of Tannaka duality for rings:
 A ring `R` is equivalent to
 the endomorphisms of the additive forgetful functor `Module R ⥤ AddCommGroup`.
Diff
@@ -39,13 +39,9 @@ def ringEquivEndForget₂ (R : Type u) [Ring R] :
     where
   toFun r :=
     { app := fun M => by apply DistribMulAction.toAddMonoidHom M r
-      naturality' := fun M N f => by
-        ext
-        exact (f.map_smul _ _).symm }
+      naturality' := fun M N f => by ext; exact (f.map_smul _ _).symm }
   invFun φ := φ.app (ModuleCat.of R R) (1 : R)
-  left_inv := by
-    intro r
-    simp
+  left_inv := by intro r; simp
   right_inv := by
     intro φ; ext (M x)
     simp only [DistribMulAction.toAddMonoidHom_apply]
@@ -54,13 +50,7 @@ def ringEquivEndForget₂ (R : Type u) [Ring R] :
         (1 : R)
     convert w.symm
     exact (one_smul _ _).symm
-  map_add' := by
-    intros
-    ext
-    simp [add_smul]
-  map_mul' := by
-    intros
-    ext
-    simpa using mul_smul _ _ _
+  map_add' := by intros ; ext; simp [add_smul]
+  map_mul' := by intros ; ext; simpa using mul_smul _ _ _
 #align ring_equiv_End_forget₂ ringEquivEndForget₂
 
Diff
@@ -28,10 +28,7 @@ universe u
 open CategoryTheory
 
 /- warning: ring_equiv_End_forget₂ -> ringEquivEndForget₂ is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_1 : Ring.{u1} R], RingEquiv.{u1, succ u1} R (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.category.{succ u1, u1, u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (Ring.toDistrib.{u1} R _inst_1)) (CategoryTheory.End.mul.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.category.{succ u1, u1, u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (Distrib.toHasAdd.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.category.{succ u1, u1, u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (Ring.toDistrib.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.category.{succ u1, u1, u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (CategoryTheory.Preadditive.CategoryTheory.End.ring.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.category.{succ u1, u1, u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.preadditive.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1)))))
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : Ring.{u1} R], RingEquiv.{u1, succ u1} R (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (CategoryTheory.End.mul.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) (Distrib.toAdd.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (NonUnitalNonAssocSemiring.toDistrib.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (NonAssocRing.toNonUnitalNonAssocRing.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (Ring.toNonAssocRing.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (CategoryTheory.Preadditive.instRingEndToCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instPreadditiveAdditiveFunctorInstCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align ring_equiv_End_forget₂ ringEquivEndForget₂ₓ'. -/
 /-- An ingredient of Tannaka duality for rings:
 A ring `R` is equivalent to
Diff
@@ -31,7 +31,7 @@ open CategoryTheory
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : Ring.{u1} R], RingEquiv.{u1, succ u1} R (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.category.{succ u1, u1, u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (Ring.toDistrib.{u1} R _inst_1)) (CategoryTheory.End.mul.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.category.{succ u1, u1, u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (Distrib.toHasAdd.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.category.{succ u1, u1, u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (Ring.toDistrib.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.category.{succ u1, u1, u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (CategoryTheory.Preadditive.CategoryTheory.End.ring.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.category.{succ u1, u1, u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.preadditive.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1)))))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : Ring.{u1} R], RingEquiv.{u1, succ u1} R (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (CategoryTheory.End.mul.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) (Distrib.toAdd.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (NonUnitalNonAssocSemiring.toDistrib.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (NonAssocRing.toNonUnitalNonAssocRing.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (Ring.toNonAssocRing.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (CategoryTheory.Preadditive.instRingEndToCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instPreadditiveAdditiveFunctorInstCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))))))))
+  forall (R : Type.{u1}) [_inst_1 : Ring.{u1} R], RingEquiv.{u1, succ u1} R (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (CategoryTheory.End.mul.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) (Distrib.toAdd.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (NonUnitalNonAssocSemiring.toDistrib.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (NonAssocRing.toNonUnitalNonAssocRing.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (Ring.toNonAssocRing.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (CategoryTheory.Preadditive.instRingEndToCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instPreadditiveAdditiveFunctorInstCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatInstAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) instAddCommGroupCatLargeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))))))))
 Case conversion may be inaccurate. Consider using '#align ring_equiv_End_forget₂ ringEquivEndForget₂ₓ'. -/
 /-- An ingredient of Tannaka duality for rings:
 A ring `R` is equivalent to
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 
 ! This file was ported from Lean 3 source module algebra.category.Module.tannaka
-! leanprover-community/mathlib commit 71150516f28d9826c7341f8815b31f7d8770c212
+! leanprover-community/mathlib commit 9d2f0748e6c50d7a2657c564b1ff2c695b39148d
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -14,6 +14,9 @@ import Mathbin.LinearAlgebra.Span
 /-!
 # Tannaka duality for rings
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 A ring `R` is equivalent to
 the endomorphisms of the additive forgetful functor `Module R ⥤ AddCommGroup`.
 
Diff
@@ -24,6 +24,12 @@ universe u
 
 open CategoryTheory
 
+/- warning: ring_equiv_End_forget₂ -> ringEquivEndForget₂ is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) [_inst_1 : Ring.{u1} R], RingEquiv.{u1, succ u1} R (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.category.{succ u1, u1, u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R _inst_1)) (Distrib.toHasAdd.{u1} R (Ring.toDistrib.{u1} R _inst_1)) (CategoryTheory.End.mul.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.category.{succ u1, u1, u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (Distrib.toHasAdd.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.category.{succ u1, u1, u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (Ring.toDistrib.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.category.{succ u1, u1, u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (CategoryTheory.Preadditive.CategoryTheory.End.ring.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.category.{succ u1, u1, u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.preadditive.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1}) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1) AddCommGroupCat.CategoryTheory.preadditive.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1)))))
+but is expected to have type
+  forall (R : Type.{u1}) [_inst_1 : Ring.{u1} R], RingEquiv.{u1, succ u1} R (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))) (CategoryTheory.End.mul.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R _inst_1))))) (Distrib.toAdd.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (NonUnitalNonAssocSemiring.toDistrib.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (NonAssocRing.toNonUnitalNonAssocRing.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (Ring.toNonAssocRing.{succ u1} (CategoryTheory.End.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.Category.toCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1})) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))) (CategoryTheory.Preadditive.instRingEndToCategoryStruct.{succ u1, succ u1} (CategoryTheory.AdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.instPreadditiveAdditiveFunctorInstCategoryAdditiveFunctor.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1}) (CategoryTheory.AdditiveFunctor.of.{succ u1, succ u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1) AddCommGroupCat.instPreadditiveAddCommGroupCatLargeCategory.{u1} (CategoryTheory.forget₂.{succ u1, succ u1, u1, u1, u1} (ModuleCat.{u1, u1} R _inst_1) AddCommGroupCat.{u1} (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.moduleConcreteCategory.{u1, u1} R _inst_1) AddCommGroupCat.largeCategory.{u1} AddCommGroupCat.concreteCategory.{u1} (ModuleCat.hasForgetToAddCommGroup.{u1, u1} R _inst_1)) (ModuleCat.forget₂_addCommGroupCat_additive.{u1, u1} R _inst_1))))))))
+Case conversion may be inaccurate. Consider using '#align ring_equiv_End_forget₂ ringEquivEndForget₂ₓ'. -/
 /-- An ingredient of Tannaka duality for rings:
 A ring `R` is equivalent to
 the endomorphisms of the additive forgetful functor `Module R ⥤ AddCommGroup`.

Changes in mathlib4

mathlib3
mathlib4
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 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module algebra.category.Module.tannaka
-! leanprover-community/mathlib commit 71150516f28d9826c7341f8815b31f7d8770c212
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.Category.ModuleCat.Basic
 import Mathlib.LinearAlgebra.Span
 
+#align_import algebra.category.Module.tannaka from "leanprover-community/mathlib"@"71150516f28d9826c7341f8815b31f7d8770c212"
+
 /-!
 # Tannaka duality for rings
 
chore: add @[ext] lemmas for NatTrans synonyms (#5228)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au>

Diff
@@ -49,17 +49,15 @@ def ringEquivEndForget₂ (R : Type u) [Ring R] :
   map_add' := by
     intros
     apply NatTrans.ext
-    ext1
-    dsimp
     ext
+    dsimp
     simp only [AddCommGroupCat.ofHom_apply, DistribMulAction.toAddMonoidHom_apply, add_smul]
     rfl
   map_mul' := by
     intros
     apply NatTrans.ext
-    ext1
-    dsimp
     ext
+    dsimp
     simp only [AddCommGroupCat.ofHom_apply, DistribMulAction.toAddMonoidHom_apply, mul_smul]
     rfl
 
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
@@ -23,7 +23,6 @@ universe u
 
 open CategoryTheory
 
-set_option synthInstance.etaExperiment true in
 /-- An ingredient of Tannaka duality for rings:
 A ring `R` is equivalent to
 the endomorphisms of the additive forgetful functor `Module R ⥤ AddCommGroup`.
chore: refactor of concrete categories (#3900)

I think the ports

didn't quite get things right, and also have some variation between them. This PR tries to straighten things out.

Major changes:

  • Have the coercion to type be via X.\a, and put attribute @[coe] on this.
  • Make sure the coercion from morphisms to functions means that simp lemmas about the underlying bundled morphisms apply directly.
    • This means we drop lemmas like
    lemma Hom.map_mul {X Y : MonCat} (f : X ⟶ Y) (x y : X) : ((forget MonCat).map f) (x * y) = f x * f y
    
    • But at the expense of adding lemmas like
    lemma coe_comp {X Y Z : MonCat} {f : X ⟶ Y} {g : Y ⟶ Z} : (f ≫ g : X → Z) = g ∘ f := rfl
    

Overall I'm pretty happy, and it allows me to unstick the long stuck https://github.com/leanprover-community/mathlib4/pull/3105.

This is not everything I want to do to refactor these files, but once I was satisfied that I can move forward with RingCat, I want to get this merged so we can unblock porting progress. I'll promise to come back to this soon! :-)

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

Diff
@@ -39,9 +39,7 @@ def ringEquivEndForget₂ (R : Type u) [Ring R] :
   invFun φ := φ.app (ModuleCat.of R R) (1 : R)
   left_inv := by
     intro r
-    dsimp
-    erw [AddCommGroupCat.ofHom_apply]
-    simp only [DistribMulAction.toAddMonoidHom_apply, smul_eq_mul, mul_one]
+    simp
   right_inv := by
     intro φ
     apply NatTrans.ext
feat: port Algebra.Category.Module.Tannaka (#3645)

Dependencies 8 + 468

469 files ported (98.3%)
184440 lines ported (98.3%)
Show graph

The unported dependencies are