category_theory.single_obj
⟷
Mathlib.CategoryTheory.SingleObj
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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 /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -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 _
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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⁻¹ : αˣ) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/2651125b48fc5c170ab1111afd0817c903b1fc6c
@@ -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⁻¹ : αˣ) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/57e09a1296bfb4330ddf6624f1028ba186117d82
@@ -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.
mathlib commit https://github.com/leanprover-community/mathlib/commit/dd6388c44e6f6b4547070b887c5905d5cfe6c9f8
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/290a7ba01fbcab1b64757bdaa270d28f4dcede35
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
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>
@@ -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
These notions on functors are now Functor.Full
, Functor.Faithful
, Functor.EssSurj
, Functor.IsEquivalence
, Functor.ReflectsIsomorphisms
. Deprecated aliases are introduced for the previous names.
@@ -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
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>
@@ -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
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -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. -/
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
.
@@ -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>.
SingleObj
categories from a monoid isomorphism (#9699)
Construct SingleObj M ≌ SingleObj N
from M ≃* N
.
@@ -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]
Use consistent notation for a monoid M
, a group G
, etc.
@@ -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
SingleObj
(#9586)
Adds constructors for functors of type SingleObj α ⥤ C
and natural transformations of functors SingleObj α ⥤ C
.
@@ -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
@@ -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
@@ -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
@@ -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
I ran codespell Mathlib
and got tired halfway through the suggestions.
@@ -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
fix-comments.py
on all files.@@ -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 β :=
The unported dependencies are