category_theory.single_objMathlib.CategoryTheory.SingleObj

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -257,12 +257,12 @@ def toCat : MonCat ⥤ Cat where
 #align Mon.to_Cat MonCat.toCat
 -/
 
-#print MonCat.toCatFull /-
-instance toCatFull : CategoryTheory.Functor.Full toCat
+#print MonCat.toCat_full /-
+instance toCat_full : CategoryTheory.Functor.Full toCat
     where
   preimage x y := (SingleObj.mapHom x y).invFun
   witness' x y := by apply Equiv.right_inv
-#align Mon.to_Cat_full MonCat.toCatFull
+#align Mon.to_Cat_full MonCat.toCat_full
 -/
 
 #print MonCat.toCat_faithful /-
Diff
@@ -258,7 +258,7 @@ def toCat : MonCat ⥤ Cat where
 -/
 
 #print MonCat.toCatFull /-
-instance toCatFull : Full toCat
+instance toCatFull : CategoryTheory.Functor.Full toCat
     where
   preimage x y := (SingleObj.mapHom x y).invFun
   witness' x y := by apply Equiv.right_inv
@@ -266,7 +266,8 @@ instance toCatFull : Full toCat
 -/
 
 #print MonCat.toCat_faithful /-
-instance toCat_faithful : Faithful toCat where map_injective' x y := by apply Equiv.injective
+instance toCat_faithful : CategoryTheory.Functor.Faithful toCat
+    where map_injective' x y := by apply Equiv.injective
 #align Mon.to_Cat_faithful MonCat.toCat_faithful
 -/
 
Diff
@@ -5,7 +5,7 @@ Authors: Yury Kudryashov
 -/
 import CategoryTheory.Endomorphism
 import CategoryTheory.Category.Cat
-import Algebra.Category.Mon.Basic
+import Algebra.Category.MonCat.Basic
 import Combinatorics.Quiver.SingleObj
 
 #align_import category_theory.single_obj from "leanprover-community/mathlib"@"c085f3044fe585c575e322bfab45b3633c48d820"
Diff
@@ -3,10 +3,10 @@ Copyright (c) 2019 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 -/
-import Mathbin.CategoryTheory.Endomorphism
-import Mathbin.CategoryTheory.Category.Cat
-import Mathbin.Algebra.Category.Mon.Basic
-import Mathbin.Combinatorics.Quiver.SingleObj
+import CategoryTheory.Endomorphism
+import CategoryTheory.Category.Cat
+import Algebra.Category.Mon.Basic
+import Combinatorics.Quiver.SingleObj
 
 #align_import category_theory.single_obj from "leanprover-community/mathlib"@"c085f3044fe585c575e322bfab45b3633c48d820"
 
Diff
@@ -145,7 +145,7 @@ def mapHom (α : Type u) (β : Type v) [Monoid α] [Monoid β] : (α →* β) 
     { obj := id
       map := fun _ _ => ⇑f
       map_id' := fun _ => f.map_one
-      map_comp' := fun _ _ _ x y => f.map_mul y x }
+      map_comp' := fun _ _ _ x y => f.map_hMul y x }
   invFun f :=
     { toFun := @Functor.map _ _ _ _ f (SingleObj.star α) (SingleObj.star α)
       map_one' := f.map_id _
Diff
@@ -2,17 +2,14 @@
 Copyright (c) 2019 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
-
-! This file was ported from Lean 3 source module category_theory.single_obj
-! leanprover-community/mathlib commit c085f3044fe585c575e322bfab45b3633c48d820
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Endomorphism
 import Mathbin.CategoryTheory.Category.Cat
 import Mathbin.Algebra.Category.Mon.Basic
 import Mathbin.Combinatorics.Quiver.SingleObj
 
+#align_import category_theory.single_obj from "leanprover-community/mathlib"@"c085f3044fe585c575e322bfab45b3633c48d820"
+
 /-!
 # Single-object category
 
Diff
@@ -80,13 +80,17 @@ instance category [Monoid α] : Category (SingleObj α)
 #align category_theory.single_obj.category CategoryTheory.SingleObj.category
 -/
 
+#print CategoryTheory.SingleObj.id_as_one /-
 theorem id_as_one [Monoid α] (x : SingleObj α) : 𝟙 x = 1 :=
   rfl
 #align category_theory.single_obj.id_as_one CategoryTheory.SingleObj.id_as_one
+-/
 
+#print CategoryTheory.SingleObj.comp_as_mul /-
 theorem comp_as_mul [Monoid α] {x y z : SingleObj α} (f : x ⟶ y) (g : y ⟶ z) : f ≫ g = g * f :=
   rfl
 #align category_theory.single_obj.comp_as_mul CategoryTheory.SingleObj.comp_as_mul
+-/
 
 #print CategoryTheory.SingleObj.groupoid /-
 /-- Groupoid structure on `single_obj α`.
@@ -101,9 +105,11 @@ instance groupoid [Group α] : Groupoid (SingleObj α)
 #align category_theory.single_obj.groupoid CategoryTheory.SingleObj.groupoid
 -/
 
+#print CategoryTheory.SingleObj.inv_as_inv /-
 theorem inv_as_inv [Group α] {x y : SingleObj α} (f : x ⟶ y) : inv f = f⁻¹ := by ext;
   rw [comp_as_mul, inv_mul_self, id_as_one]
 #align category_theory.single_obj.inv_as_inv CategoryTheory.SingleObj.inv_as_inv
+-/
 
 #print CategoryTheory.SingleObj.star /-
 /-- Abbreviation that allows writing `category_theory.single_obj.star` rather than
@@ -114,15 +120,19 @@ abbrev star : SingleObj α :=
 #align category_theory.single_obj.star CategoryTheory.SingleObj.star
 -/
 
+#print CategoryTheory.SingleObj.toEnd /-
 /-- The endomorphisms monoid of the only object in `single_obj α` is equivalent to the original
      monoid α. -/
 def toEnd [Monoid α] : α ≃* End (SingleObj.star α) :=
   { Equiv.refl α with map_mul' := fun x y => rfl }
 #align category_theory.single_obj.to_End CategoryTheory.SingleObj.toEnd
+-/
 
+#print CategoryTheory.SingleObj.toEnd_def /-
 theorem toEnd_def [Monoid α] (x : α) : toEnd α x = x :=
   rfl
 #align category_theory.single_obj.to_End_def CategoryTheory.SingleObj.toEnd_def
+-/
 
 #print CategoryTheory.SingleObj.mapHom /-
 /-- There is a 1-1 correspondence between monoid homomorphisms `α → β` and functors between the
@@ -214,21 +224,27 @@ namespace Units
 
 variable (α : Type u) [Monoid α]
 
+#print Units.toAut /-
 /-- The units in a monoid are (multiplicatively) equivalent to
 the automorphisms of `star` when we think of the monoid as a single-object category. -/
 def toAut : αˣ ≃* Aut (SingleObj.star α) :=
   (Units.mapEquiv (SingleObj.toEnd α)).trans <| Aut.unitsEndEquivAut _
 #align units.to_Aut Units.toAut
+-/
 
+#print Units.toAut_hom /-
 @[simp]
 theorem toAut_hom (x : αˣ) : (toAut α x).Hom = SingleObj.toEnd α x :=
   rfl
 #align units.to_Aut_hom Units.toAut_hom
+-/
 
+#print Units.toAut_inv /-
 @[simp]
 theorem toAut_inv (x : αˣ) : (toAut α x).inv = SingleObj.toEnd α (x⁻¹ : αˣ) :=
   rfl
 #align units.to_Aut_inv Units.toAut_inv
+-/
 
 end Units
 
Diff
@@ -169,8 +169,8 @@ def differenceFunctor {C G} [Category C] [Group G] (f : C → G) : C ⥤ SingleO
     where
   obj _ := ()
   map x y _ := f y * (f x)⁻¹
-  map_id' := by intro ; rw [single_obj.id_as_one, mul_right_inv]
-  map_comp' := by intros ;
+  map_id' := by intro; rw [single_obj.id_as_one, mul_right_inv]
+  map_comp' := by intros;
     rw [single_obj.comp_as_mul, ← mul_assoc, mul_left_inj, mul_assoc, inv_mul_self, mul_one]
 #align category_theory.single_obj.difference_functor CategoryTheory.SingleObj.differenceFunctor
 -/
Diff
@@ -80,22 +80,10 @@ instance category [Monoid α] : Category (SingleObj α)
 #align category_theory.single_obj.category CategoryTheory.SingleObj.category
 -/
 
-/- warning: category_theory.single_obj.id_as_one -> CategoryTheory.SingleObj.id_as_one is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : CategoryTheory.SingleObj.{u1} α), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) (CategoryTheory.CategoryStruct.id.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) x) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) 1 (OfNat.mk.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) 1 (One.one.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) (MulOneClass.toHasOne.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) (Monoid.toMulOneClass.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) _inst_1)))))
-but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : CategoryTheory.SingleObj.{u1} α), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) (CategoryTheory.CategoryStruct.id.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) x) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) 1 (One.toOfNat1.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) (Monoid.toOne.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) _inst_1)))
-Case conversion may be inaccurate. Consider using '#align category_theory.single_obj.id_as_one CategoryTheory.SingleObj.id_as_oneₓ'. -/
 theorem id_as_one [Monoid α] (x : SingleObj α) : 𝟙 x = 1 :=
   rfl
 #align category_theory.single_obj.id_as_one CategoryTheory.SingleObj.id_as_one
 
-/- warning: category_theory.single_obj.comp_as_mul -> CategoryTheory.SingleObj.comp_as_mul is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] {x : CategoryTheory.SingleObj.{u1} α} {y : CategoryTheory.SingleObj.{u1} α} {z : CategoryTheory.SingleObj.{u1} α} (f : Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) x y) (g : Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) y z), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x z) (CategoryTheory.CategoryStruct.comp.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) x y z f g) (HMul.hMul.{u1, u1, u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x z) (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x z) (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x z) (instHMul.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x z) (MulOneClass.toHasMul.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x z) (Monoid.toMulOneClass.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x z) _inst_1))) g f)
-but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] {x : CategoryTheory.SingleObj.{u1} α} {y : CategoryTheory.SingleObj.{u1} α} {z : CategoryTheory.SingleObj.{u1} α} (f : Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) (g : Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) y z), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x z) (CategoryTheory.CategoryStruct.comp.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) x y z f g) (HMul.hMul.{u1, u1, u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) y z) (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) y z) (instHMul.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) y z) (MulOneClass.toMul.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) y z) (Monoid.toMulOneClass.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) y z) _inst_1))) g f)
-Case conversion may be inaccurate. Consider using '#align category_theory.single_obj.comp_as_mul CategoryTheory.SingleObj.comp_as_mulₓ'. -/
 theorem comp_as_mul [Monoid α] {x y z : SingleObj α} (f : x ⟶ y) (g : y ⟶ z) : f ≫ g = g * f :=
   rfl
 #align category_theory.single_obj.comp_as_mul CategoryTheory.SingleObj.comp_as_mul
@@ -113,12 +101,6 @@ instance groupoid [Group α] : Groupoid (SingleObj α)
 #align category_theory.single_obj.groupoid CategoryTheory.SingleObj.groupoid
 -/
 
-/- warning: category_theory.single_obj.inv_as_inv -> CategoryTheory.SingleObj.inv_as_inv is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : Group.{u1} α] {x : CategoryTheory.SingleObj.{u1} α} {y : CategoryTheory.SingleObj.{u1} α} (f : Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) x y), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))))) y x) (CategoryTheory.inv.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))) x y f (CategoryTheory.IsIso.of_groupoid.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.groupoid.{u1} α _inst_1) x y f)) (Inv.inv.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))))) y x) (DivInvMonoid.toHasInv.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))))) y x) (Group.toDivInvMonoid.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))))) y x) _inst_1)) f)
-but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : Group.{u1} α] {x : CategoryTheory.SingleObj.{u1} α} {y : CategoryTheory.SingleObj.{u1} α} (f : Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))))) y x) (CategoryTheory.inv.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))) x y f (CategoryTheory.IsIso.of_groupoid.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.groupoid.{u1} α _inst_1) x y f)) (Inv.inv.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) (InvOneClass.toInv.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) (DivInvOneMonoid.toInvOneClass.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) (DivisionMonoid.toDivInvOneMonoid.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) (Group.toDivisionMonoid.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) _inst_1)))) f)
-Case conversion may be inaccurate. Consider using '#align category_theory.single_obj.inv_as_inv CategoryTheory.SingleObj.inv_as_invₓ'. -/
 theorem inv_as_inv [Group α] {x y : SingleObj α} (f : x ⟶ y) : inv f = f⁻¹ := by ext;
   rw [comp_as_mul, inv_mul_self, id_as_one]
 #align category_theory.single_obj.inv_as_inv CategoryTheory.SingleObj.inv_as_inv
@@ -132,24 +114,12 @@ abbrev star : SingleObj α :=
 #align category_theory.single_obj.star CategoryTheory.SingleObj.star
 -/
 
-/- warning: category_theory.single_obj.to_End -> CategoryTheory.SingleObj.toEnd is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α], MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))
-but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α], MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))
-Case conversion may be inaccurate. Consider using '#align category_theory.single_obj.to_End CategoryTheory.SingleObj.toEndₓ'. -/
 /-- The endomorphisms monoid of the only object in `single_obj α` is equivalent to the original
      monoid α. -/
 def toEnd [Monoid α] : α ≃* End (SingleObj.star α) :=
   { Equiv.refl α with map_mul' := fun x y => rfl }
 #align category_theory.single_obj.to_End CategoryTheory.SingleObj.toEnd
 
-/- warning: category_theory.single_obj.to_End_def -> CategoryTheory.SingleObj.toEnd_def is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : α), Eq.{succ u1} (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (coeFn.{succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (fun (_x : MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) => α -> (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (MulEquiv.hasCoeToFun.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (CategoryTheory.SingleObj.toEnd.{u1} α _inst_1) x) x
-but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : α), Eq.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquivClass.toEquivLike.{u1, u1, u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquiv.instMulEquivClassMulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)))))) (CategoryTheory.SingleObj.toEnd.{u1} α _inst_1) x) x
-Case conversion may be inaccurate. Consider using '#align category_theory.single_obj.to_End_def CategoryTheory.SingleObj.toEnd_defₓ'. -/
 theorem toEnd_def [Monoid α] (x : α) : toEnd α x = x :=
   rfl
 #align category_theory.single_obj.to_End_def CategoryTheory.SingleObj.toEnd_def
@@ -244,29 +214,17 @@ namespace Units
 
 variable (α : Type u) [Monoid α]
 
-/- warning: units.to_Aut -> Units.toAut is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α], MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} (Units.{u1} α _inst_1) (Units.mulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.group.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))
-but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α], MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))
-Case conversion may be inaccurate. Consider using '#align units.to_Aut Units.toAutₓ'. -/
 /-- The units in a monoid are (multiplicatively) equivalent to
 the automorphisms of `star` when we think of the monoid as a single-object category. -/
 def toAut : αˣ ≃* Aut (SingleObj.star α) :=
   (Units.mapEquiv (SingleObj.toEnd α)).trans <| Aut.unitsEndEquivAut _
 #align units.to_Aut Units.toAut
 
-/- warning: units.to_Aut_hom -> Units.toAut_hom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align units.to_Aut_hom Units.toAut_homₓ'. -/
 @[simp]
 theorem toAut_hom (x : αˣ) : (toAut α x).Hom = SingleObj.toEnd α x :=
   rfl
 #align units.to_Aut_hom Units.toAut_hom
 
-/- warning: units.to_Aut_inv -> Units.toAut_inv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align units.to_Aut_inv Units.toAut_invₓ'. -/
 @[simp]
 theorem toAut_inv (x : αˣ) : (toAut α x).inv = SingleObj.toEnd α (x⁻¹ : αˣ) :=
   rfl
Diff
@@ -119,9 +119,7 @@ lean 3 declaration is
 but is expected to have type
   forall (α : Type.{u1}) [_inst_1 : Group.{u1} α] {x : CategoryTheory.SingleObj.{u1} α} {y : CategoryTheory.SingleObj.{u1} α} (f : Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))))) y x) (CategoryTheory.inv.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))) x y f (CategoryTheory.IsIso.of_groupoid.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.groupoid.{u1} α _inst_1) x y f)) (Inv.inv.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) (InvOneClass.toInv.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) (DivInvOneMonoid.toInvOneClass.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) (DivisionMonoid.toDivInvOneMonoid.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) (Group.toDivisionMonoid.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) _inst_1)))) f)
 Case conversion may be inaccurate. Consider using '#align category_theory.single_obj.inv_as_inv CategoryTheory.SingleObj.inv_as_invₓ'. -/
-theorem inv_as_inv [Group α] {x y : SingleObj α} (f : x ⟶ y) : inv f = f⁻¹ :=
-  by
-  ext
+theorem inv_as_inv [Group α] {x y : SingleObj α} (f : x ⟶ y) : inv f = f⁻¹ := by ext;
   rw [comp_as_mul, inv_mul_self, id_as_one]
 #align category_theory.single_obj.inv_as_inv CategoryTheory.SingleObj.inv_as_inv
 
@@ -201,11 +199,8 @@ def differenceFunctor {C G} [Category C] [Group G] (f : C → G) : C ⥤ SingleO
     where
   obj _ := ()
   map x y _ := f y * (f x)⁻¹
-  map_id' := by
-    intro
-    rw [single_obj.id_as_one, mul_right_inv]
-  map_comp' := by
-    intros
+  map_id' := by intro ; rw [single_obj.id_as_one, mul_right_inv]
+  map_comp' := by intros ;
     rw [single_obj.comp_as_mul, ← mul_assoc, mul_left_inj, mul_assoc, inv_mul_self, mul_one]
 #align category_theory.single_obj.difference_functor CategoryTheory.SingleObj.differenceFunctor
 -/
Diff
@@ -262,10 +262,7 @@ def toAut : αˣ ≃* Aut (SingleObj.star α) :=
 #align units.to_Aut Units.toAut
 
 /- warning: units.to_Aut_hom -> Units.toAut_hom is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : Units.{u1} α _inst_1), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Iso.hom.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α) (coeFn.{succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} (Units.{u1} α _inst_1) (Units.mulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.group.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (fun (_x : MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} (Units.{u1} α _inst_1) (Units.mulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.group.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) => (Units.{u1} α _inst_1) -> (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))) (MulEquiv.hasCoeToFun.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} (Units.{u1} α _inst_1) (Units.mulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.group.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.toAut.{u1} α _inst_1) x)) (coeFn.{succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (fun (_x : MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) => α -> (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (MulEquiv.hasCoeToFun.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (CategoryTheory.SingleObj.toEnd.{u1} α _inst_1) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} α _inst_1) α (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} α _inst_1) α (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} α _inst_1) α (coeBase.{succ u1, succ u1} (Units.{u1} α _inst_1) α (Units.hasCoe.{u1} α _inst_1)))) x))
-but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : Units.{u1} α _inst_1), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Iso.hom.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α) (FunLike.coe.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (fun (_x : Units.{u1} α _inst_1) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Units.{u1} α _inst_1) => CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquivClass.toEquivLike.{u1, u1, u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)))))))))) (Units.toAut.{u1} α _inst_1) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquivClass.toEquivLike.{u1, u1, u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquiv.instMulEquivClassMulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)))))) (CategoryTheory.SingleObj.toEnd.{u1} α _inst_1) (Units.val.{u1} α _inst_1 x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align units.to_Aut_hom Units.toAut_homₓ'. -/
 @[simp]
 theorem toAut_hom (x : αˣ) : (toAut α x).Hom = SingleObj.toEnd α x :=
@@ -273,10 +270,7 @@ theorem toAut_hom (x : αˣ) : (toAut α x).Hom = SingleObj.toEnd α x :=
 #align units.to_Aut_hom Units.toAut_hom
 
 /- warning: units.to_Aut_inv -> Units.toAut_inv is a dubious translation:
-lean 3 declaration is
-  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : Units.{u1} α _inst_1), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Iso.inv.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α) (coeFn.{succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} (Units.{u1} α _inst_1) (Units.mulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.group.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (fun (_x : MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} (Units.{u1} α _inst_1) (Units.mulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.group.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) => (Units.{u1} α _inst_1) -> (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))) (MulEquiv.hasCoeToFun.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} (Units.{u1} α _inst_1) (Units.mulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.group.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.toAut.{u1} α _inst_1) x)) (coeFn.{succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (fun (_x : MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) => α -> (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (MulEquiv.hasCoeToFun.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (CategoryTheory.SingleObj.toEnd.{u1} α _inst_1) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} α _inst_1) α (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} α _inst_1) α (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} α _inst_1) α (coeBase.{succ u1, succ u1} (Units.{u1} α _inst_1) α (Units.hasCoe.{u1} α _inst_1)))) (Inv.inv.{u1} (Units.{u1} α _inst_1) (Units.hasInv.{u1} α _inst_1) x)))
-but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : Units.{u1} α _inst_1), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Iso.inv.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α) (FunLike.coe.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (fun (_x : Units.{u1} α _inst_1) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Units.{u1} α _inst_1) => CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquivClass.toEquivLike.{u1, u1, u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)))))))))) (Units.toAut.{u1} α _inst_1) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquivClass.toEquivLike.{u1, u1, u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquiv.instMulEquivClassMulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)))))) (CategoryTheory.SingleObj.toEnd.{u1} α _inst_1) (Units.val.{u1} α _inst_1 (Inv.inv.{u1} (Units.{u1} α _inst_1) (Units.instInv.{u1} α _inst_1) x)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align units.to_Aut_inv Units.toAut_invₓ'. -/
 @[simp]
 theorem toAut_inv (x : αˣ) : (toAut α x).inv = SingleObj.toEnd α (x⁻¹ : αˣ) :=
Diff
@@ -276,7 +276,7 @@ theorem toAut_hom (x : αˣ) : (toAut α x).Hom = SingleObj.toEnd α x :=
 lean 3 declaration is
   forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : Units.{u1} α _inst_1), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Iso.inv.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α) (coeFn.{succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} (Units.{u1} α _inst_1) (Units.mulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.group.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (fun (_x : MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} (Units.{u1} α _inst_1) (Units.mulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.group.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) => (Units.{u1} α _inst_1) -> (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))) (MulEquiv.hasCoeToFun.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} (Units.{u1} α _inst_1) (Units.mulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.group.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.toAut.{u1} α _inst_1) x)) (coeFn.{succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (fun (_x : MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) => α -> (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (MulEquiv.hasCoeToFun.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (CategoryTheory.SingleObj.toEnd.{u1} α _inst_1) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} α _inst_1) α (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} α _inst_1) α (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} α _inst_1) α (coeBase.{succ u1, succ u1} (Units.{u1} α _inst_1) α (Units.hasCoe.{u1} α _inst_1)))) (Inv.inv.{u1} (Units.{u1} α _inst_1) (Units.hasInv.{u1} α _inst_1) x)))
 but is expected to have type
-  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : Units.{u1} α _inst_1), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Iso.inv.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α) (FunLike.coe.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (fun (_x : Units.{u1} α _inst_1) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Units.{u1} α _inst_1) => CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquivClass.toEquivLike.{u1, u1, u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)))))))))) (Units.toAut.{u1} α _inst_1) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquivClass.toEquivLike.{u1, u1, u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquiv.instMulEquivClassMulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)))))) (CategoryTheory.SingleObj.toEnd.{u1} α _inst_1) (Units.val.{u1} α _inst_1 (Inv.inv.{u1} (Units.{u1} α _inst_1) (Units.instInvUnits.{u1} α _inst_1) x)))
+  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : Units.{u1} α _inst_1), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Iso.inv.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α) (FunLike.coe.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (fun (_x : Units.{u1} α _inst_1) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Units.{u1} α _inst_1) => CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquivClass.toEquivLike.{u1, u1, u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)))))))))) (Units.toAut.{u1} α _inst_1) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquivClass.toEquivLike.{u1, u1, u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquiv.instMulEquivClassMulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)))))) (CategoryTheory.SingleObj.toEnd.{u1} α _inst_1) (Units.val.{u1} α _inst_1 (Inv.inv.{u1} (Units.{u1} α _inst_1) (Units.instInv.{u1} α _inst_1) x)))
 Case conversion may be inaccurate. Consider using '#align units.to_Aut_inv Units.toAut_invₓ'. -/
 @[simp]
 theorem toAut_inv (x : αˣ) : (toAut α x).inv = SingleObj.toEnd α (x⁻¹ : αˣ) :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 
 ! This file was ported from Lean 3 source module category_theory.single_obj
-! leanprover-community/mathlib commit 56adee5b5eef9e734d82272918300fca4f3e7cef
+! leanprover-community/mathlib commit c085f3044fe585c575e322bfab45b3633c48d820
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -16,6 +16,9 @@ import Mathbin.Combinatorics.Quiver.SingleObj
 /-!
 # Single-object category
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 Single object category with a given monoid of endomorphisms.
 It is defined to facilitate transfering some definitions and lemmas (e.g., conjugacy etc.)
 from category theory to monoids and groups.
Diff
@@ -45,16 +45,19 @@ universe u v w
 
 namespace CategoryTheory
 
+#print CategoryTheory.SingleObj /-
 /-- Abbreviation that allows writing `category_theory.single_obj` rather than `quiver.single_obj`.
 -/
 abbrev SingleObj :=
   Quiver.SingleObj
 #align category_theory.single_obj CategoryTheory.SingleObj
+-/
 
 namespace SingleObj
 
 variable (α : Type u)
 
+#print CategoryTheory.SingleObj.categoryStruct /-
 /-- One and `flip (*)` become `id` and `comp` for morphisms of the single object category. -/
 instance categoryStruct [One α] [Mul α] : CategoryStruct (SingleObj α)
     where
@@ -62,7 +65,9 @@ instance categoryStruct [One α] [Mul α] : CategoryStruct (SingleObj α)
   comp _ _ _ x y := y * x
   id _ := 1
 #align category_theory.single_obj.category_struct CategoryTheory.SingleObj.categoryStruct
+-/
 
+#print CategoryTheory.SingleObj.category /-
 /-- Monoid laws become category laws for the single object category. -/
 instance category [Monoid α] : Category (SingleObj α)
     where
@@ -70,15 +75,29 @@ instance category [Monoid α] : Category (SingleObj α)
   id_comp' _ _ := mul_one
   assoc' _ _ _ _ x y z := (mul_assoc z y x).symm
 #align category_theory.single_obj.category CategoryTheory.SingleObj.category
+-/
 
+/- warning: category_theory.single_obj.id_as_one -> CategoryTheory.SingleObj.id_as_one is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : CategoryTheory.SingleObj.{u1} α), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) (CategoryTheory.CategoryStruct.id.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) x) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) 1 (OfNat.mk.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) 1 (One.one.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) (MulOneClass.toHasOne.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) (Monoid.toMulOneClass.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) _inst_1)))))
+but is expected to have type
+  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : CategoryTheory.SingleObj.{u1} α), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) (CategoryTheory.CategoryStruct.id.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) x) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) 1 (One.toOfNat1.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) (Monoid.toOne.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x x) _inst_1)))
+Case conversion may be inaccurate. Consider using '#align category_theory.single_obj.id_as_one CategoryTheory.SingleObj.id_as_oneₓ'. -/
 theorem id_as_one [Monoid α] (x : SingleObj α) : 𝟙 x = 1 :=
   rfl
 #align category_theory.single_obj.id_as_one CategoryTheory.SingleObj.id_as_one
 
+/- warning: category_theory.single_obj.comp_as_mul -> CategoryTheory.SingleObj.comp_as_mul is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] {x : CategoryTheory.SingleObj.{u1} α} {y : CategoryTheory.SingleObj.{u1} α} {z : CategoryTheory.SingleObj.{u1} α} (f : Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) x y) (g : Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) y z), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x z) (CategoryTheory.CategoryStruct.comp.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) x y z f g) (HMul.hMul.{u1, u1, u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x z) (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x z) (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x z) (instHMul.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x z) (MulOneClass.toHasMul.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x z) (Monoid.toMulOneClass.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x z) _inst_1))) g f)
+but is expected to have type
+  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] {x : CategoryTheory.SingleObj.{u1} α} {y : CategoryTheory.SingleObj.{u1} α} {z : CategoryTheory.SingleObj.{u1} α} (f : Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) (g : Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) y z), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)))) x z) (CategoryTheory.CategoryStruct.comp.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) x y z f g) (HMul.hMul.{u1, u1, u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) y z) (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) y z) (instHMul.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) y z) (MulOneClass.toMul.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) y z) (Monoid.toMulOneClass.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) y z) _inst_1))) g f)
+Case conversion may be inaccurate. Consider using '#align category_theory.single_obj.comp_as_mul CategoryTheory.SingleObj.comp_as_mulₓ'. -/
 theorem comp_as_mul [Monoid α] {x y z : SingleObj α} (f : x ⟶ y) (g : y ⟶ z) : f ≫ g = g * f :=
   rfl
 #align category_theory.single_obj.comp_as_mul CategoryTheory.SingleObj.comp_as_mul
 
+#print CategoryTheory.SingleObj.groupoid /-
 /-- Groupoid structure on `single_obj α`.
 
 See <https://stacks.math.columbia.edu/tag/0019>.
@@ -89,30 +108,52 @@ instance groupoid [Group α] : Groupoid (SingleObj α)
   inv_comp' _ _ := mul_right_inv
   comp_inv' _ _ := mul_left_inv
 #align category_theory.single_obj.groupoid CategoryTheory.SingleObj.groupoid
+-/
 
+/- warning: category_theory.single_obj.inv_as_inv -> CategoryTheory.SingleObj.inv_as_inv is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) [_inst_1 : Group.{u1} α] {x : CategoryTheory.SingleObj.{u1} α} {y : CategoryTheory.SingleObj.{u1} α} (f : Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.quiver.{u1} α) x y), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))))) y x) (CategoryTheory.inv.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))) x y f (CategoryTheory.IsIso.of_groupoid.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.groupoid.{u1} α _inst_1) x y f)) (Inv.inv.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))))) y x) (DivInvMonoid.toHasInv.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))))) y x) (Group.toDivInvMonoid.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))))) y x) _inst_1)) f)
+but is expected to have type
+  forall (α : Type.{u1}) [_inst_1 : Group.{u1} α] {x : CategoryTheory.SingleObj.{u1} α} {y : CategoryTheory.SingleObj.{u1} α} (f : Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))))) y x) (CategoryTheory.inv.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α (DivInvMonoid.toMonoid.{u1} α (Group.toDivInvMonoid.{u1} α _inst_1))) x y f (CategoryTheory.IsIso.of_groupoid.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.groupoid.{u1} α _inst_1) x y f)) (Inv.inv.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) (InvOneClass.toInv.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) (DivInvOneMonoid.toInvOneClass.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) (DivisionMonoid.toDivInvOneMonoid.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) (Group.toDivisionMonoid.{u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (Quiver.SingleObj.instQuiverSingleObj.{u1} α) x y) _inst_1)))) f)
+Case conversion may be inaccurate. Consider using '#align category_theory.single_obj.inv_as_inv CategoryTheory.SingleObj.inv_as_invₓ'. -/
 theorem inv_as_inv [Group α] {x y : SingleObj α} (f : x ⟶ y) : inv f = f⁻¹ :=
   by
   ext
   rw [comp_as_mul, inv_mul_self, id_as_one]
 #align category_theory.single_obj.inv_as_inv CategoryTheory.SingleObj.inv_as_inv
 
+#print CategoryTheory.SingleObj.star /-
 /-- Abbreviation that allows writing `category_theory.single_obj.star` rather than
 `quiver.single_obj.star`.
 -/
 abbrev star : SingleObj α :=
   Quiver.SingleObj.star α
 #align category_theory.single_obj.star CategoryTheory.SingleObj.star
+-/
 
+/- warning: category_theory.single_obj.to_End -> CategoryTheory.SingleObj.toEnd is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α], MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))
+but is expected to have type
+  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α], MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))
+Case conversion may be inaccurate. Consider using '#align category_theory.single_obj.to_End CategoryTheory.SingleObj.toEndₓ'. -/
 /-- The endomorphisms monoid of the only object in `single_obj α` is equivalent to the original
      monoid α. -/
 def toEnd [Monoid α] : α ≃* End (SingleObj.star α) :=
   { Equiv.refl α with map_mul' := fun x y => rfl }
 #align category_theory.single_obj.to_End CategoryTheory.SingleObj.toEnd
 
+/- warning: category_theory.single_obj.to_End_def -> CategoryTheory.SingleObj.toEnd_def is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : α), Eq.{succ u1} (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (coeFn.{succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (fun (_x : MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) => α -> (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (MulEquiv.hasCoeToFun.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (CategoryTheory.SingleObj.toEnd.{u1} α _inst_1) x) x
+but is expected to have type
+  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : α), Eq.{succ u1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) x) (FunLike.coe.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquivClass.toEquivLike.{u1, u1, u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquiv.instMulEquivClassMulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)))))) (CategoryTheory.SingleObj.toEnd.{u1} α _inst_1) x) x
+Case conversion may be inaccurate. Consider using '#align category_theory.single_obj.to_End_def CategoryTheory.SingleObj.toEnd_defₓ'. -/
 theorem toEnd_def [Monoid α] (x : α) : toEnd α x = x :=
   rfl
 #align category_theory.single_obj.to_End_def CategoryTheory.SingleObj.toEnd_def
 
+#print CategoryTheory.SingleObj.mapHom /-
 /-- There is a 1-1 correspondence between monoid homomorphisms `α → β` and functors between the
     corresponding single-object categories. It means that `single_obj` is a fully faithful
     functor.
@@ -134,16 +175,22 @@ def mapHom (α : Type u) (β : Type v) [Monoid α] [Monoid β] : (α →* β) 
   left_inv := fun ⟨f, h₁, h₂⟩ => rfl
   right_inv f := by cases f <;> obviously
 #align category_theory.single_obj.map_hom CategoryTheory.SingleObj.mapHom
+-/
 
+#print CategoryTheory.SingleObj.mapHom_id /-
 theorem mapHom_id (α : Type u) [Monoid α] : mapHom α α (MonoidHom.id α) = 𝟭 _ :=
   rfl
 #align category_theory.single_obj.map_hom_id CategoryTheory.SingleObj.mapHom_id
+-/
 
+#print CategoryTheory.SingleObj.mapHom_comp /-
 theorem mapHom_comp {α : Type u} {β : Type v} [Monoid α] [Monoid β] (f : α →* β) {γ : Type w}
     [Monoid γ] (g : β →* γ) : mapHom α γ (g.comp f) = mapHom α β f ⋙ mapHom β γ g :=
   rfl
 #align category_theory.single_obj.map_hom_comp CategoryTheory.SingleObj.mapHom_comp
+-/
 
+#print CategoryTheory.SingleObj.differenceFunctor /-
 /-- Given a function `f : C → G` from a category to a group, we get a functor
     `C ⥤ G` sending any morphism `x ⟶ y` to `f y * (f x)⁻¹`. -/
 @[simps]
@@ -158,6 +205,7 @@ def differenceFunctor {C G} [Category C] [Group G] (f : C → G) : C ⥤ SingleO
     intros
     rw [single_obj.comp_as_mul, ← mul_assoc, mul_left_inj, mul_assoc, inv_mul_self, mul_one]
 #align category_theory.single_obj.difference_functor CategoryTheory.SingleObj.differenceFunctor
+-/
 
 end SingleObj
 
@@ -167,6 +215,7 @@ open CategoryTheory
 
 namespace MonoidHom
 
+#print MonoidHom.toFunctor /-
 /-- Reinterpret a monoid homomorphism `f : α → β` as a functor `(single_obj α) ⥤ (single_obj β)`.
 See also `category_theory.single_obj.map_hom` for an equivalence between these types. -/
 @[reducible]
@@ -174,17 +223,22 @@ def toFunctor {α : Type u} {β : Type v} [Monoid α] [Monoid β] (f : α →* 
     SingleObj α ⥤ SingleObj β :=
   SingleObj.mapHom α β f
 #align monoid_hom.to_functor MonoidHom.toFunctor
+-/
 
+#print MonoidHom.id_toFunctor /-
 @[simp]
 theorem id_toFunctor (α : Type u) [Monoid α] : (id α).toFunctor = 𝟭 _ :=
   rfl
 #align monoid_hom.id_to_functor MonoidHom.id_toFunctor
+-/
 
+#print MonoidHom.comp_toFunctor /-
 @[simp]
 theorem comp_toFunctor {α : Type u} {β : Type v} [Monoid α] [Monoid β] (f : α →* β) {γ : Type w}
     [Monoid γ] (g : β →* γ) : (g.comp f).toFunctor = f.toFunctor ⋙ g.toFunctor :=
   rfl
 #align monoid_hom.comp_to_functor MonoidHom.comp_toFunctor
+-/
 
 end MonoidHom
 
@@ -192,17 +246,35 @@ namespace Units
 
 variable (α : Type u) [Monoid α]
 
+/- warning: units.to_Aut -> Units.toAut is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α], MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} (Units.{u1} α _inst_1) (Units.mulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.group.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))
+but is expected to have type
+  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α], MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))
+Case conversion may be inaccurate. Consider using '#align units.to_Aut Units.toAutₓ'. -/
 /-- The units in a monoid are (multiplicatively) equivalent to
 the automorphisms of `star` when we think of the monoid as a single-object category. -/
 def toAut : αˣ ≃* Aut (SingleObj.star α) :=
   (Units.mapEquiv (SingleObj.toEnd α)).trans <| Aut.unitsEndEquivAut _
 #align units.to_Aut Units.toAut
 
+/- warning: units.to_Aut_hom -> Units.toAut_hom is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : Units.{u1} α _inst_1), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Iso.hom.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α) (coeFn.{succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} (Units.{u1} α _inst_1) (Units.mulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.group.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (fun (_x : MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} (Units.{u1} α _inst_1) (Units.mulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.group.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) => (Units.{u1} α _inst_1) -> (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))) (MulEquiv.hasCoeToFun.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} (Units.{u1} α _inst_1) (Units.mulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.group.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.toAut.{u1} α _inst_1) x)) (coeFn.{succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (fun (_x : MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) => α -> (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (MulEquiv.hasCoeToFun.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (CategoryTheory.SingleObj.toEnd.{u1} α _inst_1) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} α _inst_1) α (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} α _inst_1) α (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} α _inst_1) α (coeBase.{succ u1, succ u1} (Units.{u1} α _inst_1) α (Units.hasCoe.{u1} α _inst_1)))) x))
+but is expected to have type
+  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : Units.{u1} α _inst_1), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Iso.hom.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α) (FunLike.coe.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (fun (_x : Units.{u1} α _inst_1) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Units.{u1} α _inst_1) => CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquivClass.toEquivLike.{u1, u1, u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)))))))))) (Units.toAut.{u1} α _inst_1) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquivClass.toEquivLike.{u1, u1, u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquiv.instMulEquivClassMulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)))))) (CategoryTheory.SingleObj.toEnd.{u1} α _inst_1) (Units.val.{u1} α _inst_1 x))
+Case conversion may be inaccurate. Consider using '#align units.to_Aut_hom Units.toAut_homₓ'. -/
 @[simp]
 theorem toAut_hom (x : αˣ) : (toAut α x).Hom = SingleObj.toEnd α x :=
   rfl
 #align units.to_Aut_hom Units.toAut_hom
 
+/- warning: units.to_Aut_inv -> Units.toAut_inv is a dubious translation:
+lean 3 declaration is
+  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : Units.{u1} α _inst_1), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Iso.inv.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α) (coeFn.{succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} (Units.{u1} α _inst_1) (Units.mulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.group.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (fun (_x : MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} (Units.{u1} α _inst_1) (Units.mulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.group.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) => (Units.{u1} α _inst_1) -> (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))) (MulEquiv.hasCoeToFun.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} (Units.{u1} α _inst_1) (Units.mulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.group.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.toAut.{u1} α _inst_1) x)) (coeFn.{succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (fun (_x : MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) => α -> (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (MulEquiv.hasCoeToFun.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (MulOneClass.toHasOne.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (MulOneClass.toHasMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) (CategoryTheory.SingleObj.toEnd.{u1} α _inst_1) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (Units.{u1} α _inst_1) α (HasLiftT.mk.{succ u1, succ u1} (Units.{u1} α _inst_1) α (CoeTCₓ.coe.{succ u1, succ u1} (Units.{u1} α _inst_1) α (coeBase.{succ u1, succ u1} (Units.{u1} α _inst_1) α (Units.hasCoe.{u1} α _inst_1)))) (Inv.inv.{u1} (Units.{u1} α _inst_1) (Units.hasInv.{u1} α _inst_1) x)))
+but is expected to have type
+  forall (α : Type.{u1}) [_inst_1 : Monoid.{u1} α] (x : Units.{u1} α _inst_1), Eq.{succ u1} (Quiver.Hom.{succ u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.CategoryStruct.toQuiver.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.Category.toCategoryStruct.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Iso.inv.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α) (CategoryTheory.SingleObj.star.{u1} α) (FunLike.coe.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (fun (_x : Units.{u1} α _inst_1) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Units.{u1} α _inst_1) => CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquivClass.toEquivLike.{u1, u1, u1} (MulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α))))))) (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)))))) (MulEquiv.instMulEquivClassMulEquiv.{u1, u1} (Units.{u1} α _inst_1) (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} (Units.{u1} α _inst_1) (Units.instMulOneClassUnits.{u1} α _inst_1)) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)) (CategoryTheory.Aut.instGroupAut.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.category.{u1} α _inst_1) (CategoryTheory.SingleObj.star.{u1} α)))))))))) (Units.toAut.{u1} α _inst_1) x)) (FunLike.coe.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (fun (_x : α) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : α) => CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (EquivLike.toEmbeddingLike.{succ u1, succ u1, succ u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquivClass.toEquivLike.{u1, u1, u1} (MulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α))) α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulEquiv.instMulEquivClassMulEquiv.{u1, u1} α (CategoryTheory.End.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1)) (CategoryTheory.End.mul.{u1, 0} (CategoryTheory.SingleObj.{u1} α) (CategoryTheory.SingleObj.categoryStruct.{u1} α (Monoid.toOne.{u1} α _inst_1) (MulOneClass.toMul.{u1} α (Monoid.toMulOneClass.{u1} α _inst_1))) (CategoryTheory.SingleObj.star.{u1} α)))))) (CategoryTheory.SingleObj.toEnd.{u1} α _inst_1) (Units.val.{u1} α _inst_1 (Inv.inv.{u1} (Units.{u1} α _inst_1) (Units.instInvUnits.{u1} α _inst_1) x)))
+Case conversion may be inaccurate. Consider using '#align units.to_Aut_inv Units.toAut_invₓ'. -/
 @[simp]
 theorem toAut_inv (x : αˣ) : (toAut α x).inv = SingleObj.toEnd α (x⁻¹ : αˣ) :=
   rfl
@@ -214,20 +286,26 @@ namespace MonCat
 
 open CategoryTheory
 
+#print MonCat.toCat /-
 /-- The fully faithful functor from `Mon` to `Cat`. -/
 def toCat : MonCat ⥤ Cat where
   obj x := Cat.of (SingleObj x)
   map x y f := SingleObj.mapHom x y f
 #align Mon.to_Cat MonCat.toCat
+-/
 
+#print MonCat.toCatFull /-
 instance toCatFull : Full toCat
     where
   preimage x y := (SingleObj.mapHom x y).invFun
   witness' x y := by apply Equiv.right_inv
 #align Mon.to_Cat_full MonCat.toCatFull
+-/
 
+#print MonCat.toCat_faithful /-
 instance toCat_faithful : Faithful toCat where map_injective' x y := by apply Equiv.injective
 #align Mon.to_Cat_faithful MonCat.toCat_faithful
+-/
 
 end MonCat
 
Diff
@@ -210,24 +210,24 @@ theorem toAut_inv (x : αˣ) : (toAut α x).inv = SingleObj.toEnd α (x⁻¹ : 
 
 end Units
 
-namespace Mon
+namespace MonCat
 
 open CategoryTheory
 
 /-- The fully faithful functor from `Mon` to `Cat`. -/
-def toCat : Mon ⥤ Cat where
+def toCat : MonCat ⥤ Cat where
   obj x := Cat.of (SingleObj x)
   map x y f := SingleObj.mapHom x y f
-#align Mon.to_Cat Mon.toCat
+#align Mon.to_Cat MonCat.toCat
 
 instance toCatFull : Full toCat
     where
   preimage x y := (SingleObj.mapHom x y).invFun
   witness' x y := by apply Equiv.right_inv
-#align Mon.to_Cat_full Mon.toCatFull
+#align Mon.to_Cat_full MonCat.toCatFull
 
 instance toCat_faithful : Faithful toCat where map_injective' x y := by apply Equiv.injective
-#align Mon.to_Cat_faithful Mon.toCat_faithful
+#align Mon.to_Cat_faithful MonCat.toCat_faithful
 
-end Mon
+end MonCat
 

Changes in mathlib4

mathlib3
mathlib4
chore(CategoryTheory): make Functor.Full a Prop (#12449)

Before this PR, Functor.Full contained the data of the preimage of maps by a full functor F. This PR makes Functor.Full a proposition. This is to prevent any diamond to appear.

The lemma Functor.image_preimage is also renamed Functor.map_preimage.

Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>

Diff
@@ -276,11 +276,10 @@ def toCat : MonCat ⥤ Cat where
 set_option linter.uppercaseLean3 false in
 #align Mon.to_Cat MonCat.toCat
 
-instance toCatFull : toCat.Full  where
-  preimage := (SingleObj.mapHom _ _).invFun
-  witness _ := rfl
+instance toCat_full : toCat.Full  where
+  map_surjective := (SingleObj.mapHom _ _).surjective
 set_option linter.uppercaseLean3 false in
-#align Mon.to_Cat_full MonCat.toCatFull
+#align Mon.to_Cat_full MonCat.toCat_full
 
 instance toCat_faithful : toCat.Faithful where
   map_injective h := by rwa [toCat, (SingleObj.mapHom _ _).apply_eq_iff_eq] at h
chore(CategoryTheory): move Full, Faithful, EssSurj, IsEquivalence and ReflectsIsomorphisms to the Functor namespace (#11985)

These notions on functors are now Functor.Full, Functor.Faithful, Functor.EssSurj, Functor.IsEquivalence, Functor.ReflectsIsomorphisms. Deprecated aliases are introduced for the previous names.

Diff
@@ -276,13 +276,13 @@ def toCat : MonCat ⥤ Cat where
 set_option linter.uppercaseLean3 false in
 #align Mon.to_Cat MonCat.toCat
 
-instance toCatFull : Full toCat where
+instance toCatFull : toCat.Full  where
   preimage := (SingleObj.mapHom _ _).invFun
   witness _ := rfl
 set_option linter.uppercaseLean3 false in
 #align Mon.to_Cat_full MonCat.toCatFull
 
-instance toCat_faithful : Faithful toCat where
+instance toCat_faithful : toCat.Faithful where
   map_injective h := by rwa [toCat, (SingleObj.mapHom _ _).apply_eq_iff_eq] at h
 set_option linter.uppercaseLean3 false in
 #align Mon.to_Cat_faithful MonCat.toCat_faithful
chore: split CategoryTheory.FinCategory (#9923)

Minor clean up of imports, getting ready to minimize the heartbeats variation observed/reduced in #9732.

This has the effect of slightly (although not enough) delaying the import of positivity (which in turn imports the kitchen sink) into the category theory development.

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

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 -/
 import Mathlib.CategoryTheory.Endomorphism
-import Mathlib.CategoryTheory.FinCategory
+import Mathlib.CategoryTheory.FinCategory.Basic
 import Mathlib.CategoryTheory.Category.Cat
 import Mathlib.Algebra.Category.MonCat.Basic
 import Mathlib.Combinatorics.Quiver.SingleObj
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -241,7 +241,7 @@ namespace Units
 
 variable (M : Type u) [Monoid M]
 
--- porting note: it was necessary to add `by exact` in this definition, presumably
+-- Porting note: it was necessary to add `by exact` in this definition, presumably
 -- so that Lean4 is not confused by the fact that `M` has two opposite multiplications
 /-- The units in a monoid are (multiplicatively) equivalent to
 the automorphisms of `star` when we think of the monoid as a single-object category. -/
feat(CategoryTheory/Galois): finite G-sets are a PreGaloisCategory (#9879)

We show that the category of finite G-sets is a PreGaloisCategory and the forgetful functor to finite sets is a FibreFunctor.

Diff
@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
 -/
 import Mathlib.CategoryTheory.Endomorphism
+import Mathlib.CategoryTheory.FinCategory
 import Mathlib.CategoryTheory.Category.Cat
 import Mathlib.Algebra.Category.MonCat.Basic
 import Mathlib.Combinatorics.Quiver.SingleObj
@@ -78,6 +79,10 @@ theorem comp_as_mul {x y z : SingleObj M} (f : x ⟶ y) (g : y ⟶ z) : f ≫ g
   rfl
 #align category_theory.single_obj.comp_as_mul CategoryTheory.SingleObj.comp_as_mul
 
+/-- If `M` is finite and in universe zero, then `SingleObj M` is a `FinCategory`. -/
+instance finCategoryOfFintype (M : Type) [Fintype M] [Monoid M] : FinCategory (SingleObj M)
+  where
+
 /-- Groupoid structure on `SingleObj M`.
 
 See <https://stacks.math.columbia.edu/tag/0019>.
feat(CategoryTheory/SingleObj): construct equivalence of SingleObj categories from a monoid isomorphism (#9699)

Construct SingleObj M ≌ SingleObj N from M ≃* N.

Diff
@@ -212,6 +212,26 @@ theorem id_toFunctor : (id M).toFunctor = 𝟭 _ :=
 
 end MonoidHom
 
+namespace MulEquiv
+
+variable {M : Type u} {N : Type v} [Monoid M] [Monoid N]
+
+/-- Reinterpret a monoid isomorphism `f : M ≃* N` as an equivalence `SingleObj M ≌ SingleObj N`. -/
+@[simps!]
+def toSingleObjEquiv (e : M ≃* N) : SingleObj M ≌ SingleObj N where
+  functor := e.toMonoidHom.toFunctor
+  inverse := e.symm.toMonoidHom.toFunctor
+  unitIso := eqToIso (by
+    rw [← MonoidHom.comp_toFunctor, ← MonoidHom.id_toFunctor]
+    congr 1
+    aesop_cat)
+  counitIso := eqToIso (by
+    rw [← MonoidHom.comp_toFunctor, ← MonoidHom.id_toFunctor]
+    congr 1
+    aesop_cat)
+
+end MulEquiv
+
 namespace Units
 
 variable (M : Type u) [Monoid M]
chore(CategoryTheory/SingleObj): unify notation (#9696)

Use consistent notation for a monoid M, a group G, etc.

Diff
@@ -19,19 +19,19 @@ from category theory to monoids and groups.
 
 ## Main definitions
 
-Given a type `α` with a monoid structure, `SingleObj α` is `Unit` type with `Category` structure
-such that `End (SingleObj α).star` is the monoid `α`.  This can be extended to a functor
+Given a type `M` with a monoid structure, `SingleObj M` is `Unit` type with `Category` structure
+such that `End (SingleObj M).star` is the monoid `M`.  This can be extended to a functor
 `MonCat ⥤ Cat`.
 
-If `α` is a group, then `SingleObj α` is a groupoid.
+If `M` is a group, then `SingleObj M` is a groupoid.
 
-An element `x : α` can be reinterpreted as an element of `End (SingleObj.star α)` using
+An element `x : M` can be reinterpreted as an element of `End (SingleObj.star M)` using
 `SingleObj.toEnd`.
 
 ## Implementation notes
 
-- `categoryStruct.comp` on `End (SingleObj.star α)` is `flip (*)`, not `(*)`. This way
-  multiplication on `End` agrees with the multiplication on `α`.
+- `categoryStruct.comp` on `End (SingleObj.star M)` is `flip (*)`, not `(*)`. This way
+  multiplication on `End` agrees with the multiplication on `M`.
 
 - By default, Lean puts instances into `CategoryTheory` namespace instead of
   `CategoryTheory.SingleObj`, so we give all names explicitly.
@@ -50,44 +50,46 @@ abbrev SingleObj :=
 
 namespace SingleObj
 
-variable (α : Type u)
+variable (M G : Type u)
 
 /-- One and `flip (*)` become `id` and `comp` for morphisms of the single object category. -/
-instance categoryStruct [One α] [Mul α] : CategoryStruct (SingleObj α)
+instance categoryStruct [One M] [Mul M] : CategoryStruct (SingleObj M)
     where
-  Hom _ _ := α
+  Hom _ _ := M
   comp x y := y * x
   id _ := 1
 #align category_theory.single_obj.category_struct CategoryTheory.SingleObj.categoryStruct
 
+variable [Monoid M] [Group G]
+
 /-- Monoid laws become category laws for the single object category. -/
-instance category [Monoid α] : Category (SingleObj α)
+instance category : Category (SingleObj M)
     where
   comp_id := one_mul
   id_comp := mul_one
   assoc x y z := (mul_assoc z y x).symm
 #align category_theory.single_obj.category CategoryTheory.SingleObj.category
 
-theorem id_as_one [Monoid α] (x : SingleObj α) : 𝟙 x = 1 :=
+theorem id_as_one (x : SingleObj M) : 𝟙 x = 1 :=
   rfl
 #align category_theory.single_obj.id_as_one CategoryTheory.SingleObj.id_as_one
 
-theorem comp_as_mul [Monoid α] {x y z : SingleObj α} (f : x ⟶ y) (g : y ⟶ z) : f ≫ g = g * f :=
+theorem comp_as_mul {x y z : SingleObj M} (f : x ⟶ y) (g : y ⟶ z) : f ≫ g = g * f :=
   rfl
 #align category_theory.single_obj.comp_as_mul CategoryTheory.SingleObj.comp_as_mul
 
-/-- Groupoid structure on `SingleObj α`.
+/-- Groupoid structure on `SingleObj M`.
 
 See <https://stacks.math.columbia.edu/tag/0019>.
 -/
-instance groupoid [Group α] : Groupoid (SingleObj α)
+instance groupoid : Groupoid (SingleObj G)
     where
   inv x := x⁻¹
   inv_comp := mul_right_inv
   comp_inv := mul_left_inv
 #align category_theory.single_obj.groupoid CategoryTheory.SingleObj.groupoid
 
-theorem inv_as_inv [Group α] {x y : SingleObj α} (f : x ⟶ y) : inv f = f⁻¹ := by
+theorem inv_as_inv {x y : SingleObj G} (f : x ⟶ y) : inv f = f⁻¹ := by
   apply IsIso.inv_eq_of_hom_inv_id
   rw [comp_as_mul, inv_mul_self, id_as_one]
 #align category_theory.single_obj.inv_as_inv CategoryTheory.SingleObj.inv_as_inv
@@ -95,55 +97,60 @@ theorem inv_as_inv [Group α] {x y : SingleObj α} (f : x ⟶ y) : inv f = f⁻
 /-- Abbreviation that allows writing `CategoryTheory.SingleObj.star` rather than
 `Quiver.SingleObj.star`.
 -/
-abbrev star : SingleObj α :=
-  Quiver.SingleObj.star α
+abbrev star : SingleObj M :=
+  Quiver.SingleObj.star M
 #align category_theory.single_obj.star CategoryTheory.SingleObj.star
 
-/-- The endomorphisms monoid of the only object in `SingleObj α` is equivalent to the original
-     monoid α. -/
-def toEnd [Monoid α] : α ≃* End (SingleObj.star α) :=
-  { Equiv.refl α with map_mul' := fun _ _ => rfl }
+/-- The endomorphisms monoid of the only object in `SingleObj M` is equivalent to the original
+     monoid M. -/
+def toEnd : M ≃* End (SingleObj.star M) :=
+  { Equiv.refl M with map_mul' := fun _ _ => rfl }
 #align category_theory.single_obj.to_End CategoryTheory.SingleObj.toEnd
 
-theorem toEnd_def [Monoid α] (x : α) : toEnd α x = x :=
+theorem toEnd_def (x : M) : toEnd M x = x :=
   rfl
 #align category_theory.single_obj.to_End_def CategoryTheory.SingleObj.toEnd_def
 
-/-- There is a 1-1 correspondence between monoid homomorphisms `α → β` and functors between the
+variable (N : Type v) [Monoid N]
+
+/-- There is a 1-1 correspondence between monoid homomorphisms `M → N` and functors between the
     corresponding single-object categories. It means that `SingleObj` is a fully faithful
     functor.
 
 See <https://stacks.math.columbia.edu/tag/001F> --
 although we do not characterize when the functor is full or faithful.
 -/
-def mapHom (α : Type u) (β : Type v) [Monoid α] [Monoid β] :
-    (α →* β) ≃ SingleObj α ⥤ SingleObj β where
+def mapHom : (M →* N) ≃ SingleObj M ⥤ SingleObj N where
   toFun f :=
     { obj := id
       map := ⇑f
       map_id := fun _ => f.map_one
       map_comp := fun x y => f.map_mul y x }
   invFun f :=
-    { toFun := fun x => f.map ((toEnd α) x)
+    { toFun := fun x => f.map ((toEnd M) x)
       map_one' := f.map_id _
       map_mul' := fun x y => f.map_comp y x }
   left_inv := by aesop_cat
   right_inv := by aesop_cat
 #align category_theory.single_obj.map_hom CategoryTheory.SingleObj.mapHom
 
-theorem mapHom_id (α : Type u) [Monoid α] : mapHom α α (MonoidHom.id α) = 𝟭 _ :=
+theorem mapHom_id : mapHom M M (MonoidHom.id M) = 𝟭 _ :=
   rfl
 #align category_theory.single_obj.map_hom_id CategoryTheory.SingleObj.mapHom_id
 
-theorem mapHom_comp {α : Type u} {β : Type v} [Monoid α] [Monoid β] (f : α →* β) {γ : Type w}
-    [Monoid γ] (g : β →* γ) : mapHom α γ (g.comp f) = mapHom α β f ⋙ mapHom β γ g :=
+variable {M N G}
+
+theorem mapHom_comp (f : M →* N) {P : Type w} [Monoid P] (g : N →* P) :
+    mapHom M P (g.comp f) = mapHom M N f ⋙ mapHom N P g :=
   rfl
 #align category_theory.single_obj.map_hom_comp CategoryTheory.SingleObj.mapHom_comp
 
+variable {C : Type v} [Category.{w} C]
+
 /-- Given a function `f : C → G` from a category to a group, we get a functor
     `C ⥤ G` sending any morphism `x ⟶ y` to `f y * (f x)⁻¹`. -/
 @[simps]
-def differenceFunctor {C G} [Category C] [Group G] (f : C → G) : C ⥤ SingleObj G
+def differenceFunctor (f : C → G) : C ⥤ SingleObj G
     where
   obj _ := ()
   map {x y} _ := f y * (f x)⁻¹
@@ -156,22 +163,20 @@ def differenceFunctor {C G} [Category C] [Group G] (f : C → G) : C ⥤ SingleO
     rw [SingleObj.comp_as_mul, ← mul_assoc, mul_left_inj, mul_assoc, inv_mul_self, mul_one]
 #align category_theory.single_obj.difference_functor CategoryTheory.SingleObj.differenceFunctor
 
-/-- A monoid homomorphism `f: α → End X` into the endomorphisms of an object `X` of a category `C`
-induces a functor `SingleObj α ⥤ C`. -/
+/-- A monoid homomorphism `f: M → End X` into the endomorphisms of an object `X` of a category `C`
+induces a functor `SingleObj M ⥤ C`. -/
 @[simps]
-def functor {α : Type u} [Monoid α] {C : Type w} [Category.{v} C] {X : C} (f : α →* End X) :
-    SingleObj α ⥤ C where
+def functor {X : C} (f : M →* End X) : SingleObj M ⥤ C where
   obj _ := X
   map a := f a
   map_id _ := MonoidHom.map_one f
   map_comp a b := MonoidHom.map_mul f b a
 
-/-- Construct a natural transformation between functors `SingleObj α ⥤ C` by
-giving a compatible morphism `SingleObj.star α`. -/
+/-- Construct a natural transformation between functors `SingleObj M ⥤ C` by
+giving a compatible morphism `SingleObj.star M`. -/
 @[simps]
-def natTrans {α : Type w} {C : Type w} [Category.{v} C] [Monoid α] {F G : SingleObj α ⥤ C}
-    (u : F.obj (SingleObj.star α) ⟶ G.obj (SingleObj.star α))
-    (h : ∀ a : α, F.map a ≫ u = u ≫ G.map a) : F ⟶ G where
+def natTrans {F G : SingleObj M ⥤ C} (u : F.obj (SingleObj.star M) ⟶ G.obj (SingleObj.star M))
+    (h : ∀ a : M, F.map a ≫ u = u ≫ G.map a) : F ⟶ G where
   app _ := u
   naturality _ _ a := h a
 
@@ -183,49 +188,52 @@ open CategoryTheory
 
 namespace MonoidHom
 
-/-- Reinterpret a monoid homomorphism `f : α → β` as a functor `(single_obj α) ⥤ (single_obj β)`.
+variable {M : Type u} {N : Type v} [Monoid M] [Monoid N]
+
+/-- Reinterpret a monoid homomorphism `f : M → N` as a functor `(single_obj M) ⥤ (single_obj N)`.
 See also `CategoryTheory.SingleObj.mapHom` for an equivalence between these types. -/
 @[reducible]
-def toFunctor {α : Type u} {β : Type v} [Monoid α] [Monoid β] (f : α →* β) :
-    SingleObj α ⥤ SingleObj β :=
-  SingleObj.mapHom α β f
+def toFunctor (f : M →* N) : SingleObj M ⥤ SingleObj N :=
+  SingleObj.mapHom M N f
 #align monoid_hom.to_functor MonoidHom.toFunctor
 
 @[simp]
-theorem id_toFunctor (α : Type u) [Monoid α] : (id α).toFunctor = 𝟭 _ :=
+theorem comp_toFunctor (f : M →* N) {P : Type w} [Monoid P] (g : N →* P) :
+    (g.comp f).toFunctor = f.toFunctor ⋙ g.toFunctor :=
   rfl
-#align monoid_hom.id_to_functor MonoidHom.id_toFunctor
+#align monoid_hom.comp_to_functor MonoidHom.comp_toFunctor
+
+variable (M)
 
 @[simp]
-theorem comp_toFunctor {α : Type u} {β : Type v} [Monoid α] [Monoid β] (f : α →* β) {γ : Type w}
-    [Monoid γ] (g : β →* γ) : (g.comp f).toFunctor = f.toFunctor ⋙ g.toFunctor :=
+theorem id_toFunctor : (id M).toFunctor = 𝟭 _ :=
   rfl
-#align monoid_hom.comp_to_functor MonoidHom.comp_toFunctor
+#align monoid_hom.id_to_functor MonoidHom.id_toFunctor
 
 end MonoidHom
 
 namespace Units
 
-variable (α : Type u) [Monoid α]
+variable (M : Type u) [Monoid M]
 
 -- porting note: it was necessary to add `by exact` in this definition, presumably
--- so that Lean4 is not confused by the fact that `α` has two opposite multiplications
+-- so that Lean4 is not confused by the fact that `M` has two opposite multiplications
 /-- The units in a monoid are (multiplicatively) equivalent to
 the automorphisms of `star` when we think of the monoid as a single-object category. -/
-def toAut : αˣ ≃* Aut (SingleObj.star α) :=
-  MulEquiv.trans (Units.mapEquiv (by exact SingleObj.toEnd α))
-    (Aut.unitsEndEquivAut (SingleObj.star α))
+def toAut : Mˣ ≃* Aut (SingleObj.star M) :=
+  MulEquiv.trans (Units.mapEquiv (by exact SingleObj.toEnd M))
+    (Aut.unitsEndEquivAut (SingleObj.star M))
 set_option linter.uppercaseLean3 false in
 #align units.to_Aut Units.toAut
 
 @[simp]
-theorem toAut_hom (x : αˣ) : (toAut α x).hom = SingleObj.toEnd α x :=
+theorem toAut_hom (x : Mˣ) : (toAut M x).hom = SingleObj.toEnd M x :=
   rfl
 set_option linter.uppercaseLean3 false in
 #align units.to_Aut_hom Units.toAut_hom
 
 @[simp]
-theorem toAut_inv (x : αˣ) : (toAut α x).inv = SingleObj.toEnd α (x⁻¹ : αˣ) :=
+theorem toAut_inv (x : Mˣ) : (toAut M x).inv = SingleObj.toEnd M (x⁻¹ : Mˣ) :=
   rfl
 set_option linter.uppercaseLean3 false in
 #align units.to_Aut_inv Units.toAut_inv
feat(CategoryTheory/SingleObj): add functor and NatTrans constructors for SingleObj (#9586)

Adds constructors for functors of type SingleObj α ⥤ C and natural transformations of functors SingleObj α ⥤ C.

Diff
@@ -156,6 +156,25 @@ def differenceFunctor {C G} [Category C] [Group G] (f : C → G) : C ⥤ SingleO
     rw [SingleObj.comp_as_mul, ← mul_assoc, mul_left_inj, mul_assoc, inv_mul_self, mul_one]
 #align category_theory.single_obj.difference_functor CategoryTheory.SingleObj.differenceFunctor
 
+/-- A monoid homomorphism `f: α → End X` into the endomorphisms of an object `X` of a category `C`
+induces a functor `SingleObj α ⥤ C`. -/
+@[simps]
+def functor {α : Type u} [Monoid α] {C : Type w} [Category.{v} C] {X : C} (f : α →* End X) :
+    SingleObj α ⥤ C where
+  obj _ := X
+  map a := f a
+  map_id _ := MonoidHom.map_one f
+  map_comp a b := MonoidHom.map_mul f b a
+
+/-- Construct a natural transformation between functors `SingleObj α ⥤ C` by
+giving a compatible morphism `SingleObj.star α`. -/
+@[simps]
+def natTrans {α : Type w} {C : Type w} [Category.{v} C] [Monoid α] {F G : SingleObj α ⥤ C}
+    (u : F.obj (SingleObj.star α) ⟶ G.obj (SingleObj.star α))
+    (h : ∀ a : α, F.map a ≫ u = u ≫ G.map a) : F ⟶ G where
+  app _ := u
+  naturality _ _ a := h a
+
 end SingleObj
 
 end CategoryTheory
perf(FunLike.Basic): beta reduce CoeFun.coe (#7905)

This eliminates (fun a ↦ β) α in the type when applying a FunLike.

Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -231,7 +231,7 @@ set_option linter.uppercaseLean3 false in
 #align Mon.to_Cat_full MonCat.toCatFull
 
 instance toCat_faithful : Faithful toCat where
-  map_injective h := by simpa [toCat] using h
+  map_injective h := by rwa [toCat, (SingleObj.mapHom _ _).apply_eq_iff_eq] at h
 set_option linter.uppercaseLean3 false in
 #align Mon.to_Cat_faithful MonCat.toCat_faithful
 
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,17 +2,14 @@
 Copyright (c) 2019 Yury Kudryashov. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yury Kudryashov
-
-! This file was ported from Lean 3 source module category_theory.single_obj
-! leanprover-community/mathlib commit 56adee5b5eef9e734d82272918300fca4f3e7cef
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Endomorphism
 import Mathlib.CategoryTheory.Category.Cat
 import Mathlib.Algebra.Category.MonCat.Basic
 import Mathlib.Combinatorics.Quiver.SingleObj
 
+#align_import category_theory.single_obj from "leanprover-community/mathlib"@"56adee5b5eef9e734d82272918300fca4f3e7cef"
+
 /-!
 # Single-object category
 
chore: review of automation in category theory (#4793)

Clean up of automation in the category theory library. Leaving out unnecessary proof steps, or fields done by aesop_cat, and making more use of available autoparameters.

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

Diff
@@ -119,8 +119,8 @@ theorem toEnd_def [Monoid α] (x : α) : toEnd α x = x :=
 See <https://stacks.math.columbia.edu/tag/001F> --
 although we do not characterize when the functor is full or faithful.
 -/
-def mapHom (α : Type u) (β : Type v) [Monoid α] [Monoid β] : (α →* β) ≃ SingleObj α ⥤ SingleObj β
-    where
+def mapHom (α : Type u) (β : Type v) [Monoid α] [Monoid β] :
+    (α →* β) ≃ SingleObj α ⥤ SingleObj β where
   toFun f :=
     { obj := id
       map := ⇑f
chore: fix typos (#4518)

I ran codespell Mathlib and got tired halfway through the suggestions.

Diff
@@ -17,7 +17,7 @@ import Mathlib.Combinatorics.Quiver.SingleObj
 # Single-object category
 
 Single object category with a given monoid of endomorphisms.
-It is defined to facilitate transfering some definitions and lemmas (e.g., conjugacy etc.)
+It is defined to facilitate transferring some definitions and lemmas (e.g., conjugacy etc.)
 from category theory to monoids and groups.
 
 ## Main definitions
chore: fix upper/lowercase in comments (#4360)
  • Run a non-interactive version of fix-comments.py on all files.
  • Go through the diff and manually add/discard/edit chunks.
Diff
@@ -168,7 +168,7 @@ open CategoryTheory
 namespace MonoidHom
 
 /-- Reinterpret a monoid homomorphism `f : α → β` as a functor `(single_obj α) ⥤ (single_obj β)`.
-See also `category_theory.single_obj.map_hom` for an equivalence between these types. -/
+See also `CategoryTheory.SingleObj.mapHom` for an equivalence between these types. -/
 @[reducible]
 def toFunctor {α : Type u} {β : Type v} [Monoid α] [Monoid β] (f : α →* β) :
     SingleObj α ⥤ SingleObj β :=
feat: port CategoryTheory.SingleObj (#3021)

Dependencies 3 + 231

232 files ported (98.7%)
85726 lines ported (98.8%)
Show graph

The unported dependencies are